summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/s390/s390-32/multiarch/ifunc-resolve.c8
-rw-r--r--sysdeps/s390/s390-64/multiarch/ifunc-resolve.c8
3 files changed, 17 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c130d9de87..ef7477d920 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * 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 <hongjiu.lu@intel.com>
[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) \
{ \