aboutsummaryrefslogtreecommitdiff
path: root/conform
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-09-15 22:12:40 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-09-15 22:12:40 +0000
commitde20571d405bfb873f63a8645f143aef2b1455a9 (patch)
treec66dd93199826738cb3d89433bacb763f451818f /conform
parentdfa0f62011b50cc36107df5fad4130c5368b11e1 (diff)
downloadglibc-de20571d405bfb873f63a8645f143aef2b1455a9.zip
glibc-de20571d405bfb873f63a8645f143aef2b1455a9.tar.gz
glibc-de20571d405bfb873f63a8645f143aef2b1455a9.tar.bz2
Fix math.h, tgmath.h XSI POSIX namespace (gamma, isnan, scalb) (bug 18967).
math.h incorrectly declares various functions for XSI POSIX 2001 and 2008 editions. gamma was removed in the 2001 edition but is still declared, along with gammaf and gammal which were never standard functions. isnan is still declared as a function, along with isnanf and isnanl which were never standard functions, although in 2001 the function was replaced by the type-generic macro. scalbf and scalbl are declared although never standard, and scalb was removed in the 2008 edition but is still declared. The scalb type-generic macro in tgmath.h shouldn't be present for any POSIX version, since POSIX never had such a type-generic macro. This patch disables all those declarations in the relevant cases (as a minimal fix, it leaves them enabled for __USE_MISC). For the matter of declaring scalb but not scalbf or scalbl for the 2001 edition, a new macro __MATH_DECLARING_DOUBLE is added, defined by math.h around includes of bits/mathcalls.h, for bits/mathcalls.h to use to test which type's functions are being declared. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18967] * math/math.h (__MATH_DECLARING_DOUBLE): New macro. Define and undefine around includes of <bits/mathcalls.h>. * math/bits/mathcalls.h [!__USE_MISC && __USE_XOPEN2K] (isnan): Do not declare function. [!__USE_MISC && __USE_XOPEN2K] (gamma): Likewise. [!__USE_MISC && (!__MATH_DECLARING_DOUBLE || __USE_XOPEN2K8)] (scalb): Likewise. * math/tgmath.h [!__USE_MISC && __USE_XOPEN_EXTENDED] (scalb): Do not define macro. * conform/Makefile (test-xfail-XOPEN2K/math.h/conform): Remove variable. (test-xfail-XOPEN2K/tgmath.h/conform): Likewise. (test-xfail-XOPEN2K8/math.h/conform): Likewise. (test-xfail-XOPEN2K8/tgmath.h/conform): Likewise.
Diffstat (limited to 'conform')
-rw-r--r--conform/Makefile4
1 files changed, 0 insertions, 4 deletions
diff --git a/conform/Makefile b/conform/Makefile
index 7d0a3dd..1a76369 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -217,7 +217,6 @@ test-xfail-UNIX98/utmpx.h/conform = yes
test-xfail-XOPEN2K/aio.h/conform = yes
test-xfail-XOPEN2K/fcntl.h/conform = yes
test-xfail-XOPEN2K/langinfo.h/conform = yes
-test-xfail-XOPEN2K/math.h/conform = yes
test-xfail-XOPEN2K/mqueue.h/conform = yes
test-xfail-XOPEN2K/semaphore.h/conform = yes
test-xfail-XOPEN2K/signal.h/conform = yes
@@ -225,7 +224,6 @@ test-xfail-XOPEN2K/stdarg.h/conform = yes
test-xfail-XOPEN2K/stdio.h/conform = yes
test-xfail-XOPEN2K/sys/wait.h/conform = yes
test-xfail-XOPEN2K/termios.h/conform = yes
-test-xfail-XOPEN2K/tgmath.h/conform = yes
test-xfail-XOPEN2K/ucontext.h/conform = yes
test-xfail-POSIX2008/arpa/inet.h/conform = yes
test-xfail-POSIX2008/netdb.h/conform = yes
@@ -234,12 +232,10 @@ test-xfail-POSIX2008/signal.h/conform = yes
test-xfail-POSIX2008/sys/socket.h/conform = yes
test-xfail-POSIX2008/sys/wait.h/conform = yes
test-xfail-XOPEN2K8/limits.h/conform = yes
-test-xfail-XOPEN2K8/math.h/conform = yes
test-xfail-XOPEN2K8/signal.h/conform = yes
test-xfail-XOPEN2K8/stdio.h/conform = yes
test-xfail-XOPEN2K8/sys/wait.h/conform = yes
test-xfail-XOPEN2K8/termios.h/conform = yes
-test-xfail-XOPEN2K8/tgmath.h/conform = yes
conformtest-cc-flags = -I../include $(+sysdep-includes) $(sysincludes) -I..
$(conformtest-header-tests): $(objpfx)%/conform.out: \