> Date: Fri, 1 Apr 2016 23:18:19 -0700 > From: Philip Guenther <guent...@gmail.com> > > This diff tightens up internal references to exported functions, plus one > pointless syscall. > > This is done via a namespace.h and wrapper headers like the hidden/* added > in the libc source. The files are the libpthread directory as that's the > style of arrangement of the rthread source; some day I'll move everything > into subdirectories of /usr/src/lib/libpthread/ but until then a single > directory is fine. > > This version also implements the pattern I intend to apply to libc at some > point, where symbols in the shared library are always strong (as the > shared library search order handles conflicts) and only the static library > have symbols that are weakened.
Trying to understand the consequences of this... This "breaks" the case where a shared library further down the chain provides a strong definition of a symbol and expects this to override the definition in libpthread. I suppose that if this is a deliberate choice of the application writer, they should just make sure this library gets linked before libpthread. But what if this is a choice made by a shared library writer? I suppose our position is that this isn't supported?