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 /nptl/sysdeps/pthread/pthread-functions.h | |
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 'nptl/sysdeps/pthread/pthread-functions.h')
-rw-r--r-- | nptl/sysdeps/pthread/pthread-functions.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/nptl/sysdeps/pthread/pthread-functions.h b/nptl/sysdeps/pthread/pthread-functions.h index 74d24005c3..f8c1e92371 100644 --- a/nptl/sysdeps/pthread/pthread-functions.h +++ b/nptl/sysdeps/pthread/pthread-functions.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2003. @@ -23,6 +23,7 @@ #include <pthread.h> #include <setjmp.h> #include <internaltypes.h> +#include <sysdep.h> struct xid_command; @@ -100,5 +101,12 @@ struct pthread_functions /* Variable in libc.so. */ extern struct pthread_functions __libc_pthread_functions attribute_hidden; +extern int __libc_pthread_functions_init attribute_hidden; + +#define PTHFCT_CALL(fct, params) \ + ({ __typeof (__libc_pthread_functions.fct) __p; \ + __p = __libc_pthread_functions.fct; \ + PTR_DEMANGLE (__p); \ + __p params; }) #endif /* pthread-functions.h */ |