aboutsummaryrefslogtreecommitdiff
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
glibc-c676e659395f145e45b08fe3bba90c29ab44e8b8.tar.gz
glibc-c676e659395f145e45b08fe3bba90c29ab44e8b8.tar.bz2
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