[Xcb] [PATCH pthread-stubs 0/4] Rework pthread-stubs design/implementation
Josh Triplett
josh at freedesktop.org
Thu Nov 3 21:13:49 UTC 2016
On Thu, Nov 03, 2016 at 08:24:55PM +0000, Emil Velikov wrote:
> Hi all,
>
> A recent change (commit fa6db2f9c01 - list.m4: Add some new pthread symbols)
> lead to an interesting bugreport [1] which makes me think that the current
> pthread-stubs design isn't as robust (broken?) as one would expect.
>
> In brief: if there is a pthread-stubs library, one can end up using a
> mismatched API - if one uses dlopen with a binary which pulls a full pthreads
> implementation. That is because the weak symbols, as provided by the
> pthread-stubs DSO, get overridden.
>
> This has gone unnoticed because a) on most platforms pthread-stubs never
> creates a DSO and in the rare case where it does b) it's very uncommon to
> dlopen a binary which pulls a non-lightweight pthreads symbols, from a
> pthreads-stubs (linked) one.
>
>
> The only solutions that I can think of are:
> 1) make pthread-stubs "meta package" who's Cflags/Libs expand to the platform
> specific PTHREAD_{CFLAGS,LIBS} if the runtime does not provide lightweight
> pthread symbols, or
> 2) "kill off" pthread-stubs and let everyone
> - handle the "do I need to link against pthreads or not" in their configure.ac
> - link against the complete/full pthread API
>
> Imho 2) is rather selfish/overzealous so I've went ahead and tackled 1).
The pthread stubs on most platforms exist to make the single-threaded
case faster, by not actually locking. Ideally, platform C libraries
would provide those stubs; however, pthread-stubs exists in large part
because of platforms that don't have those stubs. Having stubs even on
more common platforms is a more recent development, and potentially
problematic.
I don't have any fundamental objections here, but Linux isn't the
platform that really needs pthread-stubs in the first place. Could you
please seek out some feedback from people working on platforms that need
pthread-stubs for the core stubs, to find out how this might impact
them? I've CCed a couple of lists of potentially interested folks.
If a few non-Linux platform developers ack this, that would help; I
don't think a change like this should go in with the review coming
exclusively from Linux developers. :)
More information about the Xcb
mailing list