Don't link to any threading lib as libc already exports weak symbols.
authorSimon Schubert <corecode@dragonflybsd.org>
Sun, 20 Jan 2008 19:14:09 +0000 (19:14 +0000)
committerSimon Schubert <corecode@dragonflybsd.org>
Sun, 20 Jan 2008 19:14:09 +0000 (19:14 +0000)
Linking to any threading lib could lead to overly intelligent build
scripts to pick up this particular threading lib and to link to it
directly instead of linking just to libpthread.

DragonFly-bug:  <https://bugs.dragonflybsd.org/issue921>

lib/libpthread/Makefile
lib/libpthread/README

index f319cd8..541a28c 100644 (file)
@@ -1,11 +1,9 @@
-# $DragonFly: src/lib/libpthread/Makefile,v 1.5 2007/12/23 02:46:40 sephe Exp $
+# $DragonFly: src/lib/libpthread/Makefile,v 1.6 2008/01/20 19:14:09 corecode Exp $
 
 LIBNAME=       libpthread
 SHLIB_MAJOR=   0
 SHLIB_NAME=    ${LIBNAME}.so
 SONAME=                ${SHLIB_NAME}.${SHLIB_MAJOR}
-DPADD=         ${LIBTHREAD}
-LDADD=         -l${THREAD_LIB} # or any lib defining the pthread interface
 
 SRCS=          dummy.c
 
index 709cadb..76af2f5 100644 (file)
@@ -1,4 +1,4 @@
-$DragonFly: src/lib/libpthread/README,v 1.1 2007/04/17 12:34:07 corecode Exp $
+$DragonFly: src/lib/libpthread/README,v 1.2 2008/01/20 19:14:09 corecode Exp $
 
 Proxy libpthread
 ================
@@ -7,13 +7,8 @@ We want to be able to switch between threading libraries at execution
 time.  This problem is solved by this proxy libpthread.  Its operation is
 as follows.
 
-During link time a library is needed which defines all necessary pthread
-functions.  By linking libpthread.so to any threading lib (default is
-libc_r.so), this requirement is (indirectly) met.
-
-Unfortuately ld wants to link in also recursively DT_NEEDED libs if any
-specified object needs a symbol from these libs.  We cheat by doing the
-following:  libc.so anyways defines all pthread functions as weak symbols
+The operation at link time is as follows.
+libc.so anyways defines all pthread functions as weak symbols
 except for pthread_create.  libpthread.so now also defines a dummy
 pthread_create as weak symbol and ld is satisfied.  At execution time
 later rtld will resolve all these references to the strong symbols in the