diff options
author | Peter Bergner <bergner@gcc.gnu.org> | 2017-07-07 16:08:42 -0500 |
---|---|---|
committer | Peter Bergner <bergner@gcc.gnu.org> | 2017-07-07 16:08:42 -0500 |
commit | d4391a62cb9a00b8aed02b0328f38ada26848897 (patch) | |
tree | f6d6acb0ae1c4a7299f7763343a64d30153e7dee /libgcc | |
parent | 738f7c2e12de922b91024717429a048b877492ee (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | libgcc/config/rs6000/float128-ifunc.c | 42 |
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. */ |