diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-01-17 08:37:26 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-01-17 08:37:26 +0000 |
commit | ea1533e08df4c63e680438ac1dc243cdc37d205a (patch) | |
tree | d7954d886b979b8bea1d7e1f6db05b440a693097 /csu | |
parent | d78bce1c01fe67d02d833e026e5acbb88d1d9836 (diff) | |
download | glibc-ea1533e08df4c63e680438ac1dc243cdc37d205a.tar.gz glibc-ea1533e08df4c63e680438ac1dc243cdc37d205a.tar.xz glibc-ea1533e08df4c63e680438ac1dc243cdc37d205a.zip |
* sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
function table, mangle the pointers. * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL. * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init. * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions demangle pointers before use. * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to demangle pointer. * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise. * sysdeps/pthread/setxid.h: Likewise.
Diffstat (limited to 'csu')
-rw-r--r-- | csu/libc-start.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/csu/libc-start.c b/csu/libc-start.c index 634844759d..0ed993651e 100644 --- a/csu/libc-start.c +++ b/csu/libc-start.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2003, 2004, 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1998-2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -225,7 +225,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), { /* Remove the thread-local data. */ # ifdef SHARED - __libc_pthread_functions.ptr__nptl_deallocate_tsd (); + PTHFCT_CALL (ptr__nptl_deallocate_tsd, ()); # else extern void __nptl_deallocate_tsd (void) __attribute ((weak)); __nptl_deallocate_tsd (); @@ -235,7 +235,8 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), terminate the entire process. */ result = 0; # ifdef SHARED - unsigned int *const ptr = __libc_pthread_functions.ptr_nthreads; + unsigned int *ptr = __libc_pthread_functions.ptr_nthreads; + PTR_DEMANGLE (ptr); # else extern unsigned int __nptl_nthreads __attribute ((weak)); unsigned int *const ptr = &__nptl_nthreads; |