glibc/sysdeps
Paul E. Murphy 50545f5aa0 powerpc64le: raise GCC requirement to 7.4 for long double transition
Add compiler feature tests to ensure we can build ieee128 long double.
These test for -mabi=ieeelongdouble, -mno-gnu-attribute, and -Wno-psabi.

Likewise, verify some compiler bugs have been addressed.  These aren't
helpful for building glibc, but may cause test failures when testing
the new long double.  See notes below from Raji.

On powerpc64le, some older compiler versions give error for the function
signbit() for 128-bit floating point types.  This is fixed by PR83862
in gcc 8.0 and backported to gcc6 and gcc7.  This patch adds a test
to check compiler version to avoid compiler errors during make check.

Likewise, test for -mno-gnu-attribute support which was

On powerpc64le, a few files are built on IEEE long double mode
(-mabi=ieeelongdouble), whereas most are built on IBM long double mode
(-mabi=ibmlongdouble, the default for -mlong-double-128).  Since binutils
2.31, linking object files with different long double modes causes
errors similar to:

  ld: libc_pic.a(s_isinfl.os) uses IBM long double,
      libc_pic.a(ieee128-qefgcvt.os) uses IEEE long double.
  collect2: error: ld returned 1 exit status
  make[2]: *** [../Makerules:649: libc_pic.os] Error 1

The warnings are fair and correct, but in order for glibc to have
support for both long double modes on powerpc64le, they have to be
ignored.  This can be accomplished with the use of -mno-gnu-attribute
option when building the few files that require IEEE long double mode.

However, -mno-gnu-attribute is not available in GCC 6, the minimum
version required to build glibc, so this patch adds a test for this
feature in powerpc64le builds, and fails early if it's not available.

Co-Authored-By: Rajalakshmi Srinivasaraghavan  <raji@linux.vnet.ibm.com>
Co-Authored-By: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2020-04-30 08:52:08 -05:00
..
aarch64 Update aarch64 libm-test-ulps 2020-04-08 13:52:44 -03:00
alpha Update alpha libm-test-ulps 2020-04-08 13:52:45 -03:00
arm Remove most gmp-mparam.h headers. 2020-04-24 22:08:59 +00:00
csky math: Remove inline math tests 2020-03-19 11:45:44 -03:00
generic elf: Implement __libc_early_init 2020-04-24 22:32:09 +02:00
gnu Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hppa Update hppa libm-test-ulps 2020-04-06 22:19:03 +00:00
htl pthread: Move robust mutex tests from nptl to sysdeps/pthread 2020-02-16 14:43:54 +00:00
hurd C11 threads: Move implementation to sysdeps/pthread 2020-02-09 13:56:48 +01:00
i386 Remove most gmp-mparam.h headers. 2020-04-24 22:08:59 +00:00
ia64 ia64: Remove sigprocmask/sigblock objects from libpthread 2020-04-21 14:01:58 -03:00
ieee754 Rename __LONG_DOUBLE_USES_FLOAT128 to __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 2020-04-30 08:52:08 -05:00
m68k math: Remove inline math tests 2020-03-19 11:45:44 -03:00
mach elf: Implement __libc_early_init 2020-04-24 22:32:09 +02:00
microblaze math: Remove inline math tests 2020-03-19 11:45:44 -03:00
mips Rename __LONG_DOUBLE_USES_FLOAT128 to __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 2020-04-30 08:52:08 -05:00
nios2 Remove most gmp-mparam.h headers. 2020-04-24 22:08:59 +00:00
nptl Linux: set_robust_list syscall number is always available 2020-03-03 12:49:44 +01:00
posix posix: Fix system error return value [BZ #25715] 2020-03-23 18:00:38 -03:00
powerpc powerpc64le: raise GCC requirement to 7.4 for long double transition 2020-04-30 08:52:08 -05:00
pthread pthread: Fix building tst-robust8 with nptl 2020-02-16 23:53:45 +01:00
riscv math: Remove inline math tests 2020-03-19 11:45:44 -03:00
s390 Remove most gmp-mparam.h headers. 2020-04-24 22:08:59 +00:00
sh Remove most gmp-mparam.h headers. 2020-04-24 22:08:59 +00:00
sparc Update sparc libm-test-ulps 2020-04-08 13:52:44 -03:00
unix Rename __LONG_DOUBLE_USES_FLOAT128 to __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 2020-04-30 08:52:08 -05:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
x86 x86: Add the test case of __get_cpu_features support for Zhaoxin processors 2020-04-30 06:47:09 -07:00
x86_64 Remove unused floating-point configuration from gmp-impl.h. 2020-04-28 15:05:09 +00:00