about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCarlos Eduardo Seo <cseo@linux.vnet.ibm.com>2015-12-09 18:48:04 -0200
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2015-12-22 15:41:19 -0200
commitc676e659395f145e45b08fe3bba90c29ab44e8b8 (patch)
tree742eb357d69120d95ef278a37eec91ee03b9e9c6
parentb1f19b8ef1003f202424ca222003a18b880bf914 (diff)
downloadglibc-c676e659395f145e45b08fe3bba90c29ab44e8b8.tar.gz
glibc-c676e659395f145e45b08fe3bba90c29ab44e8b8.tar.xz
glibc-c676e659395f145e45b08fe3bba90c29ab44e8b8.zip
powerpc: Export __parse_hwcap_and_convert_at_platform to libc.a.
Commit 67385a01d229751569b6aac067ffdcd813a15d7a added a new feature for
powerpc, where we store HWCAP/Platform bits in the TCB.  In the dynamic
linking case, we use the versioned symbol
'__parse_hwcap_and_convert_at_platform' to verify if this feature is
available.  However, the same symbol was not exported to libc.a, making
it not possible for GCC to check for it prior to link time.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/powerpc/hwcapinfo.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 83143de100..a32717ea05 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2015-12-22  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
 
+	* sysdeps/powerpc/hwcapinfo.c: Export symbol
+	__parse_hwcap_and_convert_at_platform to libc.a.
+
+2015-12-22  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
+
 	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platforms): Added
 	platform and feature support for POWER9.
 	* sysdeps/powerpc/dl-procinfo.h: Likewise.
diff --git a/sysdeps/powerpc/hwcapinfo.c b/sysdeps/powerpc/hwcapinfo.c
index a115ffccd9..b885f1cff6 100644
--- a/sysdeps/powerpc/hwcapinfo.c
+++ b/sysdeps/powerpc/hwcapinfo.c
@@ -74,3 +74,11 @@ __tcb_parse_hwcap_and_convert_at_platform (void)
 versioned_symbol (ld, __tcb_parse_hwcap_and_convert_at_platform, \
 		  __parse_hwcap_and_convert_at_platform, GLIBC_2_23);
 #endif
+
+/* Export __parse_hwcap_and_convert_at_platform in libc.a.  This is used by
+   GCC to make sure that the HWCAP/Platform bits are stored in the TCB when
+   using __builtin_cpu_is()/__builtin_cpu_supports() in the static case.  */
+#ifndef SHARED
+weak_alias (__tcb_parse_hwcap_and_convert_at_platform, \
+	    __parse_hwcap_and_convert_at_platform);
+#endif