From ea1533e08df4c63e680438ac1dc243cdc37d205a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 17 Jan 2007 08:37:26 +0000 Subject: * 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. --- csu/libc-start.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'csu') 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; -- cgit v1.2.3-70-g09d2