diff options
author | Timo Teräs <timo.teras@iki.fi> | 2010-04-22 11:06:41 +0000 |
---|---|---|
committer | Austin Foxley <austinf@cetoncorp.com> | 2010-04-22 08:54:10 -0700 |
commit | 279c728ee62e53eb055227695bc6fafb31a3a5f1 (patch) | |
tree | d7ceb8ed28bec1266dfcfac8af1501948b8f9bda /libc/stdlib/__cxa_atexit.c | |
parent | b93b98daf0dd45ac52f99fc4d906e5926cdd5239 (diff) |
nptl: fix libc internal, dynamically enabled locking
Final iteration to fix libc internal locking if libpthread is pulled
in by dlopen call (directly or indirectly).
We cannot really use the weak symbol trick for shared build, since
the symbols won't get refreshed if libpthread is pulled in dynamically.
In glibc, they have #ifdef SHARED magic to either use pthread_functions
table, or weaks. But as we shared object files with both builds, this
does not sounds good either.
The reintroduces the libc weaks.c, but uses them now only with static
build. For dynamic build, we still use the symbols with same name, but
provide weaks in forward.c so they end up dereferencing the
pthread_functions table indirectly if we are not linked to libpthread.
Mutex initialization is hard coded as inline, as it needs to happen even
if libpthread is not initially loaded.
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
Diffstat (limited to 'libc/stdlib/__cxa_atexit.c')
0 files changed, 0 insertions, 0 deletions