diff --git a/ChangeLog b/ChangeLog index c130d9de87..ef7477d920 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-09-03 Andreas Krebbel + + * sysdeps/s390/s390-32/multiarch/ifunc-resolve.c + (IFUNC_RESOLVE): Make pointers to the specialized implementations + hidden. + * sysdeps/s390/s390-64/multiarch/ifunc-resolve.c: Likewise. + 2012-09-02 H.J. Lu [BZ #14538] diff --git a/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c b/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c index fd6e367065..6a86c03c25 100644 --- a/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c +++ b/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c @@ -32,9 +32,11 @@ ".globl __GI_" #FUNC "\n\t" \ ".set __GI_" #FUNC "," #FUNC "\n"); \ \ - extern void *FUNC##_z10; \ - extern void *FUNC##_z196; \ - extern void *FUNC##_g5; \ + /* Make the declarations of the optimized functions hidden in order + to prevent GOT slots being generated for them. */ \ + extern __attribute__((visibility("hidden"))) void *FUNC##_z196; \ + extern __attribute__((visibility("hidden"))) void *FUNC##_z10; \ + extern __attribute__((visibility("hidden"))) void *FUNC##_g5; \ \ void *resolve_##FUNC (unsigned long int dl_hwcap) \ { \ diff --git a/sysdeps/s390/s390-64/multiarch/ifunc-resolve.c b/sysdeps/s390/s390-64/multiarch/ifunc-resolve.c index f980bc9390..5f56764909 100644 --- a/sysdeps/s390/s390-64/multiarch/ifunc-resolve.c +++ b/sysdeps/s390/s390-64/multiarch/ifunc-resolve.c @@ -32,9 +32,11 @@ ".globl __GI_" #FUNC "\n\t" \ ".set __GI_" #FUNC "," #FUNC "\n"); \ \ - extern void *FUNC##_z10; \ - extern void *FUNC##_z196; \ - extern void *FUNC##_z900; \ + /* Make the declarations of the optimized functions hidden in order + to prevent GOT slots being generated for them. */ \ + extern __attribute__((visibility("hidden"))) void *FUNC##_z196; \ + extern __attribute__((visibility("hidden"))) void *FUNC##_z10; \ + extern __attribute__((visibility("hidden"))) void *FUNC##_z900; \ \ void *resolve_##FUNC (unsigned long int dl_hwcap) \ { \