glibc/sysdeps
Gabriel F. T. Gomes ef8566d72a Provide a C++ version of issignaling that does not use __MATH_TG
The macro __MATH_TG contains the logic to select between long double and
_Float128, when these types are ABI-distinct.  This logic relies on
__builtin_types_compatible_p, which is not available in C++ mode.

On the other hand, C++ function overloading provides the means to
distinguish between the floating-point types.  The overloading
resolution will match the correct parameter regardless of type
qualifiers, i.e.: const and volatile.

Tested for powerpc64le, s390x, and x86_64.

	* math/math.h [defined __cplusplus] (issignaling): Provide a C++
	definition for issignaling that does not rely on __MATH_TG,
	since __MATH_TG uses __builtin_types_compatible_p, which is only
	available in C mode.
	(CFLAGS-test-math-issignaling.cc): New variable.
	* math/Makefile [CXX] (tests): Add test-math-issignaling.
	* math/test-math-issignaling.cc: New test for C++ implementation
	of type-generic issignaling.
	* sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
	(CXXFLAGS-test-math-issignaling.cc): Add -mfloat128 to the build
	options of test-math-issignaling on powerpc64le.

(cherry picked from commit a16e8bc08e)
2017-08-29 10:32:29 -03:00
..
aarch64 tunables, aarch64: New tunable to override cpu 2017-06-30 22:58:39 +05:30
alpha Update Alpha libm-test-ulps 2017-07-27 14:21:28 -03:00
arm [ARM] Fix ld.so crash when built using Binutils 2.29 2017-07-13 15:48:41 +01:00
generic tunables: Use direct syscall for access (BZ#21744) 2017-07-24 11:21:07 -03:00
gnu Regenerate sysdeps/gnu/errlist.c. 2017-06-04 15:27:14 -04:00
hppa Remove extra semicolons in struct pthread_mutex (bug 21804) 2017-07-24 12:22:05 +02:00
i386 i686/multiarch: Regenerate ulps 2017-08-04 00:40:31 +02:00
ia64 float128: Add signbit alternative for old compilers 2017-06-30 18:34:29 -03:00
ieee754 Fix cexpl when compiled with latest GCC 2017-07-21 09:47:57 -07:00
init_array Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
m68k Rename struct ucontext tag (bug 21457). 2017-06-26 22:03:58 +00:00
mach Remove __need macros from errno.h (__need_Emath, __need_error_t). 2017-06-14 08:14:34 -04:00
microblaze Update Microblaze libm-test-ulps 2017-07-28 09:19:40 -03:00
mips Rename struct ucontext tag (bug 21457). 2017-06-26 22:03:58 +00:00
nios2 Update Nios II ULPs file. 2017-07-28 03:54:35 -07:00
nptl Remove extra semicolons in struct pthread_mutex (bug 21804) 2017-07-24 12:22:05 +02:00
posix posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780) 2017-08-09 11:13:18 -03:00
powerpc Provide a C++ version of issignaling that does not use __MATH_TG 2017-08-29 10:32:29 -03:00
pthread Single threaded stdio optimization 2017-07-04 16:05:12 +01:00
s390 Require binutils 2.25 or later to build glibc. 2017-06-28 11:31:50 +00:00
sh PowerPC64 ELFv2 PPC64_OPT_LOCALENTRY 2017-06-14 10:47:25 +09:30
sparc Update sparc ulps 2017-07-19 15:56:02 -03:00
tile PowerPC64 ELFv2 PPC64_OPT_LOCALENTRY 2017-06-14 10:47:25 +09:30
unix posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780) 2017-08-09 11:13:18 -03:00
wordsize-32 Build divdi3 only for architecture that required it 2017-04-06 15:14:34 -03:00
wordsize-64 Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
x86 x86-64: Use _dl_runtime_resolve_opt only with AVX512F [BZ #21871] 2017-08-06 10:44:44 -07:00
x86_64 x86-64: Test memmove_chk and memset_chk only in libc.so [BZ #21741] 2017-07-10 04:44:38 -07:00