diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-02-28 22:38:00 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-02-28 22:38:00 +0000 |
commit | 0d01dace556f7eb482c346c545e11035d33852ce (patch) | |
tree | 9bf619ec2629e5dc966602d19f633fbbc8bbbea1 /sysdeps/generic/ldsodefs.h | |
parent | 1eb610d162de8470b53b3e31629932ca7726a142 (diff) | |
download | glibc-0d01dace556f7eb482c346c545e11035d33852ce.tar.gz glibc-0d01dace556f7eb482c346c545e11035d33852ce.tar.xz glibc-0d01dace556f7eb482c346c545e11035d33852ce.zip |
Update.
2002-02-28 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (_rtld_global): Remove .protected. (_rtld_local): Strong alias to _rtld_global. * elf/Makefile (CFLAGS-.os): Add -D_RTLD_LOCAL if compiling rtld only .os object. * sysdeps/generic/ldsodefs.h (GL): If SHARED and _RTLD_LOCAL, use _rtld_local instead of _rtld_global. (_rtld_local): Add hidden extern, possibly in .sdata section. * configure.in: Add tests for visibility attribute and .sdata. * config.h.in: Add HAVE_VISIBILITY_ATTRIBUTE and HAVE_SDATA_SECTION. * sysdeps/alpha/dl-machine.h: Use _rtld_local instead of _rtld_global. * sysdeps/arm/dl-machine.h: Likewise. * sysdeps/generic/ldsodefs.h: Likewise. * sysdeps/hppa/dl-machine.h: Likewise. * sysdeps/cris/dl-machine.h: Likewise. * sysdeps/i386/dl-machine.h: Likewise. * sysdeps/ia64/dl-machine.h: Likewise. * sysdeps/m68k/dl-machine.h: Likewise. * sysdeps/mips/mips64/dl-machine.h: Likewise. * sysdeps/mips/dl-machine.h: Likewise. * sysdeps/sparc/sparc32/dl-machine.h: Likewise. * sysdeps/sparc/sparc64/dl-machine.h: Likewise. * sysdeps/sh/dl-machine.h: Likewise. * sysdeps/s390/s390-32/dl-machine.h: Likewise. * sysdeps/s390/s390-64/dl-machine.h: Likewise. * sysdeps/x86_64/dl-machine.h: Likewise.
Diffstat (limited to 'sysdeps/generic/ldsodefs.h')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 779e438753..08f5829895 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -199,7 +199,11 @@ typedef void (*receiver_fct) (int, const char *, const char *); # define GL(name) _##name #else # define EXTERN -# define GL(name) _rtld_global._##name +# ifdef _RTLD_LOCAL +# define GL(name) _rtld_local._##name +# else +# define GL(name) _rtld_global._##name +# endif struct rtld_global { #endif @@ -371,6 +375,19 @@ struct rtld_global #ifdef SHARED }; extern struct rtld_global _rtld_global; +# ifdef _RTLD_LOCAL +# ifdef HAVE_VISIBILITY_ATTRIBUTE +# ifdef HAVE_SDATA_SECTION +# define __rtld_local_attribute__ \ + __attribute__ ((visibility ("hidden"), section (".sdata"))) +# else +# define __rtld_local_attribute__ __attribute__ ((visibility ("hidden"))) +# endif +# else +# define __rtld_local_attribute__ +# endif +extern struct rtld_global _rtld_local __rtld_local_attribute__; +# endif #endif #undef EXTERN |