[ANNOUNCE] libxshmfence 1.2

Thomas Klausner wiz at NetBSD.org
Sat Jan 3 00:39:58 PST 2015


Hi Keith!

On Fri, Jan 02, 2015 at 08:15:00PM -0800, Keith Packard wrote:
> Thomas Klausner <wiz at NetBSD.org> writes:
> 
> > Hi!
> >
> > This version doesn't build for me on NetBSD-7.99.3/amd64 and gcc-4.8.4 with:
> >
> >   CC       xshmfence_pthread.lo
> > xshmfence_pthread.c: In function 'xshmfence_init':
> > xshmfence_pthread.c:122:5: error: implicit declaration of function 'pthread_mutexattr_setpshared' [-Werror=implicit-function-declaration]
> >      pthread_mutexattr_setpshared(&mutex_attr, PTHREAD_PROCESS_SHARED);
> >      ^
> > xshmfence_pthread.c:122:5: warning: nested extern declaration of 'pthread_mutexattr_setpshared' [-Wnested-externs]
> > xshmfence_pthread.c:126:5: error: implicit declaration of function 'pthread_condattr_setpshared' [-Werror=implicit-function-declaration]
> >      pthread_condattr_setpshared(&cond_attr, PTHREAD_PROCESS_SHARED);
> >      ^
> > xshmfence_pthread.c:126:5: warning: nested extern declaration of 'pthread_condattr_setpshared' [-Wnested-externs]
> >
> > "man pthread_condattr_setpshared" comes up empty too. Is there another
> > more portable function you could use here?
> 
> This code hasn't changed since version 1.1.

You are right. 1.1. doesn't work either.

> I believe both of these are
> part of the POSIX threads API, as described in the single unix spec
> here:
> 
> http://www.unix.org/version2/whatsnew/login_threads.html

I think you are right. They are not on that page, but on

http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_setpshared.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_setpshared.html

> If the NetBSD mutexes can be shared across processes, and yet doesn't
> have these functions, then it's probably reasonable to add tests to the
> build process that enable the library even in the absence of them.

I'm told that NetBSD mutexes can not be shared across processes.

I'll file a bug report so NetBSD will hopefully provide these.
Is there a way libxshmfence can work without them?

According to
https://www.gnu.org/software/gnulib/manual/html_node/pthread_005fmutexattr_005fsetpshared.html
they are missing on more systems.
 Thomas


More information about the xorg mailing list