glibc/sysdeps
Joseph Myers a19876214a Fix libnldbl_nonshared.a references to internal libm symbols (bug 23735).
The redirection of built-in functions such as sqrt in include/math.h
applies when the wrappers for those functions in libnldbl_nonshared.a
are built, resulting in references to internal names such as
__ieee754_sqrt that aren't actually exported from the shared libm.
(This applies for sqrt in 2.28, also for the round-to-integer
functions in current master because of my changes there.)  This patch
arranges for NO_MATH_REDIRECT to be used for all the affected
functions, and adds a test for those functions in
libnldbl_nonshared.a.

(We could of course choose to obsolete libnldbl_nonshared.a and
require that people building with -mlong-double-64 either include the
relevant headers and have a compiler supporting asm redirection, or
have some other means of achieving that redirection at compile time if
not including those headers.  But while we have libnldbl_nonshared.a,
it seems appropriate to fix such bugs in it.)

Tested for powerpc, and with build-many-glibcs.py.

	[BZ #23735]
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NO_MATH_REDIRECT):
	Define.
	* sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c: New file.
	* sysdeps/ieee754/ldbl-opt/Makefile [$(subdir) = math] (tests):
	Add test-nldbl-redirect.
	[$(subdir) = math] (CFLAGS-test-nldbl-redirect.c): New variable.
	[$(subdir) = math] ($(objpfx)test-nldbl-redirect): Depend on
	$(objpfx)libnldbl_nonshared.a.
2018-10-04 12:16:05 +00:00
..
aarch64 Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
alpha Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
arm Add new exp and exp2 implementations 2018-09-05 16:22:00 +01:00
generic libio: Flush stream at freopen (BZ#21037) 2018-10-02 10:01:56 -03:00
gnu Update netinet/udp.h from Linux 4.18. 2018-08-27 13:43:05 +00:00
hppa Move SNAN_TESTS_PRESERVE_PAYLOAD out of math-tests.h. 2018-08-01 11:21:16 +00:00
htl hurd: Avoid PLTs for __pthread_get/setspecific 2018-08-09 01:28:55 +02:00
hurd Fix ISO C threads installed header and HURD assumption 2018-07-25 17:27:45 -03:00
i386 Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
ia64 Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
ieee754 Fix libnldbl_nonshared.a references to internal libm symbols (bug 23735). 2018-10-04 12:16:05 +00:00
init_array
m68k Use trunc functions not __trunc functions in glibc libm. 2018-09-20 21:11:10 +00:00
mach hurd: Fix exec usage of mach_setup_thread 2018-08-01 00:10:03 +02:00
microblaze
mips Split fenv_private.h out of math_private.h more consistently. 2018-08-28 20:48:49 +00:00
nios2 Move EXCEPTION_TESTS_* out of math-tests.h 2018-08-23 23:41:13 +00:00
nptl [BZ #20271] Add newlines in __libc_fatal calls. 2018-08-31 18:04:32 -07:00
posix
powerpc Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
pthread
riscv Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
s390 S390: Regenerate ULPs. 2018-09-06 14:29:01 +02:00
sh Update SH libm-tests-ulps 2018-07-31 10:33:53 -03:00
sparc Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
unix Fix build from commit 0b727ed 2018-10-02 12:29:02 -03:00
wordsize-32
wordsize-64
x86 Use round functions not __round functions in glibc libm. 2018-09-27 12:35:23 +00:00
x86_64 Use trunc functions not __trunc functions in glibc libm. 2018-09-20 21:11:10 +00:00