how to overcome missing stubs in FreeBSD 6
Alex Dupre
ale at FreeBSD.org
Tue Sep 22 16:16:20 UTC 2009
Hello,
I have a scenario with a thread-safe library that uses pthread_equal()
function. In FreeBSD 7+ there is the appropriate libc stub, but in
FreeBSD 6 it's missing, so a single-threaded binary linked to this
library should be linked also to a threading library to resolve the
missing symbol.
This is not good for two reasons:
- additional overhead for useless threading lib
- different linking between FreeBSD versions
I thought that declaring pthread_equal() as weak symbol with a stub
function in the library would globally solve the problem in FreeBSD 6,
but actually it doesn't work as expected: a binary linked to the library
with -pthread continues to use the stub function instead of the one
defined in libpthread. The only way I found to make it working was to
link directly to -lpthread *before* the incriminated lib, but this is
not acceptable.
Is there a clean solution?
--
Alex Dupre
More information about the freebsd-threads
mailing list