aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorPeter Bergner <bergner@gcc.gnu.org>2017-07-07 16:08:42 -0500
committerPeter Bergner <bergner@gcc.gnu.org>2017-07-07 16:08:42 -0500
commitd4391a62cb9a00b8aed02b0328f38ada26848897 (patch)
treef6d6acb0ae1c4a7299f7763343a64d30153e7dee /libgcc
parent738f7c2e12de922b91024717429a048b877492ee (diff)
downloadgcc-d4391a62cb9a00b8aed02b0328f38ada26848897.zip
gcc-d4391a62cb9a00b8aed02b0328f38ada26848897.tar.gz
gcc-d4391a62cb9a00b8aed02b0328f38ada26848897.tar.bz2
float128-ifunc.c: Don't include auxv.h.
libgcc/ * config/rs6000/float128-ifunc.c: Don't include auxv.h. (have_ieee_hw_p): Delete function. (SW_OR_HW) Use __builtin_cpu_supports(). From-SVN: r250061
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog8
-rw-r--r--libgcc/config/rs6000/float128-ifunc.c42
2 files changed, 8 insertions, 42 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 6aee40e..ff22641 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,10 +1,16 @@
+2017-07-07 Peter Bergner <bergner@vnet.ibm.com>
+
+ * config/rs6000/float128-ifunc.c: Don't include auxv.h.
+ (have_ieee_hw_p): Delete function.
+ (SW_OR_HW) Use __builtin_cpu_supports().
+
2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/lib1funcs.S: Defined __ARM_ARCH__ to 8 for ARMv8-R.
2017-07-03 Olivier Hainque <hainque@adacore.com>
- * config/t-vxworks7: New file, really.
+ * config/t-vxworks7: New file, really.
2017-06-28 Joseph Myers <joseph@codesourcery.com>
diff --git a/libgcc/config/rs6000/float128-ifunc.c b/libgcc/config/rs6000/float128-ifunc.c
index e456ab1..882c56e 100644
--- a/libgcc/config/rs6000/float128-ifunc.c
+++ b/libgcc/config/rs6000/float128-ifunc.c
@@ -45,47 +45,7 @@
#error "This module must not be compiled with IEEE 128-bit hardware support"
#endif
-#include <sys/auxv.h>
-
-/* Use the namespace clean version of getauxval. However, not all versions of
- sys/auxv.h declare it, so declare it here. This code is intended to be
- temporary until a suitable version of __builtin_cpu_supports is added that
- allows us to tell quickly if the machine supports IEEE 128-bit hardware. */
-extern unsigned long __getauxval (unsigned long);
-
-static int
-have_ieee_hw_p (void)
-{
- static int ieee_hw_p = -1;
-
- if (ieee_hw_p < 0)
- {
- char *p = (char *) __getauxval (AT_PLATFORM);
-
- ieee_hw_p = 0;
-
- /* Don't use atoi/strtol/strncmp/etc. These may require the normal
- environment to be setup to set errno to 0, and the ifunc resolvers run
- before the whole glibc environment is initialized. */
- if (p && p[0] == 'p' && p[1] == 'o' && p[2] == 'w' && p[3] == 'e'
- && p[4] == 'r')
- {
- long n = 0;
- char ch;
-
- p += 5;
- while ((ch = *p++) >= '0' && (ch <= '9'))
- n = (n * 10) + (ch - '0');
-
- if (n >= 9)
- ieee_hw_p = 1;
- }
- }
-
- return ieee_hw_p;
-}
-
-#define SW_OR_HW(SW, HW) (have_ieee_hw_p () ? HW : SW)
+#define SW_OR_HW(SW, HW) (__builtin_cpu_supports ("ieee128") ? HW : SW)
/* Resolvers. */