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 sysdeps/init_array: Add PREINIT_FUNCTION to crti.S 2018-01-29 10:22:26 -08:00
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 Mark _init and _fini as hidden [BZ #23145] 2018-06-08 10:28:52 -07:00
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 Fix Linux fcntl OFD locks for non-LFS architectures (BZ#20251) 2018-06-26 13:22:53 -03:00
powerpc Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00
pthread hurd: fix sigevent's sigev_notify_attributes field type 2018-04-19 21:43:44 +02:00
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 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
wordsize-64 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
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