Hello,

On Fri, 19 Aug 2016 14:03:45 -0400, Rich Felker wrote:

> If they want to keep taking advantage of the nop-out hack for dynamic
> linking glibc, a suitable solution would be a configure check
> something like:
> 
> checking whether -larchive needs -lpthread... yes

That's a whole lot of work in potentially numerous upstream packages :-/

Also, there's still the odd thing that with uClibc, linking an
application using pthread_mutex_lock/unlock with just libc works fine
when dynamic linking, but not when static linking.

If the decision is indeed that there is no fallback implementation in
libc, then there shouldn't be any fallback implementation, regardless
of whether we're static linking or not.

> However, I'm not sure glibc will even be keeping this behavior
> long-term, as it's silent-error-prone. Some programmers have been very
> unpleasantly surprised to find out that the dummy lock functions in
> glibc's libc.{so,a} don't even enforce any exclusion. I believe this
> was visible in trylock succeeding on an already-locked mutex where it
> should have failed. I just did a quick search to see if I could find
> this discussion on the bug tracker but I didn't find it; it might be
> on the mailing list or somewhere else, or just buried somewhere that's
> hard to search.
> 
> Note that because there exist process-shared mutexes, the dummy
> implementation is actually unsafe. An application might omit linking
> -lpthread because it sees that it links fine without it, but then mmap
> some shared memory and use pthread_mutex_lock for inter-process
> synchronization. Very bad silent breakage then happens.

Indeed.

> IMO the right fix is not to link a dummy implementation but instead to
> have the real implementation provide fast-paths for (!multi_threaded
> && !process_shared) cases.

OK, makes sense.

Waldemar, how do you see things moving forward in uClibc? Removing the
fallback implementation entirely?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
_______________________________________________
devel mailing list
devel@uclibc-ng.org
http://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to