From: Andreas Krebbel Date: Mon, 3 Sep 2012 12:06:27 +0000 (+0200) Subject: S/390: Make IFUNC optimized mem* functions hidden. X-Git-Tag: upstream/2.16.90~605 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=511fa2864a8d01a09b23a6b8b9a599429b7055f6;p=platform%2Fupstream%2Fglibc.git S/390: Make IFUNC optimized mem* functions hidden. --- diff --git a/ChangeLog b/ChangeLog index c130d9d..ef7477d 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 fd6e367..6a86c03 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 f980bc9..5f56764 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) \ { \