mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 11:43:34 +08:00
688903eb3e
298 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Joseph Myers
|
77d21a1f4f |
conformtest: Fix st_blksize, st_blocks expectations for XPG3, XPG4.
The conformtest expectations expect the struct stat fields st_blksize and st_blocks to be of types blksize_t and blkcnt_t. But XPG4 does not have those types, using long instead, and XPG3 does not have these fields at all. This patch adjusts the expectations for those standards, XFAILing them for XPG4 to allow for systems where the typedefs don't correspond to long. Tested for x86_64 and x86. * conform/data/sys/stat.h-data (st_blksize): Do not expect for [XPG3]. Expect type long and XFAIL for [XPG4]. (st_blocks): Likewise. |
||
Joseph Myers
|
46c1ffa4d5 |
Declare pthread_atfork in unistd.h for UNIX98 (bug 20044).
For UNIX98 (only), unistd.h should declare pthread_atfork, but that declaration is missing. This patch adds it. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #20044] * posix/unistd.h [__USE_UNIX98 && !__USE_XOPEN2K] (pthread_atfork): New prototype. * conform/Makefile (test-xfail-UNIX98/unistd.h/conform): Remove variable. |
||
Joseph Myers
|
9e6e128d14 |
conformtest: Remove some bogus sys/types.h expectations for XPG3 and XPG4.
The conformtest tests for sys/types.h for XPG3 and XPG4 fail because of missing blksize_t. This is a bug in the expectations; that type is not part of those standards. This patch stops the tests from expecting it, and some other types that also are not part of XPG3 and XPG4. Tested for x86_64 and x86. * conform/data/sys/types.h-data (blkcnt_t): Do not expect for [XPG3 || XPG4]. (blksize_t): Likewise. (clockid_t): Likewise. * conform/Makefile (test-xfail-XPG3/sys/types.h/conform): Remove variable. (test-xfail-XPG4/sys/types.h/conform): Likewise. |
||
Joseph Myers
|
2faba597ec |
Fix sys/time.h timespec namespace (bug 20041).
For UNIX98 and older standards, sys/time.h should not define struct timespec, but does so via the inclusion of sys/select.h (which is a new header in the 2001 edition of POSIX, and defines struct timespec because of the declaration of pselect, a new function in the 2001 edition of POSIX). In turn, this affects some other headers that themselves include sys/time.h. This patch fixes this by conditioning the __need_timespec definition in sys/select.h on __USE_XOPEN2K, the same condition used there for the declaration of pselect (this has no effect on direct uses of sys/select.h with feature test macros for any standard that includes that header, since such standards result in __USE_XOPEN2K being defined). Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #20041] * misc/sys/select.h (__need_timespec): Only define if [__USE_XOPEN2K]. * conform/Makefile (test-xfail-XPG4/sys/time.h/conform): Remove variable. (test-xfail-XPG4/utmpx.h/conform): Likewise. (test-xfail-UNIX98/sys/time.h/conform): Likewise. (test-xfail-UNIX98/utmpx.h/conform): Likewise. |
||
Joseph Myers
|
35281b18b8 |
Fix fcntl.h timespec namespace (bug 20023).
fcntl.h defines struct timespec if __USE_XOPEN || __USE_XOPEN2K8. But (a) the subsequent bits/stat.h include only needs it if __USE_XOPEN2K8 and (b) older standards did not allow struct timespec here. (It's allowed for newer standards by virtue of the permission to include symbols from sys/stat.h. But sys/stat.h is only required to provide struct timespec from the 2008 edition of POSIX onwards, and permitted by the 2004 TC to the 2001 edition in anticipation of the addition of nanosecond timestamp support to struct stat in the 2008 edition.) This patch limits the timespec definition to the __USE_XOPEN2K8 case, that being the only case where it is actually needed for the <bits/stat.h> include. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #20023] * io/fcntl.h [__USE_XOPEN && !__USE_XOPEN2K8]: Do not include <time.h>. * conform/Makefile (test-xfail-UNIX98/fcntl.h/conform): Remove variable. (test-xfail-XOPEN2K/fcntl.h/conform): Likewise. |
||
Joseph Myers
|
a7657f3012 |
Fix stdio.h namespace for pre-threads POSIX (bug 20014).
stdio.h declares flockfile, ftrylockfile, funlockfile, getc_unlocked, getchar_unlocked, putc_unlocked and putchar_unlocked if __USE_POSIX, with comments "These are defined in POSIX.1:1996.". But __USE_POSIX is actually POSIX.1:1990, and these functions should not be declared for 1990 / 1992 / 1993 POSIX, XPG3 or XPG4. This patch fixes stdio.h to use __USE_POSIX199506 instead for those conditionals, as that is the correct conditional for the version of POSIX that introduced threads, and with threads those functions. Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). [BZ #20014] * libio/stdio.h (getc_unlocked): Declare if [__USE_POSIX199506], not [__USE_POSIX]. (getchar_unlocked): Likewise. (putc_unlocked): Likewise. (putchar_unlocked): Likewise. (flockfile): Likewise. (ftrylockfile): Likewise. (funlockfile): Likewise. * conform/Makefile (test-xfail-XPG3/stdio.h/conform): Remove variable. (test-xfail-XPG4/stdio.h/conform): Likewise. |
||
Joseph Myers
|
022d239b5d |
conformtest: Add langinfo.h expectations for YESSTR, NOSTR.
The conformtest expectations for langinfo.h fail to include the YESSTR and NOSTR constants that were present in UNIX98 and earlier XPG standards. This patch adds those expectations, so fixing three XFAILs. Tested for x86_64 and x86. * conform/data/langinfo.h-data [XPG3 || XPG4 || UNIX98] (YESSTR): Expect constant. [XPG3 || XPG4 || UNIX98] (NOSTR): Likewise. * conform/Makefile (test-xfail-XPG3/langinfo.h/conform): Remove variable. (test-xfail-XPG4/langinfo.h/conform): Likewise. (test-xfail-UNIX98/langinfo.h/conform): Likewise. |
||
Joseph Myers
|
10b8108aec |
Also define off_t in stdio.h for UNIX98.
Similar to my previous fix for XOPEN2K <https://sourceware.org/ml/libc-alpha/2016-04/msg00631.html>, now that bugs in the conformtest expectations for stdio.h for UNIX98 have been corrected, that case too fails because fseeko and ftello are now correctly expected, but off_t is not defined. As in that fix, it seems appropriate to define off_t in stdio.h for this standard as well, and this patch does so. Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). * libio/stdio.h (off_t): Also define if [__USE_UNIX98]. [__USE_LARGEFILE64] (off64_t): Likewise. * conform/Makefile (test-xfail-UNIX98/stdio.h/conform): Remove variable. |
||
Joseph Myers
|
9a018860a7 |
conformtest: Correct stdio.h expectations for fdopen.
The conform/ test of stdio.h wrongly does not expect fdopen for XPG3 and XPG4. fdopen is in those standards; this patch corrects the expectations. Tested for x86_64 and x86. * conform/data/stdio.h-data (fdopen): Expect also for [XPG3 || XPG4]. |
||
Joseph Myers
|
1876dfe4c3 |
conformtest: Correct some stdio.h expectations for UNIX98.
The conform/ test of stdio.h for UNIX98 fails with surious namespace errors for functions that are correctly declared for that standard. This patch fixes the expectations to expect those functions also for UNIX98. (This does not by itself fix the XFAIL of that test, and is not based a full review of the header expectations so there could still be other bugs in the expectations for this header for UNIX98.) Tested for x86_64 and x86. * conform/data/stdio.h-data (flockfile): Also expect for [UNIX98]. (fseeko): Likewise. (ftello): Likewise. (ftrylockfile): Likewise. (funlockfile): Likewise. (getc_unlocked): Likewise. (getchar_unlocked): Likewise. (putc_unlocked): Likewise. (putchar_unlocked): Likewise. |
||
Joseph Myers
|
9f57e65c93 |
conformtest: Correct some signal.h expectations for XOPEN2K.
The conformtest expectations for signal.h have various declarations that are expected for POSIX (1996) and all later standards, except, wrongly, for XOPEN2K. This shows up as failures of tests for two other headers, which are allowed to make visible symbols from signal.h, because of an incorrect namespace failure for sigval (required in signal.h in XOPEN2K, so should be allowed for those other headers); signal.h tests for various standards fail anyway because of other problems in the header. This patch fixes the incorrect expectations and removes the two XFAILs that this fixes. Tested for x86_64 and x86. * conform/data/signal.h-data (union sigval): Expect also if [XOPEN2K]. (struct sigevent): Likewise. (SIGEV_NONE): Likewise. (SIGEV_SIGNAL): Likewise. (SIGEV_THREAD): Likewise. (SIGRTMIN): Likewise. (SIGRTMAX): Likewise. * conform/Makefile (test-xfail-XOPEN2K/aio.h/conform): Remove variable. (test-xfail-XOPEN2K/mqueue.h/conform): Likewise. |
||
Joseph Myers
|
085bbece2c |
Fix langinfo.h nl_langinfo_l namespace (bug 19996).
langinfo.h declares nl_langinfo_l if __USE_XOPEN2K. But this function was new in the 2008 edition of POSIX. This patch fixes the condition accordingly. Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). [BZ #19996] * locale/langinfo.h (nl_langinfo_l): Declare if [__USE_XOPEN2K8], not [__USE_XOPEN2K]. * conform/Makefile (test-xfail-XOPEN2K/langinfo.h/conform): Remove variable. |
||
Joseph Myers
|
6da052fd6a |
conformtest: Correct XOPEN2K stdarg.h expectations.
The conform/ test expectations for stdarg.h were wrongly missing an expectation of va_copy for XOPEN2K (based on C99, so including that macro). This patch fixes this. Tested for x86_64 and x86. * conform/data/stdarg.h-data [XOPEN2K] (va_copy): Require macro. * conform/Makefile (test-xfail-XOPEN2K/stdarg.h/conform): Remove variable. |
||
Joseph Myers
|
bf07472615 |
Define off_t in stdio.h for XOPEN2K.
The header conformance test for stdio.h for XOPEN2K fails because the header does not define the off_t type, used in the expected declarations for fseeko and ftello. The absence of this type is not actually strictly a bug (hence no bug report being filed in Bugzilla), since POSIX didn't require the type to be declared in this header until the 2008 edition. However, the glibc convention in such cases - where the type falls under the general *_t POSIX reservation, and so it's OK to define it for all POSIX versions - is to make the headers self-contained in this regard even for the older POSIX versions not requiring the type to be defined despite including other declarations depending on the type. Thus, this patch adjusts the condition in the header and removes the XFAIL (rather than adapting the expectation to work when the functions are declared using __off_t without off_t being defined). Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * libio/stdio.h (off_t): Define if [__USE_XOPEN2K], not [__USE_XOPEN2K8]. [__USE_LARGEFILE64] (off64_t): Likewise. * conform/Makefile (test-xfail-XOPEN2K/stdio.h/conform): Remove variable. |
||
Joseph Myers
|
12404bb04e |
Fix stdio.h cuserid namespace (bug 19989).
stdio.h declares cuserid if __USE_XOPEN. But this was removed in the 2001 edition of POSIX. The #endif comment "Use X/Open, but not issue 6." reflects the correct logic, but does not correspond to the #ifdef. The use of a correct libc-hacker. The online archives for libc-hacker in August 2000 are broken, but the messages can be found in the qmail archives in /sourceware1/qmail/lists-sourceware/libc-hacker/archive/26 if you have shell access to sourceware. The issue showed up in August 2000 because of a warning about a non-prototype definition in sysdeps/posix/cuserid.c when there was no previous prototype declaration. Since we've now eliminated non-prototype function definitions, that issue does not apply. The other points from that discussion were about whether it should be included in _GNU_SOURCE; whether _GNU_SOURCE should include "everything"; whether deprecated interfaces such as this should be excluded from it; and whether, even given exclusion of deprecated interfaces, it should apply for deprecations in a version of POSIX that at that time had not been released. This patch follows the more conservative approach to a fix of keeping the interface in _GNU_SOURCE. That matches how L_cuserid is handled. I think there is a strong case for eliminating this interface from _GNU_SOURCE (but this may not automatically be the case for every interface removed in newer POSIX versions), but then L_cuserid should also be removed from _GNU_SOURCE (in stdio-common/stdio_lim.h.in) at the same time. Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). [BZ #19989] * libio/stdio.h (cuserid): Do not declare if [__USE_XOPEN2K && !__USE_GNU]. * conform/Makefile (test-xfail-XOPEN2K8/stdio.h/conform): Remove variable. |
||
Joseph Myers
|
eb64b6d457 |
Fix limits.h NL_NMAX namespace (bug 19929).
bits/xopen_lim.h (included by limits.h if __USE_XOPEN) defines NL_NMAX, but this constant was removed in the 2008 edition of POSIX so should not be defined in that case. This patch duly disables that define for __USE_XOPEN2K8. It remains enabled for __USE_GNU to avoid affecting sysconf (_SC_NL_NMAX), the implementation of which uses "#ifdef NL_NMAX". Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #19929] * include/bits/xopen_lim.h (NL_NMAX): Do not define if [__USE_XOPEN2K8 && !__USE_GNU]. * conform/Makefile (test-xfail-XOPEN2K8/limits.h/conform): Remove variable. |
||
Joseph Myers
|
fb3227b95c |
Fix termios.h XCASE namespace (bug 19925).
bits/termios.h (various versions under sysdeps/unix/sysv/linux) defines XCASE if defined __USE_MISC || defined __USE_XOPEN. This macro was removed in the 2001 edition of POSIX, and is not otherwise reserved, so should not be defined for 2001 and later versions of POSIX. This patch fixes the conditions accordingly (leaving the macro defined for __USE_MISC, so still in the default namespace). Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). [BZ #19925] * sysdeps/unix/sysv/linux/alpha/bits/termios.h (XCASE): Do not define if [!__USE_MISC && __USE_XOPEN2K]. * sysdeps/unix/sysv/linux/bits/termios.h (XCASE): Likewise. * sysdeps/unix/sysv/linux/mips/bits/termios.h (XCASE): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/termios.h (XCASE): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/termios.h (XCASE): Likewise. * conform/Makefile (test-xfail-XOPEN2K/termios.h/conform): Remove variable. (test-xfail-XOPEN2K8/termios.h/conform): Likewise. |
||
Marko Myllynen
|
48d0341cdd | Make shebang interpreter directives consistent | ||
Joseph Myers
|
f7a9f785e5 | Update copyright dates with scripts/update-copyrights. | ||
Joseph Myers
|
d709042a6e |
Fix lgamma setting signgam for ISO C (bug 15421).
The lgamma (and likewise lgammaf, lgammal) function wrongly sets the signgam variable even when building for strict ISO C conformance (-std=c99 / -std=c11), although the user may define such a variable and it's only in the implementation namespace for POSIX with XSI extensions enabled. Following discussions starting at <https://sourceware.org/ml/libc-alpha/2013-04/msg00767.html> and <https://sourceware.org/ml/libc-alpha/2015-10/msg00844.html>, it seems that the safest approach for fixing this particular issue is for signgam to become a weak alias for a newly exported symbol __signgam, with the library functions only setting __signgam, at which point static linker magic will preserve the alias for newly linked binaries that refer to the library's signgam rather than defining their own, while breaking the alias for programs that define their own signgam, with new symbol versions for lgamma functions and with compat symbols for existing binaries that set both signgam and __signgam. This patch implements that approach for the fix. signgam is made into a weak alias. The four symbols __signgam, lgamma, lgammaf, lgammal get new symbol versions at version GLIBC_2.23, with the existing versions of lgamma, lgammaf and lgammal becoming compat symbols. When the compat versions are built, gamma, gammaf and gammal are aliases for the compat versions (i.e. always set signgam); this is OK as they are not ISO C functions, and avoids adding new symbol versions for them unnecessarily. When the compat versions are not built (i.e. for static linking and for future glibc ports), gamma, gammaf and gammal are aliases for the new versions that set __signgam. The ldbl-opt versions are updated accordingly. The lgamma wrappers are adjusted so that the same source files, included from different files with different definitions of USE_AS_COMPAT, can build either the new versions or the compat versions. Similar changes are made to the ia64 versions (untested). Tests are added that the lgamma functions do not interfere with a user variable called signgam for ISO C, with various choices for the size of that variable, whether it is initialized, and for static and dynamic linking. The conformtest whitelist entry is removed as well. Tested for x86_64, x86, mips64 and powerpc, including looking at objdump --dynamic-syms output to make sure the expected sets of symbols were aliases. Also spot-tested that a binary built with old glibc works properly (i.e. gets signgam set) when run with new glibc. [BZ #15421] * sysdeps/ieee754/s_signgam.c (signgam): Rename to __signgam, initialize with 0 and define as weak alias of __signgam. * include/math.h [!_ISOMAC] (__signgam): Declare. * math/Makefile (libm-calls): Add w_lgamma_compat. (tests): Add test-signgam-uchar, test-signgam-uchar-init, test-signgam-uint, test-signgam-uint-init, test-signgam-ullong and test-signgam-ullong-init. (tests-static): Add test-signgam-uchar-static, test-signgam-uchar-init-static, test-signgam-uint-static, test-signgam-uint-init-static, test-signgam-ullong-static and test-signgam-ullong-init-static. (CFLAGS-test-signgam-uchar.c): New variable. (CFLAGS-test-signgam-uchar-init.c): Likewise. (CFLAGS-test-signgam-uchar-static.c): Likewise. (CFLAGS-test-signgam-uchar-init-static.c): Likewise. (CFLAGS-test-signgam-uint.c): Likewise. (CFLAGS-test-signgam-uint-init.c): Likewise. (CFLAGS-test-signgam-uint-static.c): Likewise. (CFLAGS-test-signgam-uint-init-static.c): Likewise. (CFLAGS-test-signgam-ullong.c): Likewise. (CFLAGS-test-signgam-ullong-init.c): Likewise. (CFLAGS-test-signgam-ullong-static.c): Likewise. (CFLAGS-test-signgam-ullong-init-static.c): Likewise. * math/Versions (libm): Add GLIBC_2.23. * math/lgamma-compat.h: New file. * math/test-signgam-main.c: Likewise. * math/test-signgam-uchar-init-static.c: Likewise. * math/test-signgam-uchar-init.c: Likewise. * math/test-signgam-uchar-static.c: Likewise. * math/test-signgam-uchar.c: Likewise. * math/test-signgam-uint-init-static.c: Likewise. * math/test-signgam-uint-init.c: Likewise. * math/test-signgam-uint-static.c: Likewise. * math/test-signgam-uint.c: Likewise. * math/test-signgam-ullong-init-static.c: Likewise. * math/test-signgam-ullong-init.c: Likewise. * math/test-signgam-ullong-static.c: Likewise. * math/test-signgam-ullong.c: Likewise. * math/w_lgamma.c: Rename to w_lgamma_main.c and replace by wrapper of w_lgamma_main.c. * math/w_lgamma_compat.c: New file. * math/w_lgamma_compatf.c: Likewise. * math/w_lgamma_compatl.c: Likewise. * math/w_lgamma_main.c: New file. Based on w_lgamma.c. Include <lgamma-compat.h>. Condition contents on [BUILD_LGAMMA]. Support defining compatibility symbols. (__lgamma): Change to LGFUNC (__lgamma). Use CALL_LGAMMA. * math/w_lgammaf.c: Rename to w_lgammaf_main.c and replace by wrapper of w_lgammaf_main.c. * math/w_lgammaf_main.c: New file. Based on w_lgammaf.c. Include <lgamma-compat.h>. Condition contents on [BUILD_LGAMMA]. Support defining compatibility symbols. (__lgammaf): Change to LGFUNC (__lgammaf). Use CALL_LGAMMA. * math/w_lgammal.c: Rename to w_lgammal_main.c and replace by wrapper of w_lgammal_main.c. * math/w_lgammal_main.c: New file. Based on w_lgammal.c. Include <lgamma-compat.h>. Condition contents on [BUILD_LGAMMA]. Support defining compatibility symbols. (__lgammal): Change to LGFUNC (__lgammal). Use CALL_LGAMMA. * sysdeps/ia64/fpu/lgamma-compat.h: New file. * sysdeps/ia64/fpu/w_lgamma.c: Move to .... * sysdeps/ia64/fpu/w_lgamma_main.c: ...here. Include <lgamma-compat.h>. (__ieee754_lgamma): Change to LGFUNC (lgamma). Use CALL_LGAMMA. (__ieee754_gamma): Define as alias. * sysdeps/ia64/fpu/w_lgammaf.c: Move to .... * sysdeps/ia64/fpu/w_lgammaf_main.c: ...here. Include <lgamma-compat.h>. (__ieee754_lgammaf): Change to LGFUNC (lgammaf). Use CALL_LGAMMA. (__ieee754_gammaf): Define as alias. * sysdeps/ia64/fpu/w_lgammal.c: Move to .... * sysdeps/ia64/fpu/w_lgammal_main.c: ...here. Include <lgamma-compat.h>. (__ieee754_lgammal): Change to LGFUNC (lgammal). Use CALL_LGAMMA. (__ieee754_gammal): Define as alias. * sysdeps/ieee754/ldbl-opt/w_lgamma.c: Move to .... * sysdeps/ieee754/ldbl-opt/w_lgamma_compat.c: ...here. Include <math/w_lgamma_compat.c>. [LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (__lgammal_dbl_compat): Define as alias of __lgamma_compat and use in defining lgammal. * sysdeps/ieee754/ldbl-opt/w_lgammal.c: Move to .... * sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c: ...here. Include <math/lgamma-compat.h> and <math/w_lgamma_compatl.c>. (USE_AS_COMPAT): New macro. (LGAMMA_OLD_VER): Undefine and redefine. (lgammal): Do not define here. (gammal): Only define here if [GAMMA_ALIAS]. * conform/linknamespace.pl (@whitelist): Remove signgam. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
8b126a4a2c |
Remove pre-GCC-4.7 conform/ test XFAILs.
Now that GCC 4.7 or later is required to build glibc, this patch removes three conform/ test XFAILs that related to missing C11 support in GCC 4.6. Tested for x86_64 and x86 (conform/ tests). * conform/Makefile (test-xfail-ISO11/complex.h/conform): Remove variable. (test-xfail-ISO11/stdalign.h/conform): Likewise. (test-xfail-ISO11/stdnoreturn.h/conform): Likewise. |
||
Joseph Myers
|
caf2d83659 |
Use -std=c11 for C11 conform/ tests.
Now that GCC 4.7 or later is required to build glibc, this patch makes the conformance tests use -std=c11 for C11 tests instead of -std=c1x -D_ISOC11_SOURCE. Tested for x86_64 and x86 (conform/ tests). * conform/GlibcConform.pm ($CFLAGS{"ISO11"}): Use -std=c11 instead of -std=c1x -D_ISOC11_SOURCE. |
||
Joseph Myers
|
a435cc46e6 |
Test for weak undefined symbols in linknamespace.pl.
This patch makes linknamespace.pl require weak undefined symbols to be within the standard namespace. (It remains the case that linknamespace.pl does not look for definitions of such symbols or require symbols used in those definitions to be within the standard namespace.) Tested for x86_64 and x86. * conform/linknamespace.pl: Require weak undefined symbols to be in the standard namespace. (%strong_syms): Rename to %seen_syms. (%strong_seen): Rename to %seen_where. |
||
Joseph Myers
|
1f11365a75 |
Don't declare float / long double Bessel functions for XSI POSIX (bug 18977).
The float and long double versions of Bessel function (j0f, y1l, etc.) are not in POSIX; only the double versions are. This patch accordingly limits the declarations of those functions to __USE_MISC, and fixes the conform/ test expectations which matched the previous incorrect declarations. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by this patch). [BZ #18977] * math/bits/mathcalls.h [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j0): Do not declare. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j1): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (jn): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y0): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y1): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (yn): Likewise. * conform/data/math.h-data [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0f): Do not expect function. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1f): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnf): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0f): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1f): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynf): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnl): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynl): Likewise. |
||
Joseph Myers
|
de20571d40 |
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. |
||
Andreas Schwab
|
fddb87425a | Fix spurious conform test failures | ||
Mike Frysinger
|
3840aabcd5 |
conform/linknamespace: whitelist matherrf/matherrl
glibc supports the deprecated matherr hook for math error reporting. The conform tests take this into consideration and whitelist this symbol when running linknamespace tests. The ia64 libm code has long provided two additional hooks in this space: matherrf (for floats) matherrl (for long doubles) Which causes the conform tests to fail with chains that all look like: [initial] __atan2 -> [libm.a(e_atan2.o)] __libm_error_support -> [libm.a(libm_error.o)] matherrf We can't (losslessly) redirect existing usage of these funcs to matherr because the structure passed in is different -- matherr uses a struct with doubles while matherrf/matherrl use floats and long doubles respectively. Plus, this has been part of the exported ABI since glibc-2.2.3, so it doesn't feel right to change it so late. Until we get around to obsoleting matherr entirely, whitelist these two additional ia64 symbols. |
||
Joseph Myers
|
d6cc0b4fea |
conformtest: Fix pselect expectations.
conformtest expected pselect for XOPEN2K and POSIX2008 (correctly), but not for XOPEN2K8 (wrongly). This patch fixes the data to expect it for XOPEN2K8 as well. (As for all such fixes based on failures seen from the tests, there is no guarantee that the data is fully correct for a particular standard after the fix; headers and data may well have matching bugs. So far I've only reviewed ISO, ISO99, ISO11 and POSIX data in detail, though I hope eventually to review the others.) Tested for x86_64 and x86. * conform/data/sys/select.h-data [XOPEN2K8] (pselect): Expect. * conform/Makefile (test-xfail-XOPEN2K8/sys/select.h/conform): Remove variable. (test-xfail-XOPEN2K8/sys/time.h/conform): Likewise. (test-xfail-XOPEN2K8/utmpx.h/conform). |
||
Joseph Myers
|
5675961d15 |
conformtest: Support xfail markers on individual assertions.
Various conformtest tests fail because of known issues, filed in Bugzilla, that are hard to fix (requiring new features, kernel cooperation or involving changing types in ways that may involve care around padding when interfacing to the kernel). Such an issue has the effect of making the whole test for the (standard, header) pair fail, so hiding any other issues with that header for that standard (possibly regressions or architecture-specific issues). This patch adds a mechanism for individual conformtest test expectations to start with xfail-, meaning that a failure of that particular assertion does not cause the whole test to fail at the makefile level and so failure at the makefile level can be used to detect other issues that are likely to be easier to fix. This is similar to the whitelisted symbols in the linknamespace tests, or the marking of particular libm tests as allowing spurious or missing exceptions, for example. The bugs filed in Bugzilla should still be fixed, and the xfail- markers removed at that point, but xfail- renders the tests more useful until that happens. Note that there is no way to add such a marker for the assertion that a header uses only symbols in the namespace of symbols it's meant to use. I don't think there's any need for a way to xfail those namespace tests other than xfailing the whole (standard, header) pair at the makefile level, since they are generally straightforward to fix (add appropriate conditionals on the problem definitions). The xfails in this patch do not necessarily cover all cases of hard-to-fix header bugs filed in Bugzilla that currently show up in conformtest failures; there may be more yet to add for existing open bugs. Tested for x86_64 and x86. * conform/conformtest.pl ($xerrors): New variable. (note_error): New function. (compiletest): New argument $xfail. Use not_error. (runtest): Likewise. (top level): Handle xfail- lines. Update calls to compiletest and runtest. Handle xfail- and optional- in headers listed with allow-header. * conform/data/fcntl.h-data (O_TTY_INIT): Use xfail-. (O_EXEC): Likewise. (O_SEARCH): Likewise. * conform/data/stropts.h-data (ioctl): Likewise. * conform/data/sys/ipc.h-data (ipc_perm.mode): Likewise. * conform/data/sys/sem.h-data (semid_ds.sem_nsems): Likewise. * conform/data/sys/socket.h-data (msghdr.msg_iovlen): Likewise. (msghdr.msg_controllen): Likewise. (cmsghdr.cmsg_len): Likewise. * conform/data/utmpx.h-data (utmpx.ut_tv): Likewise. * conform/Makefile (test-xfail-XPG3/sys/ipc.h/conform): Remove variable. (test-xfail-XPG3/sys/sem.h/conform): Likewise. (test-xfail-XPG4/stropts.h/conform): Likewise. (test-xfail-XPG4/sys/ipc.h/conform): Likewise. (test-xfail-XPG4/sys/sem.h/conform): Likewise. (test-xfail-XPG4/sys/socket.h/conform): Likewise. (test-xfail-UNIX98/stropts.h/conform): Likewise. (test-xfail-UNIX98/sys/ipc.h/conform): Likewise. (test-xfail-UNIX98/sys/sem.h/conform): Likewise. (test-xfail-UNIX98/sys/socket.h/conform): Likewise. (test-xfail-XOPEN2K/stropts.h/conform): Likewise. (test-xfail-XOPEN2K/sys/ipc.h/conform): Likewise. (test-xfail-XOPEN2K/sys/sem.h/conform): Likewise. (test-xfail-XOPEN2K/sys/socket.h/conform): Likewise. (test-xfail-XOPEN2K/utmpx.h/conform): Likewise. (test-xfail-POSIX2008/fcntl.h/conform): Likewise. (test-xfail-POSIX2008/stropts.h/conform): Likewise. (test-xfail-XOPEN2K8/fcntl.h/conform): Likewise. (test-xfail-XOPEN2K8/stropts.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/ipc.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/sem.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/socket.h/conform): Likewise. |
||
Joseph Myers
|
a7a3c24632 |
Remove include/bits/ipc.h.
Ten conformtest failures arise from the internal header include/bits/ipc.h failing to condition internal declarations, outside the public namespace of headers including bits/ipc.h, on [!_ISOMAC]. As discussed in <https://sourceware.org/ml/libc-alpha/2015-06/msg00653.html>, the internal declarations that are actually relevant are in ipc_priv.h and so include/bits/ipc.h should not be needed at all; this patch removes it. (Ten further conformtest failures for other headers including bits/ipc.h remain because of other conformance issues in those headers.) Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * include/bits/ipc.h: Remove file. * conform/Makefile (test-xfail-XPG3/sys/msg.h/conform): Remove variable. (test-xfail-XPG3/sys/shm.h/conform): Likewise. (test-xfail-XPG4/sys/msg.h/conform): Likewise. (test-xfail-XPG4/sys/shm.h/conform): Likewise. (test-xfail-UNIX98/sys/msg.h/conform): Likewise. (test-xfail-UNIX98/sys/shm.h/conform): Likewise. (test-xfail-XOPEN2K/sys/msg.h/conform): Likewise. (test-xfail-XOPEN2K/sys/shm.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/msg.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/shm.h/conform): Likewise. |
||
Joseph Myers
|
d1ac55d890 |
Fix netinet/in.h MCAST_* namespace (bug 18558).
sysdeps/unix/sysv/linux/bits/in.h (as included in netinet/in.h, and via that in netdb.h and arpa/inet.h) defines a series of MCAST_* macros, both under __USE_MISC and then again unconditionally. These are not POSIX macros, nor in any of the namespaces listed in POSIX as reserved for this header, so should not be defined unconditionally. This patch duly removes the unconditional definitions, leaving the ones conditional on __USE_MISC. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18558] * sysdeps/unix/sysv/linux/bits/in.h (MCAST_JOIN_GROUP): Remove unconditional definition. (MCAST_BLOCK_SOURCE): Likewise. (MCAST_UNBLOCK_SOURCE): Likewise. (MCAST_LEAVE_GROUP): Likewise. (MCAST_JOIN_SOURCE_GROUP): Likewise. (MCAST_LEAVE_SOURCE_GROUP): Likewise. (MCAST_MSFILTER): Likewise. * conform/Makefile (test-xfail-XOPEN2K/arpa/inet.h/conform): Remove variable. (test-xfail-XOPEN2K/netdb.h/conform): Likewise. (test-xfail-XOPEN2K/netinet/in.h/conform): Likewise. (test-xfail-XOPEN2K8/arpa/inet.h/conform): Likewise. (test-xfail-XOPEN2K8/netdb.h/conform): Likewise. (test-xfail-XOPEN2K8/netinet/in.h/conform): Likewise. |
||
Joseph Myers
|
c362135134 |
Fix nice getpriority, setpriority namespace (bug 18553).
nice (XPG3) calls getpriority and setpriority (in XPG4 but not XPG3, i.e. UX-shaded in XPG4). This patch fixes this by making those functions into weak aliases of __* functions and calling the __* versions as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by this patch). This completes cleaning up the unsorted linknamespace test XFAILs. [BZ #18553] * resource/getpriority.c (getpriority): Rename to __getpriority and define as weak alias of __getpriority. * resource/setpriority.c (setpriority): Rename to __setpriority and define as weak alias of __setpriority. * sysdeps/mach/hurd/getpriority.c (getpriority): Rename to __getpriority and define as weak alias of __getpriority. * sysdeps/mach/hurd/setpriority.c (setpriority): Rename to __setpriority and define as weak alias of __setpriority. * sysdeps/unix/syscalls.list (getpriority): Use __getpriority as strong name. (setpriority): Use __setpriority as strong name. * sysdeps/unix/sysv/linux/getpriority.c (getpriority): Rename to __getpriority and define as weak alias of __getpriority. * include/sys/resource.h (__getpriority): Declare. Use libc_hidden_proto. (__setpriority): Likewise. (getpriority): Don't use libc_hidden_proto. (setpriority): Likewise. * sysdeps/posix/nice.c (nice): Call __getpriority instead of getpriority. Call __setpriority instead of setpriority. * conform/Makefile (test-xfail-XPG3/unistd.h/linknamespace): Remove variable. |
||
Joseph Myers
|
abccad04b4 |
Fix ttyslot namespace (bug 18547).
ttyslot (XPG4) calls the non-XPG4 functions endttyent, getttyent and setttyent, which in turn bring in references to fgets_unlocked and getttynam. This patch fixes this by making these functions into weak aliases and calling the __* names as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed stripped shared libraries is unchanged by the patch). [BZ #18547] * misc/getttyent.c (getttynam): Rename to __getttynam and define as weak alias of __getttynam. Use prototype function definition. Call __setttyent, __getttyent and __endttyent instead of setttyent, getttyent and endttyent. (getttyent): Rename to __getttyent and define as weak alias of __getttyent. Call __setttyent instead of setttyent. Call __fgets_unlocked instead of fgets_unlocked. (setttyent): Rename to __setttyent and define as weak alias of __setttyent. (endttyent): Rename to __endttyent and define as weak alias of __endttyent. * include/ttyent.h (__getttyent): Declare. Use libc_hidden_proto. (__setttyent): Likewise. (__endttyent): Likewise. (getttyent): Don't use libc_hidden_proto. (setttyent): Likewise. (endttyent): Likewise. * misc/ttyslot.c (ttyslot): Call __setttyent, __getttyent and __endttyent instead of setttyent, getttyent and endttyent. * conform/Makefile (test-xfail-XPG4/unistd.h/linknamespace): Remove variable. |
||
Joseph Myers
|
0595c98494 |
Fix mq_notify socket, recv namespace (bug 18546).
mq_notify (in the 1996 edition of POSIX) brings in references to recv and socket (not in POSIX until the 2001 edition). This patch fixes this by using __recv and __socket, exporting them from libc at version GLIBC_PRIVATE. Tested for x86_64 and x86 (testsuite and comparison of installed stripped shared libraries; PLT / dynamic symbol table changes render the comparison not particularly useful for libc). [BZ #18546] * socket/recv.c (__recv): Use libc_hidden_def. * socket/socket.c (__socket): Likewise. * sysdeps/mach/hurd/recv.c (__recv): Likewise. * sysdeps/mach/hurd/socket.c (__socket): Likewise. * sysdeps/unix/sysv/linux/generic/recv.c (__recv): Likewise. * sysdeps/unix/sysv/linux/recv.c (__recv): Use libc_hidden_weak. * sysdeps/unix/sysv/linux/socket.c (__socket): Use libc_hidden_def. * sysdeps/unix/sysv/linux/x86_64/recv.c (__recv): Use libc_hidden_weak. * include/sys/socket.h (__socket): Do not use attribute_hidden. Use libc_hidden_proto. (__recv): Likewise. * socket/Versions (libc): Export __recv and __socket at version GLIBC_PRIVATE. * sysdeps/unix/sysv/linux/mq_notify.c (helper_thread): Call __recv instead of recv. (init_mq_netlink): Call __socket instead of socket. * conform/Makefile (test-xfail-POSIX/mqueue.h/linknamespace): Remove variable. |
||
Joseph Myers
|
dfa2d21450 |
Fix mq_receive, mq_send mq_timed* namespace (bug 18545).
mq_receive calls mq_timedreceive, and mq_send calls mq_timedsend. But mq_receive and mq_send were in POSIX by 1996, while mq_timed* were added in the 2001 edition of POSIX. This patch fixes this by making mq_timed* into weak aliases for __mq_timed* and calling the __mq_timed* names. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18545] * rt/mq_timedreceive.c (mq_timedreceive): Rename to __mq_timedreceive and define as alias of __mq_timedreceive. Use hidden_weak. * rt/mq_timedsend.c (mq_timedsend): Rename to __mq_timedsend and define as alias of __mq_timedsend. Use hidden_weak. * sysdeps/unix/sysv/linux/syscalls.list (mq_timedsend): Use __mq_timedsend as strong name. (mq_timedreceive): Use __mq_timedreceive as strong name. * include/mqueue.h (__mq_timedsend): Declare. Use hidden_proto. (__mq_timedreceive): Likewise. * sysdeps/unix/sysv/linux/mq_receive.c (mq_receive): Call __mq_timedreceive instead of mq_timedreceive. * sysdeps/unix/sysv/linux/mq_send.c (mq_send): Call __mq_timedsend instead of mq_timedsend. * conform/Makefile (test-xfail-UNIX98/mqueue.h/linknamespace): Remove variable. |
||
Joseph Myers
|
45dcd79f6e |
Fix swscanf vswscanf namespace (bug 18542).
swscanf (added in C90 Amendment 1, present in UNIX98) calls vswscanf (added in C99, not in C90 Amendment 1 or UNIX98). This patch fixes this by using __vswscanf instead and making vswscanf into a weak alias. (I intend to add conform/ test support for C90 Amendment 1 - and various other standard versions supported by glibc but not yet by conform/ tests - at some point, once the results for currently tested standards are cleaner.) Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18542] * libio/iovswscanf.c (__vswscanf): Use libc_hidden_def. (vswscanf): Use ldbl_weak_alias instead of ldbl_strong_alias * include/wchar.h (__vswscanf): Declare. Use libc_hidden_proto. * libio/swscanf.c (__swscanf): Call __vswscanf instead of vswscanf. * conform/Makefile (test-xfail-UNIX98/wchar.h/linknamespace): Remove variable. |
||
Joseph Myers
|
eb1fae6a45 |
Fix getpass fflush_unlocked namespace (bug 18540).
The getpass function (XPG3 / XPG4 / UNIX98) calls fflush_unlocked (not in any of those standards). This patch fixes this by making fflush_unlocked into a weak alias for __fflush_unlocked and calling __fflush_unlocked from getpass. Tested for x86_64 and x86 (testsuite, and that disassembly of installed stripped shared libraries is unchanged by the patch). [BZ #18540] * libio/iofflush.c [!_IO_MTSAFE_IO] (__fflush_unlocked): Define as strong alias of _IO_fflush. Use libc_hidden_def. * libio/iofflush_u.c (fflush_unlocked): Rename to __fflush_unlocked and define as weak alias of __fflush_unlocked. Use libc_hidden_weak. * include/stdio.h (__fflush_unlocked): Declare. Use libc_hidden_proto. * misc/getpass.c (getpass): Call __fflush_unlocked instead of fflush_unlocked. * conform/Makefile (test-xfail-UNIX98/unistd.h/linknamespace): Remove variable. |
||
Joseph Myers
|
68f1ba4ba4 |
Fix fmtmsg addseverity namespace (bug 18539).
Use of fmtmsg (XSI POSIX) brings in addseverity (non-POSIX). This patch fixes this by making addseverity into a weak alias for __addseverity. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18539] * stdlib/fmtmsg.c (addseverity): Rename to __addseverity and define as weak alias of __addseverity. * conform/Makefile (test-xfail-XPG4/fmtmsg.h/linknamespace): Remove variable. (test-xfail-UNIX98/fmtmsg.h/linknamespace): Likewise. (test-xfail-XOPEN2K/fmtmsg.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/fmtmsg.h/linknamespace): Likewise. |
||
Joseph Myers
|
d051b143f7 |
Fix sem_* tdelete, tfind, tsearch, twalk namespace (bug 18536).
The sem_* functions bring in references to tdelete, tfind, tsearch and twalk. But the t* functions are XSI-shaded, while sem_* aren't. This patch fixes this by using __t* instead, exporting those functions from libc at version GLIBC_PRIVATE (since sem_* are in libpthread) and using libc_hidden_* for the benefit of calls within libc. Tested for x86_64 and x86 (testsuite, and comparison of disassembly of installed stripped shared libraries). libpthread gets changes from PLT reordering; addresses in libc change because of PLT / dynamic symbol table changes. [BZ #18536] * misc/tsearch.c (__tsearch): Use libc_hidden_def. (__tfind): Likewise. (__tdelete): Likewise. (__twalk): Likewise. * misc/Versions (libc): Add __tdelete, __tfind, __tsearch and __twalk to GLIBC_PRIVATE. * include/search.h (__tsearch): Use libc_hidden_proto. (__tfind): Likewise. (__tdelete): Likewise. (__twalk): Likewise. * nptl/sem_close.c (sem_close): Call __twalk instead of twalk. Call __tdelete instead of tdelete. * nptl/sem_open.c (check_add_mapping): Call __tfind instead of tfind. Call __tsearch instead of tsearch. * sysdeps/sparc/sparc32/sem_open.c (check_add_mapping): Likewise. * conform/Makefile (test-xfail-POSIX/semaphore.h/linknamespace): Remove variable. (test-xfail-POSIX2008/semaphore.h/linknamespace): Likewise. |
||
Joseph Myers
|
be7dc2b77e |
Fix syslog dprintf namespace (bug 18534).
syslog functions bring in references to dprintf, which wasn't added to POSIX until the 2008 edition and so isn't in various standards containing the syslog functions. This patch fixes this by making dprintf into a weak alias of __dprintf and using __dprintf as appropriate. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18534] * stdio-common/dprintf.c (__dprintf): Use libc_hidden_def. (dprintf): Define as a weak alias of __dprintf, not a strong alias. * include/stdio.h (__dprintf): Declare. Use libc_hidden_proto. * misc/syslog.c (__vsyslog_chk): Call __dprintf instead of dprintf. * conform/Makefile (test-xfail-XPG4/syslog.h/linknamespace): Remove variable. (test-xfail-UNIX98/syslog.h/linknamespace): Likewise. (test-xfail-XOPEN2K/syslog.h/linknamespace): Likewise. |
||
Joseph Myers
|
a97e5e2557 |
Fix vsyslog namespace (bug 18533).
syslog functions (in POSIX) bring in the strong symbol vsyslog (not in POSIX). This patch fixes this by changing this symbol from a strong alias to a weak alias. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). (vsyslog becomes weak in the static libraries, which is what's needed; the particular macro sequence in use leaves it as strong in the shared libraries, hence those libraries being completely unchanged, but it doesn't generally matter whether symbols exported from the shared libraries are weak or strong.) [BZ #18533] * misc/syslog.c (vsyslog): Define as a weak alias of __vsyslog, not a strong alias. * conform/Makefile (test-xfail-XOPEN2K8/syslog.h/linknamespace): Remove variable. |
||
Joseph Myers
|
17c199ee92 |
Fix gethostbyaddr in6addr_any, in6addr_loopback namespace (bug 18532).
gethostbyaddr brings in references to in6addr_any and thereby in6addr_loopback, which aren't in all the standards containing gethostbyaddr (gethostbyaddr is in XPG4 and UNIX98, in6addr_any and in6addr_loopback are new in POSIX.1:2001). This patch fixes this by making those symbols into weak aliases (safe in this case, unlike for most data symbols, because these data symbols are const). Tested for x86_64 and x86 (testsuite, and comparison of disassembly of installed stripped shared libraries). Disassembly is unchanged for x86_64; for x86, I see some changes of stack offsets, but no other code generation changes or code size differences. [BZ #18532] * inet/in6_addr.c (in6addr_any): Rename to __in6addr_any and define as weak alias of __in6addr_any. Use libc_hidden_data_weak. (in6addr_loopback): Rename to __in6addr_loopback and define as weak alias of __in6addr_loopback. Use libc_hidden_data_weak. * include/netinet/in.h (__in6addr_loopback): Declare. Use libc_hidden_proto. (__in6addr_any): Likewise. * inet/gethstbyad_r.c (PREPROCESS): Use __in6addr_any instead of in6addr_any. * conform/Makefile (test-xfail-XPG4/netdb.h/linknamespace): Remove variable. (test-xfail-UNIX98/netdb.h/linknamespace): Likewise. |
||
Joseph Myers
|
bf1435783d |
Fix linknamespace expectations for in6addr_any, in6addr_loopback.
Some linknamespace test failures turned out to be because the variables in6addr_any and in6addr_loopback weren't listed in the lists of extra reserved symbols for the relevant standards (only functions are handled automatically through -aux-info, data symbols need listing manually in list-header-symbols.pl). This patch duly adds those symbols to those lists (there are still failures for older standards because of references to those symbols being brought in for standards that didn't reserve them: bug 18532, to be fixed separately). Tested for x86_64. * conform/list-header-symbols.pl (%extra_syms): Add in6addr_any and in6addr_loopback for XOPEN2K, XOPEN2K8 and POSIX2008. * conform/Makefile (test-xfail-XOPEN2K/netdb.h/linknamespace): Remove variable. (test-xfail-POSIX2008/netdb.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/netdb.h/linknamespace): Likewise. |
||
Joseph Myers
|
8737be8064 |
Fix netdb.h addrinfo namespace (bug 18529).
netdb.h declares interfaces such as getaddrinfo if __USE_POSIX, i.e. POSIX.1:1990 or later. However, these interfaces were new in the 2001 edition of POSIX, although the header was in XPG4 and UNIX98, so they should not be declared for XPG4 or UNIX98. (This produces spurious linknamespace test failures, although there are other failures for this header as well for the same standards so this patch doesn't remove any XFAILs.) This patch corrects the condition, and the conform/ test expectations which were similarly wrong. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18529] * resolv/netdb.h [__USE_POSIX]: Change condition to [__USE_XOPEN2K]. * conform/data/netdb.h-data [XPG4 || UNIX98] (struct addrinfo): Do not expect. [XPG4 || UNIX98] (AI_PASSIVE): Likewise. [XPG4 || UNIX98] (AI_CANONNAME): Likewise. [XPG4 || UNIX98] (AI_NUMERICHOST): Likewise. [XPG4 || UNIX98] (AI_V4MAPPED): Likewise. [XPG4 || UNIX98] (AI_ALL): Likewise. [XPG4 || UNIX98] (AI_ADDRCONFIG): Likewise. [XPG4 || UNIX98] (AI_NUMERICSERV): Likewise. [XPG4 || UNIX98] (NI_NOFQDN): Likewise. [XPG4 || UNIX98] (NI_NUMERICHOST): Likewise. [XPG4 || UNIX98] (NI_NAMEREQD): Likewise. [XPG4 || UNIX98] (NI_NUMERICSERV): Likewise. [XPG4 || UNIX98] (NI_DGRAM): Likewise. [XPG4 || UNIX98] (EAI_AGAIN): Likewise. [XPG4 || UNIX98] (EAI_BADFLAGS): Likewise. [XPG4 || UNIX98] (EAI_FAIL): Likewise. [XPG4 || UNIX98] (EAI_FAMILY): Likewise. [XPG4 || UNIX98] (EAI_MEMORY): Likewise. [XPG4 || UNIX98] (EAI_NONAME): Likewise. [XPG4 || UNIX98] (EAI_SERVICE): Likewise. [XPG4 || UNIX98] (EAI_SOCKTYPE): Likewise. [XPG4 || UNIX98] (EAI_SYSTEM): Likewise. [XPG4 || UNIX98] (EAI_SYSTEM): Likewise. [XPG4 || UNIX98] (freeaddrinfo): Likewise. [XPG4 || UNIX98] (gai_strerror): Likewise. [XPG4 || UNIX98] (getaddrinfo): Likewise. [XPG4 || UNIX98] (getnameinfo): Likewise. |
||
Joseph Myers
|
b400fdefc7 |
Fix grp.h endgrent, getgrent namespace (bug 18528).
grp.h declares endgrent and getgrent if __USE_XOPEN2K8 (i.e. 2008 edition of POSIX, non-XSI). However, the 2013 Technical Corrigendum corrected the grp.h specification to XSI-shade these functions as in previous editions (see <http://austingroupbugs.net/view.php?id=24>), so they should not be declared for non-XSI POSIX. This patch corrects the conditions - using __USE_MISC || __USE_XOPEN_EXTENDED to match setgrent - and the conform/ test expectations for this header, thereby fixing the conform tests for this header for XPG3 (where the expectations were wrong) and the linknamespace tests for it for POSIX2008 (where the header bug meant it was wrongly considered a problem for endgrent to bring in a reference to setgrent). Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18528] * grp/grp.h (endgrent): Condition on [__USE_MISC || __USE_XOPEN_EXTENDED], not [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (getgrent): Likewise. * conform/data/grp.h-data [XPG3 || POSIX2008] (getgrent): Do not expect. [XPG3 || POSIX2008] (endgrent): Likewise. [XPG3] (setgrent): Likewise. * conform/Makefile (test-xfail-XPG3/grp.h/conform): Remove variable. (test-xfail-POSIX2008/grp.h/linknamespace): Likewise. |
||
Joseph Myers
|
5371d99e87 |
Fix getlogin_r namespace (bug 18527).
Various functions in XPG4 bring in references to getlogin_r, which is not in XPG4; this is also a bug for some older POSIX versions which aren't yet covered by the linknamespace tests. This patch fixes this by making getlogin_r into a weak alias for __getlogin_r and using __getlogin_r as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed stripped shared libraries is unchanged by the patch). [BZ #18527] * login/getlogin_r.c (getlogin_r): Rename to __getlogin_r and define as weak alias of __getlogin_r. Use libc_hidden_weak. * sysdeps/mach/hurd/getlogin_r.c (getlogin_r): Likewise. * sysdeps/unix/getlogin_r.c (getlogin_r): Likewise. * sysdeps/unix/sysv/linux/getlogin_r.c (getlogin_r): Likewise. * include/unistd.h (__getlogin_r): Declare. Use libc_hidden_proto. * posix/glob.c (glob): Call __getlogin_r instead of getlogin_r. * conform/Makefile (test-xfail-XPG3/glob.h/linknamespace): Remove variable. (test-xfail-XPG3/wordexp.h/linknamespace): Likewise. (test-xfail-XPG4/glob.h/linknamespace): Likewise. (test-xfail-XPG4/wordexp.h/linknamespace): Likewise. |
||
Joseph Myers
|
9714012ca0 |
Fix aio_* pread namespace (bug 18519).
aio_* bring in references to pread, which isn't in all the standards containing aio_* (as a reference from one library to another, this is a bug for dynamic as well as static linking). This patch fixes this by using __libc_pread instead, exporting that function from libc at symbol version GLIBC_PRIVATE; the code, with conditionals that may call either __pread64 or __libc_pread, becomes exactly analogous to that elsewhere in the same file that may call either __pwrite64 or __libc_pwrite. Tested for x86_64 and x86 (testsuite, and comparison of disassembly of installed shared libraries). libc changes because of the PLT entry for the newly exported __libc_pread; librt changes because of assertion line numbers and PLT rearrangement; other stripped installed shared libraries do not change. [BZ #18519] * posix/Versions (libc): Export __libc_pread at version GLIBC_PRIVATE. * sysdeps/pthread/aio_misc.c (handle_fildes_io): Call __libc_pread instead of pread. * conform/Makefile (test-xfail-POSIX/aio.h/linknamespace): Remove variable. |
||
Joseph Myers
|
498c1f6a7c |
Fix ecvt_r, fcvt_r namespace (bug 18522).
The functions ecvt, fcvt and gcvt, in some standards, bring in references to ecvt_r and fcvt_r, which aren't in any of those standards. The calls are correctly to __ecvt_r and __fcvt_r, but then the names ecvt_r and fcvt_r are defined as strong aliases; this patch changes them to weak aliases. Tested for x86_64 and x86 (testsuite, and that disassembly of installed stripped shared libraries is unchanged by the patch). [BZ #18522] * misc/efgcvt_r.c [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) && !LONG_DOUBLE_CVT] (cvt_symbol): Use weak_alias instead of strong_alias. [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)] (cvt_symbol): Likewise. * conform/Makefile (test-xfail-XPG4/stdlib.h/linknamespace): Remove variable. (test-xfail-UNIX98/stdlib.h/linknamespace): Likewise. (test-xfail-XOPEN2K/stdlib.h/linknamespace): Likewise. |
||
Joseph Myers
|
9acacaa02f |
Fix h_errno namespace (bug 18520).
The 2008 edition of POSIX removed h_errno, but some functions still bring in references to the h_errno external symbol. As this symbol is not a part of the public ABI (only __h_errno_location is), this patch fixes this by renaming the GLIBC_PRIVATE TLS symbol to __h_errno. Tested for x86_64 and x86 (testsuite, and comparison of installed shared libraries). Disassembly of all shared libraries using h_errno changes because of the renaming (and changes to associated TLS / GOT offsets in some cases); disassembly of libpthread on x86_64 changes more substantially because the enlargement of .dynsym affects subsequent addresses. [BZ #18520] * inet/herrno.c (h_errno): Rename to __h_errno. (__libc_h_errno): Define as alias of __h_errno not h_errno. * include/netdb.h [IS_IN_LIB && !IS_IN (libc)] (h_errno): Define to __h_errno instead of h_errno. * nptl/herrno.c (h_errno): Rename to __h_errno. (__h_errno_location): Refer to __h_errno not h_errno. * resolv/Versions (h_errno): Rename to __h_errno. * conform/Makefile (test-xfail-XOPEN2K8/grp.h/linknamespace): Remove variable. (test-xfail-XOPEN2K8/pwd.h/linknamespace): Likewise. |
||
Joseph Myers
|
2f44ee08db |
Fix regcomp wcscoll, wcscmp namespace (bug 18497).
regcomp brings in references to wcscoll, which isn't in all the standards that contain regcomp. In turn, wcscoll brings in references to wcscmp, also not in all those standards. This patch fixes this by making those functions into weak aliases of __wcscoll and __wcscmp and calling those names instead as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18497] * wcsmbs/wcscmp.c [!WCSCMP] (WCSCMP): Define as __wcscmp instead of wcscmp. (wcscmp): Define as weak alias of WCSCMP. * wcsmbs/wcscoll.c (STRCOLL): Define as __wcscoll instead of wcscoll. (USE_HIDDEN_DEF): Define. [!USE_IN_EXTENDED_LOCALE_MODEL] (wcscoll): Define as weak alias of __wcscoll. Don't use libc_hidden_weak. * wcsmbs/wcscoll_l.c (STRCMP): Define as __wcscmp instead of wcscmp. * sysdeps/i386/i686/multiarch/wcscmp-c.c [SHARED] (libc_hidden_def): Define __GI___wcscmp instead of __GI_wcscmp. (weak_alias): Undefine and redefine. * sysdeps/i386/i686/multiarch/wcscmp.S (wcscmp): Rename to __wcscmp and define as weak alias of __wcscmp. * sysdeps/x86_64/wcscmp.S (wcscmp): Likewise. * include/wchar.h (__wcscmp): Declare. Use libc_hidden_proto. (__wcscoll): Likewise. (wcscmp): Don't use libc_hidden_proto. (wcscoll): Likewise. * posix/regcomp.c (build_range_exp): Call __wcscoll instead of wcscoll. * posix/regexec.c (check_node_accept_bytes): Likewise. * conform/Makefile (test-xfail-XPG3/regex.h/linknamespace): Remove variable. (test-xfail-XPG4/regex.h/linknamespace): Likewise. (test-xfail-POSIX/regex.h/linknamespace): Likewise. |
||
Joseph Myers
|
d3ab671c94 |
Fix pathconf statvfs namespace (bug 18507).
pathconf uses __statvfs64, and fpathconf uses __fstatvfs64. On systems using sysdeps/unix/sysv/linux/wordsize-64, __statvfs64 then brings in the strong symbol statvfs, and __fstatvfs64 brings in the strong symbol fstatvfs, which are not in all the standards that have pathconf and fpathconf. This patch fixes this by making those symbols into weak aliases. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18507] * sysdeps/unix/sysv/linux/fstatvfs.c (fstatvfs): Rename to __fstatvfs and define as weak alias of __fstatvfs. Use libc_hidden_weak. * sysdeps/unix/sysv/linux/statvfs.c (statvs): Rename to __statvfs and define as weak alias of __statvfs. Use libc_hidden_weak. * sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c (__fstatvfs64): Define as alias of __fstatvfs, not fstatvfs. (fstatvfs64): Likewise. * sysdeps/unix/sysv/linux/wordsize-64/statvfs.c (__statvfs64): Define as alias of __statvfs, not statvfs. (statvfs64): Likewise. * conform/Makefile (test-xfail-POSIX/unistd.h/linknamespace): Remove variable. |
||
Joseph Myers
|
711f67a789 |
Fix open_memstream namespace (bug 18498).
open_memstream is new in the 2008 edition of POSIX. However, the older functions getopt, closelog and fmtmsg all bring in references to it. This patch fixes this in the usual way, making open_memstream into a weak alias of __open_memstream and calling __open_memstream from the relevant places. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). 32-bit builds produce an XPASS for conform/POSIX/unistd.h/linknamespace after this patch (because the only cause of failure left there now is 64-bit specific); that will disappear once the 64-bit failure is resolved and the XFAIL removed at that time. [BZ #18498] * libio/memstream.c (open_memstream): Rename to __open_memstream and define as weak alias of __open_memstream. * include/stdio.h (__open_memstream): Declare. Use libc_hidden_proto. (open_memstream): Don't use libc_hidden_proto. * misc/syslog.c (__vsyslog_chk): Call __open_memstream instead of open_memstream. * posix/getopt.c (_getopt_internal_r): Likewise. * conform/Makefile (test-xfail-XPG3/stdio.h/linknamespace): Remove variable. (test-xfail-XPG4/stdio.h/linknamespace): Likewise. (test-xfail-UNIX98/stdio.h/linknamespace): Likewise. (test-xfail-XOPEN2K/unistd.h/linknamespace): Likewise. |
||
Joseph Myers
|
007f2dd122 |
Fix psignal, psiginfo declaration conditions (bug 18483).
signal.h declares psignal and psiginfo if __USE_XOPEN2K - that is, for the 2001 edition of POSIX. These functions were actually added in the 2008 edition (as indicated in the header comments). This patch fixes the header conditionals. This fixes some linknamespace test failures because psiginfo uses fmemopen, which is also new in the 2008 edition, so before the header fix this appeared to the linknamespace tests as a 2001 function bringing in references to a 2008 function. The problem also appeared in conformtest header namespace test results (the conformtest data has correct conditionals for when these functions should be visible), but the affected headers still have other namespace problems so this doesn't fix any of those XFAILs. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18483] * signal/signal.h [__USE_XOPEN2K] (psignal): Change condition to [__USE_XOPEN2K8]. Remove redundant #endif. [__USE_XOPEN2K] (psiginfo): Change condition to [__USE_XOPEN2K8]. Remove redundant #if. * conform/Makefile (test-xfail-XOPEN2K/signal.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/sys/wait.h/linknamespace): Likewise. (test-xfail-XOPEN2K/ucontext.h/linknamespace): Likewise. |
||
Joseph Myers
|
f014e87eff |
Fix fnmatch strnlen namespace (bug 18470).
fnmatch brings in references to strnlen, which isn't in all the standards that contain fnmatch (not added until the 2008 edition of POSIX), resulting in linknamespace test failures. (This is contrary to glibc conventions, rather than a standards conformance issue, because of the str* reservation.) This patch fixes this in the usual way, using __strnlen instead of strnlen. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18470] * posix/fnmatch.c (fnmatch) [_LIBC]: Call __strnlen instead of strnlen. * conform/Makefile (test-xfail-XPG3/fnmatch.h/linknamespace): Remove variable. (test-xfail-XPG4/fnmatch.h/linknamespace): Likewise. (test-xfail-POSIX/fnmatch.h/linknamespace): Likewise. (test-xfail-POSIX/glob.h/linknamespace): Likewise. (test-xfail-POSIX/wordexp.h/linknamespace): Likewise. (test-xfail-UNIX98/fnmatch.h/linknamespace): Likewise. (test-xfail-UNIX98/glob.h/linknamespace): Likewise. (test-xfail-UNIX98/wordexp.h/linknamespace): Likewise. (test-xfail-XOPEN2K/fnmatch.h/linknamespace): Likewise. (test-xfail-XOPEN2K/glob.h/linknamespace): Likewise. (test-xfail-XOPEN2K/wordexp.h/linknamespace): Likewise. |
||
Szabolcs Nagy
|
a06b40cdf5 |
struct stat is not posix conform
On 21/05/15 05:29, Siddhesh Poyarekar wrote: > On Wed, May 20, 2015 at 06:55:02PM +0100, Szabolcs Nagy wrote: >> i guess it's ok for consistency if i fix struct stat64 >> too to use __USE_XOPEN2K8. >> >> i will run some tests and come back with a patch > > I also think it would be appropriate to change this code in other > architectures (microblaze and nacl IIRC) to make all of them > consistent. It is a mechanical enough change IMO that all arch > maintainer acks is not necessary. > here is the patch with consistent __USE_XOPEN2K8 ok to commit? 2015-05-21 Szabolcs Nagy <szabolcs.nagy@arm.com> [BZ #18234] * conform/data/sys/stat.h-data (struct stat): Add tests for st_atim, st_mtim and st_ctim members. * sysdeps/nacl/bits/stat.h (struct stat, struct stat64): Make st_atim, st_ctim, st_mtim visible under __USE_XOPEN2K8 only. * sysdeps/unix/sysv/linux/generic/bits/stat.h (struct stat,): (struct stat64): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/stat.h (struct stat,): (struct stat64): Likewise. * sysdeps/unix/sysv/linux/microblaze/bits/stat.h (struct stat,): (struct stat64): Likewise. |
||
Joseph Myers
|
4e5f9259f3 |
Restore _POSIX2_C_VERSION definition (bug 438).
My review of conformtest expectations for POSIX showed up that the _POSIX2_C_VERSION macro, required by POSIX and XPG standards before 2001, was missing in unistd.h, having been removed on 2003-04-03 despite those standards still being supported. This patch adds it back. As it's in the implementation namespace, there's no need for it to be conditional, and other such macros aren't conditional in this header either. Tested for x86_64 and x86 (testsuite). Note that this *does* change the installed libraries, because it affects the sysconf support (present all along) for _SC_2_C_VERSION. [BZ #438] * posix/unistd.h (_POSIX2_C_VERSION): New macro. * conform/Makefile (test-xfail-POSIX/unistd.h/conform): Remove variable. |
||
Joseph Myers
|
cf06a4e357 |
Fix pathconf basename namespace (bug 18444).
pathconf (sysdeps/unix/sysv/linux/pathconf.c) uses basename. But pathconf is in POSIX back to 1990 while basename is only reserved with external linkage in those standards including XPG functions. This patch fixes this namespace issue in the usual way, renaming basename to __basename and making it into a weak alias. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18444] * string/basename.c (basename): Rename to __basename and define as weak alias of __basename. Use libc_hidden_weak. * include/string.h (__basename): Declare. Use libc_hidden_proto. * sysdeps/unix/sysv/linux/pathconf.c (distinguish_extX): Call __basename instead of basename. * conform/Makefile (test-xfail-POSIX2008/unistd.h/linknamespace): Remove variable. (test-xfail-XOPEN2K8/unistd.h/linknamespace): Likewise. |
||
Joseph Myers
|
9d12d7652b |
linknamespace: whitelist re_syntax_options.
This patch adds re_syntax_options (bug 18442) to the set of symbols that are whitelisted in the linknamespace tests because, while the references to them are genuine bugs that should be fixed, the involvement of data symbols makes them harder to fix than most such bugs. Tested for x86_64 and x86. * conform/linknamespace.pl (@whitelist): Add re_syntax_options. * conform/Makefile (test-xfail-UNIX98/regex.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/regex.h/linknamespace): Likewise. (test-xfail-POSIX2008/regex.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/regex.h/linknamespace): Likewise. |
||
Joseph Myers
|
f58573781c |
conformtest: use proper _POSIX_C_SOURCE value for POSIX.
The conform/ tests were using -D_POSIX_C_SOURCE=199912 to test "POSIX" (1995/6). This patch changes them to use 199506L, the proper value from the relevant edition of POSIX. (This doesn't make any difference to features.h, but is the logically correct value to use.) Tested for x86_64. * conform/GlibcConform.pm ($CFLAGS{"POSIX"}): Use -D_POSIX_C_SOURCE=199506L. |
||
Joseph Myers
|
38d3d5b7bd |
conformtest: correct POSIX expectations for locale.h.
When cleaning up conformtest expectations for POSIX for locale.h in <https://sourceware.org/ml/libc-alpha/2012-11/msg00382.html>, I missed that locale.h had contents defined in POSIX.2:1993 as well as POSIX.1:1995/6. Thus, LC_MESSAGES *should* in fact be required for POSIX, because POSIX.2 says so; this patch adds that expectation back. Tested for x86_64. * conform/data/locale.h-data [POSIX] (LC_MESSAGES): Require. |
||
Joseph Myers
|
be8b8f1768 |
conformtest: clean up POSIX expectations for unistd.h.
Concluding the series of patches to clean up conformtest expectations for "POSIX" (POSIX.1:1995/6, union with POSIX.2:1993), this patch cleans up expectations for unistd.h. Tested x86_64; the new XFAIL is for missing _POSIX2_C_VERSION. * conform/data/unistd.h-data (_POSIX_VERSION): Require. (_POSIX2_C_VERSION): Require if [POSIX || XPG3 || XPG4 || UNIX98]. Do not mention otherwise. [POSIX] (_XOPEN_VERSION): Do not expect. [POSIX] (_XOPEN_XCU_VERSION): Likewise. [POSIX] (_POSIX2_C_BIND): Likewise. [POSIX] (_POSIX2_VERSION): Likewise. [POSIX] (_XOPEN_XPG2): Likewise. [POSIX] (_XOPEN_XPG3): Likewise. [POSIX] (_XOPEN_XPG4): Likewise. [POSIX] (_XOPEN_UNIX): Likewise. [POSIX] (_POSIX_ADVISORY_INFO): Likewise. [POSIX] (_POSIX_BARRIERS): Likewise. [POSIX] (_POSIX_CLOCK_SELECTION): Likewise. [POSIX] (_POSIX_CPUTIME): Likewise. [POSIX] (_POSIX_MONOTONIC_CLOCK): Likewise. [POSIX] (_POSIX_READER_WRITER_LOCKS): Likewise. [POSIX] (_POSIX_SHELL): Likewise. [POSIX] (_POSIX_SPAWN): Likewise. [POSIX] (_POSIX_SPIN_LOCKS): Likewise. [POSIX] (_POSIX_SPORADIC_SERVER): Likewise. [POSIX] (_POSIX_THREAD_CPUTIME): Likewise. [POSIX] (_POSIX_TYPED_MEMORY_OBJECTS): Likewise. [POSIX] (_POSIX_THREAD_SPORADIC_SERVER): Likewise. [POSIX] (_XBS5_ILP32_OFF32): Likewise. [POSIX] (_XBS5_ILP32_OFBIG): Likewise. [POSIX] (_XBS5_LP64_OFF64): Likewise. [POSIX] (_XBS5_LPBIG_OFFBIG): Likewise. [POSIX] (_POSIX_TIMEOUTS): Likewise. [POSIX] (_POSIX2_PBS): Likewise. [POSIX] (_POSIX2_PBS_ACCOUNTING): Likewise. [POSIX] (_POSIX2_PBS_CHECKPOINT): Likewise. [POSIX] (_POSIX2_PBS_LOCATE): Likewise. [POSIX] (_POSIX2_PBS_MESSAGE): Likewise. [POSIX] (_POSIX2_PBS_TRACK): Likewise. [POSIX] (_POSIX_TIMESTAMP_RESOLUTION): Likewise. [POSIX] (_CS_XBS5_ILP32_OFF32_CFLAGS): Likewise. [POSIX] (_CS_XBS5_ILP32_OFF32_LDFLAGS): Likewise. [POSIX] (_CS_XBS5_ILP32_OFF32_LIBS): Likewise. [POSIX] (_CS_XBS5_ILP32_OFF32_LINTFLAGS): Likewise. [POSIX] (_CS_XBS5_ILP32_OFFBIG_CFLAGS): Likewise. [POSIX] (_CS_XBS5_ILP32_OFFBIG_LDFLAGS): Likewise. [POSIX] (_CS_XBS5_ILP32_OFFBIG_LIBS): Likewise. [POSIX] (_CS_XBS5_ILP32_OFFBIG_LINTFLAGS): Likewise. [POSIX] (_CS_XBS5_LP64_OFF64_CFLAGS): Likewise. [POSIX] (_CS_XBS5_LP64_OFF64_LDFLAGS): Likewise. [POSIX] (_CS_XBS5_LP64_OFF64_LIBS): Likewise. [POSIX] (_CS_XBS5_LP64_OFF64_LINTFLAGS): Likewise. [POSIX] (_CS_XBS5_LPBIG_OFFBIG_CFLAGS): Likewise. [POSIX] (_CS_XBS5_LPBIG_OFFBIG_LDFLAGS): Likewise. [POSIX] (_CS_XBS5_LPBIG_OFFBIG_LIBS): Likewise. [POSIX] (_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS): Likewise. [POSIX] (_SC_2_C_BIND): Likewise. [POSIX] (_SC_2_C_VERSION): Likewise. [POSIX] (_SC_2_PBS): Likewise. [POSIX] (_SC_2_PBS_ACCOUNTING): Likewise. [POSIX] (_SC_2_PBS_CHECKPOINT): Likewise. [POSIX] (_SC_2_PBS_LOCATE): Likewise. [POSIX] (_SC_2_PBS_MESSAGE): Likewise. [POSIX] (_SC_2_PBS_TRACK): Likewise. [POSIX] (_SC_ATEXIT_MAX): Likewise. [POSIX] (_SC_BARRIERS): Likewise. [POSIX] (_SC_BASE): Likewise. [POSIX] (_SC_CLOCK_SELECTION): Likewise. [POSIX] (_SC_DEVICE_IO): Likewise. [POSIX] (_SC_DEVICE_SPECIFIC): Likewise. [POSIX] (_SC_DEVICE_SPECIFIC_R): Likewise. [POSIX] (_SC_FD_MGMT): Likewise. [POSIX] (_SC_FIFO): Likewise. [POSIX] (_SC_FILE_ATTRIBUTES): Likewise. [POSIX] (_SC_FILE_LOCKING): Likewise. [POSIX] (_SC_FILE_SYSTEM): Likewise. [POSIX] (_SC_IOV_MAX): Likewise. [POSIX] (_SC_MONOTONIC_CLOCK): Likewise. [POSIX] (_SC_NETWORKING): Likewise. [POSIX] (_SC_PAGE_SIZE): Likewise. [POSIX] (_SC_PASS_MAX): Likewise. [POSIX] (_SC_PIPE): Likewise. [POSIX] (_SC_READER_WRITER_LOCKS): Likewise. [POSIX] (_SC_REGEXP): Likewise. [POSIX] (_SC_SHELL): Likewise. [POSIX] (_SC_SIGNALS): Likewise. [POSIX] (_SC_SINGLE_PROCESS): Likewise. [POSIX] (_SC_SPIN_LOCKS): Likewise. [POSIX] (_SC_TYPED_MEMORY_OBJECTS): Likewise. [POSIX] (_SC_USER_GROUPS): Likewise. [POSIX] (_SC_USER_GROUPS_R): Likewise. [POSIX] (_SC_STREAMS): Likewise. [POSIX] (_SC_XBS5_ILP32_OFF32): Likewise. [POSIX] (_SC_XBS5_ILP32_OFFBIG): Likewise. [POSIX] (_SC_XBS5_LP64_OFF64): Likewise. [POSIX] (_SC_XBS5_LPBIG_OFFBIG): Likewise. [POSIX] (_SC_THREAD_ROBUST_PRIO_INHERIT): Likewise. [POSIX] (_SC_THREAD_ROBUST_PRIO_PROTECT): Likewise. [POSIX] (_PC_FILESIZEBITS): Likewise. [POSIX] (_PC_REC_INCR_XFER_SIZE): Likewise. [POSIX] (_PC_REC_MAX_XFER_SIZE): Likewise. [POSIX] (_PC_REC_MIN_XFER_SIZE): Likewise. [POSIX] (_PC_REC_XFER_ALIGN): Likewise. [POSIX] (uid_t): Likewise. [POSIX] (gid_t): Likewise. [POSIX] (off_t): Likewise. [POSIX] (pid_t): Likewise. [POSIX] (cuserid): Allow. (_SC_2_CHAR_TERM): Require constant. (_POSIX_ASYNCHRONOUS_IO): Remove duplicate optional-constant. * conform/Makefile (test-xfail-POSIX/unistd.h/conform): New variable. |
||
Joseph Myers
|
8e65ea4dc0 |
Fix linknamespace test handling of architecture-specific st_other.
For mips16, some of the linknamespace tests were failing because [MIPS16] annotations in readelf output were wrongly interpreted as falling in the symbol index field, meaning symbol index values were wrongly interpreted as symbol names and such names as 1 and 2 then resulted in namespace test failures. This patch fixes this by removing the annotations for such architecture-specific st_other bits before splitting the readelf output into fields. Tested for x86_64 and mips16. * conform/linknamespace.pl (list_syms): Remove \[.*?\] before splitting into fields. |
||
Joseph Myers
|
40176158f1 |
Fix scandir scandirat namespace (bug 17999).
The POSIX function scandir calls scandirat, which is not a POSIX function. This patch fixes this by making it use __scandirat and making scandirat a weak alias. There are no changes for scandir64 / scandirat64 because those are both _GNU_SOURCE-only functions so no namespace issue arises for them. Tested for x86_64 that the disassembly of installed shared libraries is unchanged by this patch. [BZ #17999] * dirent/scandir.c [!SCANDIR] (SCANDIRAT): Define to __scandirat instead of scandirat. * dirent/scandirat.c [!SCANDIRAT] (SCANDIRAT): Likewise. [!SCANDIRAT] (SCANDIRAT_WEAK_ALIAS): Define. [SCANDIRAT_WEAK_ALIAS] (scandirat): Define as weak alias of __scandirat. * include/dirent.h (scandirat): Do not use libc_hidden_proto. (__scandirat): Declare. Use libc_hidden_proto. * conform/Makefile (test-xfail-POSIX2008/dirent.h/linknamespace): Remove variable. (test-xfail-XOPEN2K8/dirent.h/linknamespace): Likewise. |
||
Joseph Myers
|
4ffb177155 |
Fix search.h namespace (bug 17996).
The implementation of the (XSI POSIX) functions hsearch / hcreate / hdestroy uses hsearch_r / hcreate_r / hdestroy_r, which are not POSIX functions. This patch makes those into weak aliases for __*_r and uses those names for the calls within libc. Tested for x86_64 that the disassembly of installed shared libraries is unchanged by this patch. [BZ #17996] * include/search.h (hcreate_r): Don't use libc_hidden_proto. (hdestroy_r): Likewise. (hsearch_r): Likewise. (__hcreate_r): Declare and use libc_hidden_proto. (__hdestroy_r): Likewise. (__hsearch_r): Likewise. * misc/hsearch.c (hsearch): Call __hsearch_r instead of hsearch_r. (hcreate): Call __hcreate_r instead of hcreate_r. (__hdestroy): Call __hdestroy_r instead of hdestroy_r. * misc/hsearch_r.c (hcreate_r): Rename to __hcreate_r and define as weak alias of __hcreate_r. (hdestroy_r): Rename to __hdestroy_r and define as weak alias of __hdestroy_r. (hsearch_r): Rename to __hsearch_r and define as weak alias of __hsearch_r. * conform/Makefile (test-xfail-XPG3/search.h/linknamespace): Remove variable. (test-xfail-XPG4/search.h/linknamespace): Likewise. (test-xfail-UNIX98/search.h/linknamespace): Likewise. (test-xfail-XOPEN2K/search.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/search.h/linknamespace): Likewise. |
||
Joseph Myers
|
1a2325c06c |
Fix posix_spawn getrlimit64 namespace (bug 17991).
posix_spawn (a standard POSIX function) brings in a use of getrlimit64 (not a standard POSIX function). This patch fixes this by using __getrlimit64 and making getrlimit64 a weak alias. This is more complicated than some such changes because of files that define getrlimit64 in their own way using symbol versioning after including the main sysdeps/unix/sysv/linux/getrlimit64.c with a getrlimit macro defined. There are various existing patterns for such cases in glibc; the one I've used here is that a getrlimit64 macro disables the weak_alias / libc_hidden_weak calls, leaving it to the including file to define the getrlimit64 name in whatever way is appropriate. Tested for x86_64 and x86 that installed stripped shared libraries are unchanged by this patch. [BZ #17991] * include/sys/resource.h (__getrlimit64): Declare. Use libc_hidden_proto. * resource/getrlimit64.c (getrlimit64): Rename to __getrlimit64 and define as weak alias of __getrlimit64. Use libc_hidden_weak. * sysdeps/posix/spawni.c (__spawni): Call __getrlimit64 instead of getrlimit64. * sysdeps/unix/sysv/linux/getrlimit64.c (getrlimit64): Rename to __getrlimit64. [!getrlimit64] (getrlimit64): Define as weak alias of __getrlimit64. Use libc_hidden_weak. * sysdeps/unix/sysv/linux/i386/getrlimit64.c (getrlimit64): Define using __getrlimit64 not __new_getrlimit64. (__GI_getrlimit64): Likewise. * sysdeps/unix/sysv/linux/mips/getrlimit64.c (getrlimit64): Likewise. (__GI_getrlimit64): Likewise. (__old_getrlimit64): Use __getrlimit64 not __new_getrlimit64. * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list (getrlimit): Add __getrlimit64 alias. * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (getrlimit): Likewise. * conform/Makefile (test-xfail-XOPEN2K/spawn.h/linknamespace): Remove variable. (test-xfail-POSIX2008/spawn.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/spawn.h/linknamespace): Likewise. |
||
Joseph Myers
|
b8986484e4 |
Fix isblank / isascii / toascii namespace (bug 17635).
Use of isblank brings in isascii and toascii, but isblank is a C99 function and the other two aren't; similarly, isascii and toascii are UNIX98 functions and bring in isblank, which isn't. (Not a conformance issue because of the is* and to* reservation, but still contrary to glibc practice.) This patch fixes this by splitting isblank out of ctype-extn.c to a separate ctype-c99.c. isblank_l is also moved to a separate file, ctype-c99_l.c (non-XSI POSIX.1-2008 has isblank_l, but isascii / toascii are marked OB XSI). (In principle all these functions could go in separate files - that's optimal for static linking - but they are also all very small, and splitting them all out is not needed to fix the present bug.) Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch - the ordering in which new and existing sources are listed in ctype/Makefile is arranged so functions go in the same order so that this comparison works). [BZ #17635] * ctype/ctype-c99.c: New file. isblank implementation moved from ... * ctype/ctype-extn.c: ... here. (__isblank_l): Move to ... * ctype/ctype-c99_l.c: ... here. New file. * ctype/Makefile (routines): Add ctype-c99 and ctype-c99_l. * conform/Makefile (test-xfail-ISO99/ctype.h/linknamespace): Remove variable. (test-xfail-ISO11/ctype.h/linknamespace): Likewise. (test-xfail-XPG3/ctype.h/linknamespace): Likewise. (test-xfail-XPG4/ctype.h/linknamespace): Likewise. (test-xfail-UNIX98/ctype.h/linknamespace): Likewise. (test-xfail-POSIX2008/ctype.h/linknamespace): Likewise. |
||
Joseph Myers
|
a287953a45 |
Fix wordsize-64 posix_fadvise64, posix_fallocate64 namespace (bug 17777).
On systems using sysdeps/unix/sysv/linux/wordsize-64, posix_fadvise64 and posix_fallocate64 (non-POSIX) are strong aliases for posix_fadvise and posix_fallocate (POSIX), meaning references to the latter wrongly bring in definitions of the former. They should be weak aliases; this patch makes them so. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17777] * sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c (posix_fadvise64): Define as weak alias not strong alias. * sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c (posix_fallocate64): Likewise. * conform/Makefile (test-xfail-XOPEN2K/fcntl.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/mqueue.h/linknamespace): Likewise. (test-xfail-POSIX2008/fcntl.h/linknamespace): Likewise. (test-xfail-POSIX2008/mqueue.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/fcntl.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/mqueue.h/linknamespace): Likewise. |
||
Joseph Myers
|
b168057aaa | Update copyright dates with scripts/update-copyrights. | ||
Joseph Myers
|
8ac5a76a99 |
Fix resolver inet_* namespace (bug 17722).
Parts of the resolver brought in by pthreads (at least) use inet_* functions that aren't in the 1995/6 edition of POSIX that introduced pthreads (or in one case, use __inet_aton which is then defined in the same file as non-weak inet_addr). This patch fixes this by making the affected functions into weak alias for __inet_* and using those names in the problematic resolver code. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17722] * inet/inet_mkadr.c (inet_makeaddr): Rename to __inet_makeaddr and define as weak alias of __inet_makeaddr. * resolv/inet_addr.c (inet_addr): Rename to __inet_addr and define as weak alias of __inet_addr. * resolv/inet_pton.c (inet_pton): Rename to __inet_pton and define as weak alias of __inet_pton. Use libc_hidden_weak. * include/arpa/inet.h (__inet_pton): Declare. Use libc_hidden_proto. (inet_makeaddr): Don't use libc_hidden_proto. (__inet_makeaddr): Declare. Use libc_hidden_proto. * resolv/res_init.c (__res_vinit): Use __inet_pton instead of inet_pton. Use __inet_makeaddr instead of inet_makeaddr. * conform/Makefile (test-xfail-POSIX/pthread.h/linknamespace): Remove variable. (test-xfail-POSIX/sched.h/linknamespace): Likewise. (test-xfail-POSIX/time.h/linknamespace): Likewise. |
||
Joseph Myers
|
380292ba8b |
Fix x86_64 memrchr namespace (bug 17719).
On x86_64, memrchr (not a standard function) is defined as a strong symbol, instead of a weak alias of __memrchr as on other architectures. This results in linknamespace test failures from the use of __memrchr from dirname. (Not a conformance issue because of the mem* reservation, but contrary to glibc conventions.) This patch makes x86_64 follow other architectures by defining memrchr as a weak alias. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17719] * sysdeps/x86_64/memrchr.S (memrchr): Rename to __memrchr and define as weak alias of __memrchr. (__memrchr): Do not define as strong alias of memrchr. * conform/Makefile (test-xfail-XPG4/libgen.h/linknamespace): Remove variable. (test-xfail-UNIX98/libgen.h/linknamespace): Likewise. (test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise. |
||
Joseph Myers
|
9a44d530c4 |
Fix resolver if_* namespace (bug 17717).
Resolver code, brought in by pthreads (at least), uses if_* interfaces that weren't in POSIX before 2001, resulting in linknamespace failures. This patch changes those interfaces to be weak aliases of __if_* and makes the resolver use __if_* directly. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by this patch). [BZ #17717] * inet/if_index.c (if_nametoindex): Rename to __if_nametoindex and define as weak alias of __if_nametoindex. Use libc_hidden_weak. (if_indextoname): Rename to __if_indextoname and define as weak alias of __if_indextoname. Use libc_hidden_weak. (if_freenameindex): Rename to __if_freenameindex and define as weak alias of __if_freenameindex. (if_nameindex): Rename to __if_nameindex and define as weak alias of __if_nameindex. * sysdeps/mach/hurd/if_index.c (if_nametoindex): Rename to __if_nametoindex and define as weak alias of __if_nametoindex. Use libc_hidden_weak. (if_freenameindex): Rename to __if_freenameindex and define as weak alias of __if_freenameindex. (if_nameindex): Rename to __if_nameindex and define as weak alias of __if_nameindex. (if_indextoname): Rename to __if_indextoname and define as weak alias of __if_indextoname. Use libc_hidden_weak. * sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Rename to __if_nametoindex and define as weak alias of __if_nametoindex. Use libc_hidden_weak. (if_freenameindex): Rename to __if_freenameindex and define as weak alias of __if_freenameindex. Use libc_hidden_weak. (if_nameindex_netlink): Use __if_freenameindex instead of if_freenameindex. (if_nameindex): Rename to __if_nameindex and define as weak alias of __if_nameindex. Use libc_hidden_weak. (if_indextoname): Rename to __if_indextoname and define as weak alias of __if_indextoname. Use libc_hidden_weak. * include/net/if.h [!_ISOMAC] (__if_nametoindex): Declare and use libc_hidden_proto. [!_ISOMAC] (__if_freenameindex): Likewise. * resolv/res_init.c (__res_vinit): Use __if_nametoindex instead of if_nametoindex. * conform/Makefile (test-xfail-XPG4/grp.h/linknamespace): Remove variable. (test-xfail-XPG4/pwd.h/linknamespace): Likewise. (test-xfail-UNIX98/aio.h/linknamespace): Likewise. (test-xfail-UNIX98/grp.h/linknamespace): Likewise. (test-xfail-UNIX98/pthread.h/linknamespace): Likewise. (test-xfail-UNIX98/pwd.h/linknamespace): Likewise. (test-xfail-UNIX98/sched.h/linknamespace): Likewise. (test-xfail-UNIX98/time.h/linknamespace): Likewise. |
||
Joseph Myers
|
d003ada20e |
Remove some semaphore.h linknamespace XFAILs.
Roland's recent sem_* changes introduced some XPASSes for semaphore.h linknamespace tests by removing a non-static variable "mountpoint". This patch removes the XFAILs for the fixed bug. Tested for x86_64. * conform/Makefile (test-xfail-UNIX98/semaphore.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/semaphore.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/semaphore.h/linknamespace): Likewise. |
||
Joseph Myers
|
2cfbdb9a27 |
Fix strftime wcschr namespace (bug 17634).
Use of strftime, a C90 function, ends up bringing in wcschr, which is not a C90 function. Although not a conformance bug (C90 reserves wcs*), this is still contrary to glibc practice of avoiding relying on those reservations; this patch arranges for the internal uses to use __wcschr instead, with wcschr being a weak alias. This is more complicated than some such patches because of the various IFUNC definitions of wcschr (which include code redefining libc_hidden_def in a way that involves creating __GI_wcschr manually and so also needs to create __GI___wcschr after the change of internal uses to use __wcschr). Tested for x86_64 and 32-bit x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). 2014-12-10 Joseph Myers <joseph@codesourcery.com> Adhemerval Zanella <azanella@linux.vnet.ibm.com> [BZ #17634] * wcsmbs/wcschr.c [!WCSCHR] (wcschr): Define as __wcschr. Undefine after defining function. Define as weak alias of __wcschr. Use libc_hidden_weak. * include/wchar.h (__wcschr): Declare. Use libc_hidden_proto. * sysdeps/i386/i686/multiarch/wcschr-c.c [IS_IN (libc) && SHARED] (libc_hidden_def): Also define __GI___wcschr alias. * sysdeps/i386/i686/multiarch/wcschr.S (wcschr): Rename to __wcschr and define as weak alias of __wcschr. * sysdeps/powerpc/power6/wcschr.c [!WCSCHR] (WCSCHR): Define as __wcschr. [!WCSCHR] (DEFAULT_WCSCHR): Define. [DEFAULT_WCSCHR] (__wcschr): Use libc_hidden_def. [DEFAULT_WCSCHR] (wcschr): Define as weak alias of __wcschr. Use libc_hidden_weak. Do not use libc_hidden_def. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c [IS_IN (libc) && SHARED] (libc_hidden_def): Also define __GI___wcschr alias. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c [IS_IN (libc)] (wcschr): Define as macro expanding to __redirect_wcschr. [IS_IN (libc)] (__wcschr_ppc): Use __redirect_wcschr in typeof. [IS_IN (libc)] (__wcschr_power6): Likewise. [IS_IN (libc)] (__wcschr_power7): Likewise. [IS_IN (libc)] (__libc_wcschr): New. Define with libc_ifunc instead of wcschr. [IS_IN (libc)] (wcschr): Undefine and define as weak alias of __libc_wcschr. [!IS_IN (libc)] (libc_hidden_def): Do not undefine and redefine. * sysdeps/powerpc/powerpc64/multiarch/wcschr.c (wcschr): Rename to __wcschr and define as weak alias of __wcschr. Use libc_hidden_builtin_def. * sysdeps/x86_64/wcschr.S (wcschr): Rename to __wcschr and define as weak alias of __wcschr. Use libc_hidden_weak. * time/alt_digit.c (_nl_get_walt_digit): Use __wcschr instead of wcschr. * time/era.c (_nl_init_era_entries): Likewise. * conform/Makefile (test-xfail-ISO/time.h/linknamespace): Remove variable. (test-xfail-XPG3/time.h/linknamespace): Likewise. (test-xfail-XPG4/time.h/linknamespace): Likewise. |
||
Joseph Myers
|
c5c2b7c3fd |
Fix pthreads getrlimit, gettimeofday namespace (bug 17682).
Some pthreads functions use getrlimit and gettimeofday, but these functions are XSI, not base POSIX; this is a namespace issue for dynamic linking as well as static linking. This patch makes them use __getrlimit and __gettimeofday instead - the former needed to be newly exported from libc.so at GLIBC_PRIVATE (and so now needs libc_hidden_proto / libc_hidden_def), the latter was already exported. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17682] * resource/Versions (libc): Add __getrlimit at GLIBC_PRIVATE. * resource/getrlimit.c (__getrlimit): Use libc_hidden_def. * sysdeps/mach/hurd/getrlimit.c (__getrlimit): Likewise. * include/sys/resource.h (__getrlimit): Use libc_hidden_proto. * nptl/nptl-init.c (__pthread_initialize_minimal_internal): Use __getrlimit instead of getrlimit. * nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait): Use __gettimeofday instead of gettimeofday. * nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock): Likewise. * nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Likewise. * sysdeps/pthread/aio_misc.c (handle_fildes_io): Likewise. * conform/Makefile (test-xfail-POSIX2008/aio.h/linknamespace): Remove variable. (test-xfail-POSIX2008/pthread.h/linknamespace): Likewise. (test-xfail-POSIX2008/time.h/linknamespace): Likewise. |
||
Joseph Myers
|
84dbedb608 |
Fix linknamespace h_errno handling.
Some linknamespace tests were failing because of references to h_errno. References to this symbol should be allowed for XPG4, UNIX98 and XOPEN2K; this patch adds it to the list of allowed data symbols for those standards. (h_errno was removed in the 2008 edition of POSIX, so POSIX2008 and XOPEN2K8 references to it are genuine bugs; fortunately it's not a public data symbol - __h_errno_location is public, TLS h_errno is GLIBC_PRIVATE - so the symbol can simply be renamed to __h_errno to fix those bugs without the ABI complications normally associated with namespace issues for data symbols.) Tested for x86_64. * conform/list-header-symbols.pl (%extra_syms): Add h_errno for XPG4, UNIX98 and XOPEN2K. * conform/Makefile (test-xfail-XOPEN2K/grp.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/pwd.h/linknamespace): Likewise. |
||
Joseph Myers
|
e3d6dba5df |
Fix linknamespace getdate_err handling.
Some linknamespace tests were failing because of references to getdate_err. References to this symbol should be allowed for XPG4 and later XSI standards; it was missing from the whitelist of data symbols. This patch adds it to that list. Tested for x86_64. * conform/list-header-symbols.pl (%extra_syms): Add getdate_err for XPG4, UNIX98, XOPEN2K and XOPEN2K8. * conform/Makefile (test-xfail-XOPEN2K/pthread.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/time.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/pthread.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/time.h/linknamespace): Likewise. |
||
Joseph Myers
|
28a91e8f65 |
Remove some linknamespace test XFAILs.
It seems two of the XFAILed linknamespace tests were completely fixed by some of my recent namespace fixes in combination (although not by any individual one of those fixes relative to the sources used for testing each patch, or that individual fix would also have removed the XFAIL in question). This patch removes those XFAILs that are no longer needed. Tested for x86_64. * conform/Makefile (test-xfail-XOPEN2K/aio.h/linknamespace): Remove variable. (test-xfail-XOPEN2K8/aio.h/linknamespace): Likewise. |
||
Joseph Myers
|
7f994279e9 |
Fix getifaddrs, freeifaddrs namespace (bug 17668).
Various objects in glibc bring in ifaddrs.o (via references to __netlink_*) and thereby getifaddrs and freeifaddrs, which are not part of any standard supported by glibc. These should be weak aliases of __getifaddrs and __freeifaddrs; this patch makes them so. (The path by which these functions are brought in is Linux-specific, but it seems less confusing to make all versions of these functions weak aliases rather than only the Linux-specific versions that definitely need it.) Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by this patch). [BZ #17668] * inet/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define as weak alias of __getifaddrs. Use libc_hidden_weak. (freeifaddrs): Rename to __freeifaddrs and define as weak alias of __freeifaddrs. Use libc_hidden_weak. * sysdeps/gnu/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define as weak alias of __getifaddrs. Use libc_hidden_weak. (freeifaddrs): Rename to __freeifaddrs and define as weak alias of __freeifaddrs. Use libc_hidden_weak. * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define as weak alias of __getifaddrs. Use libc_hidden_weak. (freeifaddrs): Rename to __freeifaddrs and define as weak alias of __freeifaddrs. Use libc_hidden_weak. * conform/Makefile (test-xfail-XOPEN2K/net/if.h/linknamespace): Remove variable. (test-xfail-POSIX2008/net/if.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/net/if.h/linknamespace): Likewise. |
||
Joseph Myers
|
84e5e75640 |
Fix fgets_unlocked namespace issues (bug 17664).
Various POSIX functions bring in res_init.o, res_hconf.o or mntent_r.o, which use fgets_unlocked, which is not a POSIX function. This patch arranges for them to use __fgets_unlocked instead. (The IS_IN (libc) conditional in rec_hconf.c is needed because that file is also used in nscd.) Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch except for an assertion line number). Note that most of the linknamespace tests that failed because of fgets_unlocked from the resolver also fail because of other symbols brought in by the resolver, so the number of XFAILs this removes is limited. Also note that fgets_unlocked failures for unistd.h for XPG3/XPG4 showed up that actually unistd.h is declaring too much for XPG3/XPG4 (bug 17665) - there is no actual need to make getusershell.c use __fgets_unlocked (at least as regards formal standards are concerned; maybe it should still change for namespace-cleanness of _DEFAULT_SOURCE) because the functions there aren't actually in any of the supported standards; the correct fix for those failures will be to stop the *usershell* functions appearing in unistd.h for XPG3/XPG4. [BZ #17664] * misc/mntent_r.c (__getmntent_r): Use __fgets_unlocked instead of fgets_unlocked. * resolv/res_hconf.c [IS_IN (libc)] (fgets_unlocked): Define to __fgets_unlocked. * resolv/res_init.c (__res_vinit): Use __fgets_unlocked instead of fgets_unlocked. * conform/Makefile (test-xfail-XPG4/sys/statvfs.h/linknamespace): Remove variable. (test-xfail-POSIX/sys/mman.h/linknamespace): Likewise. (test-xfail-UNIX98/sys/mman.h/linknamespace): Likewise. (test-xfail-UNIX98/sys/statvfs.h/linknamespace): Likewise. (test-xfail-XOPEN2K/sys/mman.h/linknamespace): Likewise. (test-xfail-XOPEN2K/sys/statvfs.h/linknamespace): Likewise. (test-xfail-POSIX2008/sys/mman.h/linknamespace): Likewise. (test-xfail-POSIX2008/sys/statvfs.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/sys/mman.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/sys/statvfs.h/linknamespace): Likewise. |
||
Joseph Myers
|
0e7e69baa8 |
Make linknamespace tests check only relevant libraries.
This patch addresses one known caveat in the linknamespace tests: with this patch they will now only look for definitions of symbols in relevant libraries, meaning that librt and libpthread are not checked for ISO C standards, XPG3 and XPG4. In particular, this means that if __pthread_initialize_minimal is somehow brought in for one of those standards, the definition from libc-tls.o will be considered instead of that from libpthread, so avoiding bringing in lots of other libpthread symbols. This should address some of the failures reported by Carlos in <https://sourceware.org/ml/libc-alpha/2014-11/msg00882.html>, where __pointer_chk_guard_local brought in __pthread_initialize_minimal. Tested for x86_64. The removal of one XFAIL for XPG4 actually shows up a header bug (shm_open should not be declared for XPG4 - the namespace issue was for symbols brought in by shm_open, which is no longer found at all now librt isn't searched; I've filed bug 17663 for the header bug, though it would show up eventually anyway in the course of review of conform/ data against XPG4). Committed. * conform/Makefile (linknamespace-symlist-stdlibs-base): New variable. (linknamespace-symlist-stdlibs-tests): Likewise. (tests-special): Append $(linknamespace-symlist-stdlibs-tests) instead of $(objpfx)symlist-stdlibs. (linknamespace-libs-isoc): New variable. (linknamespace-libs): Use $(linknamespace-libs-isoc). (linknamespace-libs-ISO): New variable. (linknamespace-libs-ISO99): Likewise. (linknamespace-libs-ISO11): Likewise. (linknamespace-libs-XPG3): Likewise. (linknamespace-libs-XPG4): Likewise. (linknamespace-libs-POSIX): Likewise. (linknamespace-libs-UNIX98): Likewise. (linknamespace-libs-XOPEN2K): Likewise. (linknamespace-libs-POSIX2008): Likewise. (linknamespace-libs-XOPEN2K8): Likewise. ($(objpfx)symlist-stdlibs): Replace by $(linknamespace-symlist-stdlibs-tests). Use $(linknamespace-libs-$*) as set of libraries. ($(linknamespace-header-tests)): Update dependencies. Use $(objpfx)symlist-stdlibs-$$std for --libsyms argument. (test-xfail-XPG4/sys/mman.h/linknamespace): Remove. * conform/linknamespace.pl: Remove comment about considering definitions of symbols from irrelevant libraries. |
||
Joseph Myers
|
9744496f8a |
Fix perror fileno namespace (bug 17633).
perror, an ISO C function, uses fileno, which is not an ISO C function. This patch makes it use __fileno instead. (The nearby call to fdopen is not a problem because that's #defined to _IO_new_fdopen.) Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by this patch). [BZ #17633] * stdio-common/perror.c (perror): Call __fileno instead of fileno. * conform/Makefile (test-xfail-ISO/stdio.h/linknamespace): Remove variable. (test-xfail-ISO99/stdio.h/linknamespace): Likewise. (test-xfail-ISO11/stdio.h/linknamespace): Likewise. |
||
Joseph Myers
|
107a5bf085 |
Fix libm mpone, mptwo namespace (bug 17616).
libm uses symbols mpone and mptwo for internal purposes. This patch moves them to the implementation namespace (__mpone and __mptwo). Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #17616] * sysdeps/ieee754/dbl-64/mpa.c (mpone): Rename to __mpone. (mptwo): Rename to __mptwo. (__inv): Use __mptwo instead of mptwo. * sysdeps/ieee754/dbl-64/mpa.h (mpone): Rename to __mpone. (mptwo): Rename to __mptwo. * sysdeps/ieee754/dbl-64/mpatan.c (__mpatan): Use __mpone instead of mpone and __mptwo instead of mptwo. * sysdeps/ieee754/dbl-64/mpatan2.c (__mpatan2): Use __mpone instead of mpone. * sysdeps/ieee754/dbl-64/mpexp.c (__mpexp): Likewise. * sysdeps/ieee754/dbl-64/mplog.c (__mplog): Likewise. * sysdeps/ieee754/dbl-64/sincos32.c (__c32): Use __mpone instead of mpone and __mptwo instead of mptwo. (__mpranred): Use __mpone instead of mpone. * conform/Makefile (test-xfail-ISO/math.h/linknamespace): Remove variable. (test-xfail-ISO99/complex.h/linknamespace): Likewise. (test-xfail-ISO99/math.h/linknamespace): Likewise. (test-xfail-ISO99/tgmath.h/linknamespace): Likewise. (test-xfail-ISO11/complex.h/linknamespace): Likewise. (test-xfail-ISO11/math.h/linknamespace): Likewise. (test-xfail-ISO11/tgmath.h/linknamespace): Likewise. (test-xfail-XPG3/math.h/linknamespace): Likewise. (test-xfail-XPG4/math.h/linknamespace): Likewise. (test-xfail-POSIX/math.h/linknamespace): Likewise. (test-xfail-UNIX98/math.h/linknamespace): Likewise. (test-xfail-XOPEN2K/complex.h/linknamespace): Likewise. (test-xfail-XOPEN2K/math.h/linknamespace): Likewise. (test-xfail-XOPEN2K/tgmath.h/linknamespace): Likewise. (test-xfail-POSIX2008/complex.h/linknamespace): Likewise. (test-xfail-POSIX2008/math.h/linknamespace): Likewise. (test-xfail-POSIX2008/tgmath.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/complex.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/math.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/tgmath.h/linknamespace): Likewise. |
||
Joseph Myers
|
a473381208 |
Only declare __sigpause in installed signal.h when necessary.
This patch makes the installed signal.h declare __sigpause only when necessary (when a macro definition of sigpause makes use of __sigpause), rather than unconditionally. This fixes false positives in the linknamespace tests by making it visible to those tests that no use of ISO C functionality will actually bring in the definition of __sigpause and so bring in the other symbols defined in the same object. There is no bug filed in Bugzilla because this is fixing false positives rather than any user-visible bug. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by this patch). * signal/signal.h (__sigpause): Only declare if [__USE_XOPEN && !__GNUC__]. * include/signal.h (__sigpause): Move declaration above call to libc_hidden_proto. * conform/Makefile (test-xfail-ISO/signal.h/linknamespace): Remove variable. (test-xfail-ISO99/signal.h/linknamespace): Likewise. (test-xfail-ISO11/signal.h/linknamespace): Likewise. |
||
Joseph Myers
|
24f4f8253f |
Add tests for namespace for static linking.
One thing we currently try to ensure manually is that glibc is namespace-clean for static linking; that is, if you only use features from a particular standard (including the set of features exposed by headers given feature test macros such as _DEFAULT_SOURCE that don't correspond to any written standard), the library objects brought in by the static linker will not define or use (strong) names that are reserved to the user in that standard. This patch implements automatic tests for this, using the same set of standards as for the header conformance tests (it would, however, be easy to add more standards for this testing, without them needing to have the definitions of expected header contents for the header tests). The tests are based on the functions declared in each header, as extracted using GCC's -aux-info option. The following comment from linknamespace.pl explains the caveats around this approach: Here's an example of the output for ISO (C90) assert.h, from before my recent fixes and whitelisting of cases that seem more complicated to fix: [initial] __assert_fail -> [libc.a(assert.o)] free -> [libc.a(malloc.o)] __get_nprocs -> [libc.a(getsysstats.o)] fgets_unlocked [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __libc_setlocale_lock -> [libc.a(setlocale.o)] _nl_archive_subfreeres -> [libc.a(loadarchive.o)] __sysconf -> [libc.a(sysconf.o)] __tzname_max -> [libc.a(tzset.o)] __tzfile_compute -> [libc.a(tzfile.o)] fileno [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __libc_setlocale_lock -> [libc.a(setlocale.o)] _nl_archive_subfreeres -> [libc.a(loadarchive.o)] __sysconf -> [libc.a(sysconf.o)] __tzname_max -> [libc.a(tzset.o)] __tzfile_compute -> [libc.a(tzfile.o)] fread_unlocked [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __libc_setlocale_lock -> [libc.a(setlocale.o)] _nl_archive_subfreeres -> [libc.a(loadarchive.o)] __sysconf -> [libc.a(sysconf.o)] __tzname_max -> [libc.a(tzset.o)] __tzfile_compute -> [libc.a(tzfile.o)] ftello [initial] __assert_fail -> [libc.a(assert.o)] free -> [libc.a(malloc.o)] malloc_info [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __libc_setlocale_lock -> [libc.a(setlocale.o)] _nl_default_locale_path -> [libc.a(findlocale.o)] memmem [initial] __assert_perror_fail -> [libc.a(assert-perr.o)] __strerror_r -> [libc.a(_strerror.o)] mempcpy [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] _nl_find_domain -> [libc.a(finddomain.o)] _nl_expand_alias -> [libc.a(localealias.o)] qsort -> [libc.a(msort.o)] qsort_r [initial] __assert_fail -> [libc.a(assert.o)] _dl_pagesize -> [libc.a(dl-support.o)] __rawmemchr -> [libc.a(rawmemchr.o)] rawmemchr [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __getcwd -> [libc.a(getcwd.o)] rewinddir [initial] __assert_fail -> [libc.a(assert.o)] stderr [initial] __assert_fail -> [libc.a(assert.o)] stderr -> [libc.a(stdio.o)] stdin [initial] __assert_fail -> [libc.a(assert.o)] stderr -> [libc.a(stdio.o)] stdout [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] stpcpy [initial] __assert_fail -> [libc.a(assert.o)] __fxprintf -> [libc.a(fxprintf.o)] _IO_vfprintf -> [libc.a(vfprintf.o)] __printf_fp -> [libc.a(printf_fp.o)] wmemset Of the 161 XFAILs, seven are the inevitable varargs.h and ndbm.h failures; I think the remaining 154 mostly represent genuine bugs in glibc that should mostly be straightforward to fix (probably rather fewer than 154 bugs - issues generally affect multiple headers, for multiple standards). (When fixing, of course you need to file a bug in Bugzilla, and check for the possibility that the header conditionals are what's incorrect - that the first listed symbol shouldn't have been declared, or that the symbol finally brought in should have been declared.) * conform/GlibcConform.pm: New file. * conform/conformtest.pl: Use GlibcConform module. * conform/linknamespace.pl: New file. * conform/list-header-symbols.pl: Likewise. * conform/Makefile (linknamespace-symlists-base): New variable. (linknamespace-symlists-tests): Likewise. (linknamespace-header-base): Likewise. (linknamespace-header-tests): Likewise. (tests-special): Add new tests. ($(linknamespace-symlists-tests)): New rule. (linknamespace-libs): New variable. ($(objpfx)symlist-stdlibs): New rule. ($(linknamespace-header-tests)): Likewise. (test-xfail-XPG3/varargs.h/linknamespace): New variable. (test-xfail-XPG4/varargs.h/linknamespace): Likewise. (test-xfail-UNIX98/varargs.h/linknamespace): Likewise. (test-xfail-XPG4/ndbm.h/linknamespace): Likewise. (test-xfail-UNIX98/ndbm.h/linknamespace): Likewise. (test-xfail-XOPEN2K/ndbm.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/ndbm.h/linknamespace): Likewise. (test-xfail-ISO/math.h/linknamespace): Likewise. (test-xfail-ISO/signal.h/linknamespace): Likewise. (test-xfail-ISO/stdio.h/linknamespace): Likewise. (test-xfail-ISO/time.h/linknamespace): Likewise. (test-xfail-ISO99/complex.h/linknamespace): Likewise. (test-xfail-ISO99/ctype.h/linknamespace): Likewise. (test-xfail-ISO99/math.h/linknamespace): Likewise. (test-xfail-ISO99/signal.h/linknamespace): Likewise. (test-xfail-ISO99/stdio.h/linknamespace): Likewise. (test-xfail-ISO99/tgmath.h/linknamespace): Likewise. (test-xfail-ISO11/complex.h/linknamespace): Likewise. (test-xfail-ISO11/ctype.h/linknamespace): Likewise. (test-xfail-ISO11/math.h/linknamespace): Likewise. (test-xfail-ISO11/signal.h/linknamespace): Likewise. (test-xfail-ISO11/stdio.h/linknamespace): Likewise. (test-xfail-ISO11/tgmath.h/linknamespace): Likewise. (test-xfail-XPG3/ctype.h/linknamespace): Likewise. (test-xfail-XPG3/fnmatch.h/linknamespace): Likewise. (test-xfail-XPG3/glob.h/linknamespace): Likewise. (test-xfail-XPG3/math.h/linknamespace): Likewise. (test-xfail-XPG3/regex.h/linknamespace): Likewise. (test-xfail-XPG3/search.h/linknamespace): Likewise. (test-xfail-XPG3/stdio.h/linknamespace): Likewise. (test-xfail-XPG3/time.h/linknamespace): Likewise. (test-xfail-XPG3/unistd.h/linknamespace): Likewise. (test-xfail-XPG3/wordexp.h/linknamespace): Likewise. (test-xfail-XPG4/ctype.h/linknamespace): Likewise. (test-xfail-XPG4/fmtmsg.h/linknamespace): Likewise. (test-xfail-XPG4/fnmatch.h/linknamespace): Likewise. (test-xfail-XPG4/glob.h/linknamespace): Likewise. (test-xfail-XPG4/grp.h/linknamespace): Likewise. (test-xfail-XPG4/libgen.h/linknamespace): Likewise. (test-xfail-XPG4/math.h/linknamespace): Likewise. (test-xfail-XPG4/netdb.h/linknamespace): Likewise. (test-xfail-XPG4/pwd.h/linknamespace): Likewise. (test-xfail-XPG4/regex.h/linknamespace): Likewise. (test-xfail-XPG4/search.h/linknamespace): Likewise. (test-xfail-XPG4/stdio.h/linknamespace): Likewise. (test-xfail-XPG4/stdlib.h/linknamespace): Likewise. (test-xfail-XPG4/sys/mman.h/linknamespace): Likewise. (test-xfail-XPG4/sys/statvfs.h/linknamespace): Likewise. (test-xfail-XPG4/syslog.h/linknamespace): Likewise. (test-xfail-XPG4/time.h/linknamespace): Likewise. (test-xfail-XPG4/unistd.h/linknamespace): Likewise. (test-xfail-XPG4/wordexp.h/linknamespace): Likewise. (test-xfail-POSIX/aio.h/linknamespace): Likewise. (test-xfail-POSIX/fnmatch.h/linknamespace): Likewise. (test-xfail-POSIX/glob.h/linknamespace): Likewise. (test-xfail-POSIX/math.h/linknamespace): Likewise. (test-xfail-POSIX/mqueue.h/linknamespace): Likewise. (test-xfail-POSIX/pthread.h/linknamespace): Likewise. (test-xfail-POSIX/regex.h/linknamespace): Likewise. (test-xfail-POSIX/sched.h/linknamespace): Likewise. (test-xfail-POSIX/semaphore.h/linknamespace): Likewise. (test-xfail-POSIX/sys/mman.h/linknamespace): Likewise. (test-xfail-POSIX/time.h/linknamespace): Likewise. (test-xfail-POSIX/unistd.h/linknamespace): Likewise. (test-xfail-POSIX/wordexp.h/linknamespace): Likewise. (test-xfail-UNIX98/aio.h/linknamespace): Likewise. (test-xfail-UNIX98/ctype.h/linknamespace): Likewise. (test-xfail-UNIX98/fmtmsg.h/linknamespace): Likewise. (test-xfail-UNIX98/fnmatch.h/linknamespace): Likewise. (test-xfail-UNIX98/glob.h/linknamespace): Likewise. (test-xfail-UNIX98/grp.h/linknamespace): Likewise. (test-xfail-UNIX98/libgen.h/linknamespace): Likewise. (test-xfail-UNIX98/math.h/linknamespace): Likewise. (test-xfail-UNIX98/mqueue.h/linknamespace): Likewise. (test-xfail-UNIX98/netdb.h/linknamespace): Likewise. (test-xfail-UNIX98/pthread.h/linknamespace): Likewise. (test-xfail-UNIX98/pwd.h/linknamespace): Likewise. (test-xfail-UNIX98/regex.h/linknamespace): Likewise. (test-xfail-UNIX98/sched.h/linknamespace): Likewise. (test-xfail-UNIX98/search.h/linknamespace): Likewise. (test-xfail-UNIX98/semaphore.h/linknamespace): Likewise. (test-xfail-UNIX98/stdio.h/linknamespace): Likewise. (test-xfail-UNIX98/stdlib.h/linknamespace): Likewise. (test-xfail-UNIX98/sys/mman.h/linknamespace): Likewise. (test-xfail-UNIX98/sys/statvfs.h/linknamespace): Likewise. (test-xfail-UNIX98/syslog.h/linknamespace): Likewise. (test-xfail-UNIX98/time.h/linknamespace): Likewise. (test-xfail-UNIX98/unistd.h/linknamespace): Likewise. (test-xfail-UNIX98/wchar.h/linknamespace): Likewise. (test-xfail-UNIX98/wordexp.h/linknamespace): Likewise. (test-xfail-XOPEN2K/aio.h/linknamespace): Likewise. (test-xfail-XOPEN2K/complex.h/linknamespace): Likewise. (test-xfail-XOPEN2K/fcntl.h/linknamespace): Likewise. (test-xfail-XOPEN2K/fmtmsg.h/linknamespace): Likewise. (test-xfail-XOPEN2K/fnmatch.h/linknamespace): Likewise. (test-xfail-XOPEN2K/glob.h/linknamespace): Likewise. (test-xfail-XOPEN2K/grp.h/linknamespace): Likewise. (test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise. (test-xfail-XOPEN2K/math.h/linknamespace): Likewise. (test-xfail-XOPEN2K/mqueue.h/linknamespace): Likewise. (test-xfail-XOPEN2K/net/if.h/linknamespace): Likewise. (test-xfail-XOPEN2K/netdb.h/linknamespace): Likewise. (test-xfail-XOPEN2K/pthread.h/linknamespace): Likewise. (test-xfail-XOPEN2K/pwd.h/linknamespace): Likewise. (test-xfail-XOPEN2K/regex.h/linknamespace): Likewise. (test-xfail-XOPEN2K/search.h/linknamespace): Likewise. (test-xfail-XOPEN2K/semaphore.h/linknamespace): Likewise. (test-xfail-XOPEN2K/signal.h/linknamespace): Likewise. (test-xfail-XOPEN2K/spawn.h/linknamespace): Likewise. (test-xfail-XOPEN2K/stdlib.h/linknamespace): Likewise. (test-xfail-XOPEN2K/sys/mman.h/linknamespace): Likewise. (test-xfail-XOPEN2K/sys/statvfs.h/linknamespace): Likewise. (test-xfail-XOPEN2K/sys/wait.h/linknamespace): Likewise. (test-xfail-XOPEN2K/syslog.h/linknamespace): Likewise. (test-xfail-XOPEN2K/tgmath.h/linknamespace): Likewise. (test-xfail-XOPEN2K/time.h/linknamespace): Likewise. (test-xfail-XOPEN2K/ucontext.h/linknamespace): Likewise. (test-xfail-XOPEN2K/unistd.h/linknamespace): Likewise. (test-xfail-XOPEN2K/wordexp.h/linknamespace): Likewise. (test-xfail-POSIX2008/aio.h/linknamespace): Likewise. (test-xfail-POSIX2008/complex.h/linknamespace): Likewise. (test-xfail-POSIX2008/ctype.h/linknamespace): Likewise. (test-xfail-POSIX2008/dirent.h/linknamespace): Likewise. (test-xfail-POSIX2008/fcntl.h/linknamespace): Likewise. (test-xfail-POSIX2008/grp.h/linknamespace): Likewise. (test-xfail-POSIX2008/math.h/linknamespace): Likewise. (test-xfail-POSIX2008/mqueue.h/linknamespace): Likewise. (test-xfail-POSIX2008/net/if.h/linknamespace): Likewise. (test-xfail-POSIX2008/netdb.h/linknamespace): Likewise. (test-xfail-POSIX2008/pthread.h/linknamespace): Likewise. (test-xfail-POSIX2008/regex.h/linknamespace): Likewise. (test-xfail-POSIX2008/semaphore.h/linknamespace): Likewise. (test-xfail-POSIX2008/spawn.h/linknamespace): Likewise. (test-xfail-POSIX2008/sys/mman.h/linknamespace): Likewise. (test-xfail-POSIX2008/sys/statvfs.h/linknamespace): Likewise. (test-xfail-POSIX2008/tgmath.h/linknamespace): Likewise. (test-xfail-POSIX2008/time.h/linknamespace): Likewise. (test-xfail-POSIX2008/unistd.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/aio.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/complex.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/dirent.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/fcntl.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/fmtmsg.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/grp.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/math.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/mqueue.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/net/if.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/netdb.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/pthread.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/pwd.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/regex.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/search.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/semaphore.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/spawn.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/sys/mman.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/sys/statvfs.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/syslog.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/tgmath.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/time.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/unistd.h/linknamespace): Likewise. |
||
Joseph Myers
|
a75d3b0288 |
conformtest: clean up POSIX expections for sys/utsname.h, sys/wait.h.
Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up expectations for sys/utsname.h and sys/wait.h. Tested x86_64; a new XFAIL for sys/wait.h is added. * conform/data/sys/utsname.h-data (*_t): Allow. * conform/data/sys/wait.h-data [POSIX] (uid_t): Do not define. [POSIX] (WEXITED): Do not expect constant. [POSIX] (WSTOPPED): Likewise. [POSIX] (WNOHANG): Likewise. [POSIX] (WNOWAIT): Likewise. [POSIX] (siginfo_t): Do not expect type or elements. [POSIX] (pid_t): Do not expect type. [POSIX] (signal.h): Do not allow header. [POSIX] (sys/resource.h): Likewise. [POSIX] (si_*): Do not allow pattern. [POSIX] (W*): Likewise. [POSIX] (P_*): Likewise. [POSIX] (BUS_*): Likewise. [POSIX] (CLD_*): Likewise. [POSIX] (FPE_*): Likewise. [POSIX] (ILL_*): Likewise. [POSIX] (POLL_*): Likewise. [POSIX] (SEGV_*): Likewise. [POSIX] (SI_*): Likewise. [POSIX] (TRAP_*): Likewise. * conform/Makefile (test-xfail-POSIX/sys/wait.h/conform): New variable. |
||
Joseph Myers
|
e81a4f9a54 |
conformtest: clean up POSIX expectations for sys/mman.h, sys/stat.h, sys/types.h.
Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up expectations for sys/mman.h, sys/stat.h and sys/types.h. Tested x86_64; no new XFAILs needed. * conform/data/sys/mman.h-data [POSIX] (size_t): Do not require type. [POSIX] (off_t): Likewise. * conform/data/sys/stat.h-data (S_IRGRP): Require constant. [POSIX] (S_ISBLK): Require macro. [POSIX] (S_ISCHR): Likewise. [POSIX] (S_ISDIR): Likewise. [POSIX] (S_ISFIFO): Likewise. [POSIX] (S_ISREG): Likewise. [POSIX || XPG3 || XPG4 || UNIX98] (S_TYPEISTMO): Do not list optional-macro. * conform/data/sys/types.h-data [POSIX] (blkcnt_t): Do not require type. [POSIX] (time_t): Likewise. [POSIX] (timer_t): Likewise. |
||
Joseph Myers
|
09f19b0552 |
conformtest: clean up POSIX expectations for termios.h, time.h.
Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up expectations for termios.h and time.h. Tested x86_64; no new XFAILs needed. * conform/data/termios.h-data [POSIX] (IUCLC): Do not expect constant. [POSIX] (IXANY): Likewise. [POSIX] (OLCUC): Likewise. [POSIX || POSIX2008] (CBAUD): Do not allow. [POSIX || POSIX2008] (DEFECHO): Likewise. [POSIX || POSIX2008] (ECHOCTL): Likewise. [POSIX || POSIX2008] (ECHOKE): Likewise. [POSIX || POSIX2008] (ECHOPRT): Likewise. [POSIX || POSIX2008] (EXTA): Likewise. [POSIX || POSIX2008] (EXTB): Likewise. [POSIX || POSIX2008] (FLUSHO): Likewise. [POSIX || POSIX2008] (LOBLK): Likewise. [POSIX || POSIX2008] (PENDIN): Likewise. [POSIX || POSIX2008] (SWTCH): Likewise. [POSIX || POSIX2008] (VDISCARD): Likewise. [POSIX || POSIX2008] (VDSUSP): Likewise. [POSIX || POSIX2008] (VLNEXT): Likewise. [POSIX || POSIX2008] (VREPRINT): Likewise. [POSIX || POSIX2008] (VSTATUS): Likewise. [POSIX || POSIX2008] (VWERASE): Likewise. (B*): Change to B[0123456789]*. * conform/data/time.h-data [POSIX || UNIX98] (CLOCK_PROCESS_CPUTIME_ID): Do not expect constant. [POSIX || UNIX98] (CLOCK_THREAD_CPUTIME_ID): Likewise. [POSIX || UNIX98] (CLOCK_MONOTONIC): Likewise. [POSIX] (tm_*): Do not allow. |
||
Joseph Myers
|
e59252a58e |
Define TSVTX in tar.h for older POSIX (bug 16978).
As noted in bug 16978, older POSIX versions include in the specified contents of <tar.h>, with only the 2001 edition introducing the notion of XSI-conditional definitions and conditioning that definition. Thus, this macro should be defined for !__USE_XOPEN2K as well as for __USE_XOPEN, and this patch duly defines it in that case. Tested x86_64. [BZ #16978] * posix/tar.h [!__USE_XOPEN2K] (TSVTX): Define macro. * conform/Makefile (test-xfail-POSIX/tar.h/conform): Remove variable. |
||
Joseph Myers
|
9a461d467f |
conformtest: clean up POSIX expectations for stdlib.h, string.h.
Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up expectations for stdlib.h and string.h. Tested x86_64; no new XFAILs needed. * conform/data/stdlib.h-data [POSIX] (stddef.h): Do not allow header inclusion. [POSIX] (limits.h): Likewise. [POSIX] (math.h): Likewise. [POSIX] (sys/wait.h): Likewise. * conform/data/string.h-data [POSIX || UNIX98] (strtok_r): Require function. [POSIX] (stddef.h): Do not allow header inclusion. |
||
Adhemerval Zanella
|
aebe100329 |
Add stardard definition on conform processing
This patch adds the -std=c99 option when preprocessing the data files from the conform testcases. It fixes an issue where the compiler may split the 'macro bool' defition from stdbool.h-data in two lines and thus breaking the conform script. |
||
Joseph Myers
|
5c7808498e |
Fix POSIX namespace for <bits/siginfo.h> (bug 16674).
<bits/siginfo.h> causes symbols ILL_*, FPE_*, SEGV_* BUS_*, CLD_*, POLL_* and TRAP_* to be exposed in <signal.h> (and <sys/wait.h>), even though those symbols are not in non-XSI POSIX before POSIX.1-2008 and even in POSIX.1-2008 the TRAP_* symbols are XSI-only. This patch conditions the symbols appropriately in the various <bits/siginfo.h> implementations (various <signal.h> and <sys/wait.h> conformtest issues remain for standards other than POSIX (1995/6)). Tested x86_64. [BZ #16674] * bits/siginfo.h (ILL_ILLOPC): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (ILL_BADIADDR): Likewise. (ILL_BREAK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (FPE_DECOVF): Likewise. (FPE_DECDIV): Likewise. (FPE_DECERR): Likewise. (FPE_INVASC): Likewise. (FPE_INVDEC): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (SEGV_PSTKOVF): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (TRAP_BRANCH): Likewise. (TRAP_HWBKPT): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/mips/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/s390/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/tile/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (ILL_DBLFLT): Likewise. (ILL_HARDWALL): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * sysdeps/unix/sysv/linux/x86/bits/siginfo.h (ILL_ILLOPC): Likewise. (ILL_ILLOPN): Likewise. (ILL_ILLADR): Likewise. (ILL_ILLTRP): Likewise. (ILL_PRVOPC): Likewise. (ILL_PRVREG): Likewise. (ILL_COPROC): Likewise. (ILL_BADSTK): Likewise. (FPE_INTDIV): Likewise. (FPE_INTOVF): Likewise. (FPE_FLTDIV): Likewise. (FPE_FLTOVF): Likewise. (FPE_FLTUND): Likewise. (FPE_FLTRES): Likewise. (FPE_FLTINV): Likewise. (FPE_FLTSUB): Likewise. (SEGV_MAPERR): Likewise. (SEGV_ACCERR): Likewise. (BUS_ADRALN): Likewise. (BUS_ADRERR): Likewise. (BUS_OBJERR): Likewise. (BUS_MCEERR_AR): Likewise. (BUS_MCEERR_AO): Likewise. (TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED]. (TRAP_TRACE): Likewise. (CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. (CLD_KILLED): Likewise. (CLD_DUMPED): Likewise. (CLD_TRAPPED): Likewise. (CLD_STOPPED): Likewise. (CLD_CONTINUED): Likewise. (POLL_IN): Likewise. (POLL_OUT): Likewise. (POLL_MSG): Likewise. (POLL_ERR): Likewise. (POLL_PRI): Likewise. (POLL_HUP): Likewise. * conform/Makefile (test-xfail-POSIX/signal.h/conform): Remove. (test-xfail-POSIX/sys/wait.h/conform): Likewise. |
||
Joseph Myers
|
bc61d27c61 |
Include all of <time.h> from <sched.h> for older standards (bug 16670).
This patch fixes one of the header namespace issues shown up by conformtest, <sched.h> failing to expose all symbols from <time.h> as required by older standards. The patch keeps the existing behavior if __USE_XOPEN2K is defined (the default; POSIX.1-2001 was the version that made it optional to expose these symbols), but ensures that all the symbols from <time.h> are exposed if an older standard is selected. Tested x86_64. [BZ #16670] * posix/sched.h [!__USE_XOPEN2K] (__need_time_t): Don't define before #include of <time.h>. [!__USE_XOPEN2K] (__need_timespec): Likewise. * conform/Makefile (test-xfail-POSIX/sched.h/conform): Remove. (test-xfail-UNIX98/sched.h/conform): Likewise. |
||
Joseph Myers
|
54ee292da7 |
conformtest: split up running of tests from makefile.
This patch changes the logic by which header conformance tests are run so that the makefiles run the tests for each (standard, header) pair separately rather than as a single test (there are 518 such pairs being tested at present). Since these tests are slow and previously couldn't be run in parallel, this obviously speeds up the whole test run significantly when using parallel testing. There are other benefits. These tests can now be marked as expected to fail at the level of (standard, header) pairs, meaning that regressions introduced by a header change are much more likely to be spotted (of course, such a regression could be a bug in the header or in the expectations, most of which have not been properly checked against the relevant standards). The patch introduces lists in conform/Makefile of the headers to test for each standard, with a new (quick) test for each standard that the list agrees with the set of headers for which there are in fact nonempty expectations for that standard. This means that each of the 518 pairs being tested is actually something meaningful to test rather than a null test. I also hope to use these lists of headers in various standards in future tests for namespace violations where a function in a standard is implemented to call a non-reserved name for a function outside that standard. Although there are a lot of tests now marked as expected to fail, I expect most of those to be easy to fix (whether with fixes to the expectations, the headers or both - if fixing a header bug, of course file it in Bugzilla first); only a limited number are likely to reflect actual missing features in glibc. Tested x86_64 (GCC 4.7 branch). It's quite possible some failures vary from platform to platform, in which case either additional XFAILs can be added here, or platform-specific header bugs (if applicable) the failures show up can be fixed. I made XFAILs unconditional for tests that should only fail for GCC 4.6 and earlier; we could make the GCC version available in the makefiles and condition these, but simply moving the XFAILing to a finer granularity seems a clear improvement on the previous state of the whole of conformtest being XFAILed. * Makeconfig (test-xfail-name): New variable. (evaluate-test): Use $(test-xfail-name) instead of $(@F:.out=) to compute variable name for expected failures. * conform/Makefile (conformtest-headers-data): New variable. (conformtest-standards): Likewise. (conformtest-headers-ISO): Likewise. (conformtest-headers-ISO99): Likewise. (conformtest-headers-ISO11): Likewise. (conformtest-headers-POSIX): Likewise. (conformtest-headers-XPG3): Likewise. (conformtest-headers-XPG4): Likewise. (conformtest-headers-UNIX98): Likewise. (conformtest-headers-XOPEN2K): Likewise. (conformtest-headers-POSIX2008): Likewise. (conformtest-headers-XOPEN2K8): Likewise. (conformtest-header-list-base): Likewise. (conformtest-header-list-tests): Likewise. (conformtest-header-base): Likewise. (conformtest-header-tests): Likewise. (tests-special): Add $(conformtest-header-list-tests). If [$(fast-check) && !$(cross-compiling)], add $(conformtest-header-tests) instead of $(objpfx)run-conformtest.out. (generated): Add $(conformtest-header-list-base). If [$(fast-check) && !$(cross-compiling)], add $(conformtest-header-base). Remove previous setting. ($(conformtest-header-list-tests)): New target. (test-xfail-run-conformtest): Remove variable. ($(objpfx)run-conformtest.out): Remove target. (test-xfail-ISO11/complex.h/conform): New variable. (test-xfail-ISO11/stdalign.h/conform): Likewise. (test-xfail-ISO11/stdnoreturn.h/conform): Likewise. (test-xfail-XPG3/varargs.h/conform): Likewise. (test-xfail-XPG4/varargs.h/conform): Likewise. (test-xfail-UNIX98/varargs.h/conform): Likewise. (test-xfail-XPG4/ndbm.h/conform): Likewise. (test-xfail-UNIX98/ndbm.h/conform): Likewise. (test-xfail-XOPEN2K/ndbm.h/conform): Likewise. (test-xfail-XOPEN2K8/ndbm.h/conform): Likewise. (test-xfail-XPG3/fcntl.h/conform): Likewise. (test-xfail-XPG3/ftw.h/conform): Likewise. (test-xfail-XPG3/grp.h/conform): Likewise. (test-xfail-XPG3/langinfo.h/conform): Likewise. (test-xfail-XPG3/limits.h/conform): Likewise. (test-xfail-XPG3/pwd.h/conform): Likewise. (test-xfail-XPG3/search.h/conform): Likewise. (test-xfail-XPG3/signal.h/conform): Likewise. (test-xfail-XPG3/stdio.h/conform): Likewise. (test-xfail-XPG3/stdlib.h/conform): Likewise. (test-xfail-XPG3/string.h/conform): Likewise. (test-xfail-XPG3/sys/ipc.h/conform): Likewise. (test-xfail-XPG3/sys/msg.h/conform): Likewise. (test-xfail-XPG3/sys/sem.h/conform): Likewise. (test-xfail-XPG3/sys/shm.h/conform): Likewise. (test-xfail-XPG3/sys/stat.h/conform): Likewise. (test-xfail-XPG3/sys/types.h/conform): Likewise. (test-xfail-XPG3/sys/wait.h/conform): Likewise. (test-xfail-XPG3/termios.h/conform): Likewise. (test-xfail-XPG3/time.h/conform): Likewise. (test-xfail-XPG3/unistd.h/conform): Likewise. (test-xfail-XPG4/arpa/inet.h/conform): Likewise. (test-xfail-XPG4/fcntl.h/conform): Likewise. (test-xfail-XPG4/langinfo.h/conform): Likewise. (test-xfail-XPG4/netdb.h/conform): Likewise. (test-xfail-XPG4/netinet/in.h/conform): Likewise. (test-xfail-XPG4/signal.h/conform): Likewise. (test-xfail-XPG4/stdio.h/conform): Likewise. (test-xfail-XPG4/stdlib.h/conform): Likewise. (test-xfail-XPG4/stropts.h/conform): Likewise. (test-xfail-XPG4/sys/ipc.h/conform): Likewise. (test-xfail-XPG4/sys/msg.h/conform): Likewise. (test-xfail-XPG4/sys/sem.h/conform): Likewise. (test-xfail-XPG4/sys/shm.h/conform): Likewise. (test-xfail-XPG4/sys/socket.h/conform): Likewise. (test-xfail-XPG4/sys/stat.h/conform): Likewise. (test-xfail-XPG4/sys/time.h/conform): Likewise. (test-xfail-XPG4/sys/types.h/conform): Likewise. (test-xfail-XPG4/sys/wait.h/conform): Likewise. (test-xfail-XPG4/termios.h/conform): Likewise. (test-xfail-XPG4/ucontext.h/conform): Likewise. (test-xfail-XPG4/unistd.h/conform): Likewise. (test-xfail-XPG4/utmpx.h/conform): Likewise. (test-xfail-POSIX/sched.h/conform): Likewise. (test-xfail-POSIX/signal.h/conform): Likewise. (test-xfail-POSIX/sys/wait.h/conform): Likewise. (test-xfail-POSIX/tar.h/conform): Likewise. (test-xfail-UNIX98/arpa/inet.h/conform): Likewise. (test-xfail-UNIX98/fcntl.h/conform): Likewise. (test-xfail-UNIX98/langinfo.h/conform): Likewise. (test-xfail-UNIX98/netdb.h/conform): Likewise. (test-xfail-UNIX98/netinet/in.h/conform): Likewise. (test-xfail-UNIX98/sched.h/conform): Likewise. (test-xfail-UNIX98/signal.h/conform): Likewise. (test-xfail-UNIX98/stdio.h/conform): Likewise. (test-xfail-UNIX98/stdlib.h/conform): Likewise. (test-xfail-UNIX98/stropts.h/conform): Likewise. (test-xfail-UNIX98/sys/ipc.h/conform): Likewise. (test-xfail-UNIX98/sys/msg.h/conform): Likewise. (test-xfail-UNIX98/sys/sem.h/conform): Likewise. (test-xfail-UNIX98/sys/shm.h/conform): Likewise. (test-xfail-UNIX98/sys/socket.h/conform): Likewise. (test-xfail-UNIX98/sys/time.h/conform): Likewise. (test-xfail-UNIX98/sys/wait.h/conform): Likewise. (test-xfail-UNIX98/ucontext.h/conform): Likewise. (test-xfail-UNIX98/unistd.h/conform): Likewise. (test-xfail-UNIX98/utmpx.h/conform): Likewise. (test-xfail-XOPEN2K/aio.h/conform): Likewise. (test-xfail-XOPEN2K/arpa/inet.h/conform): Likewise. (test-xfail-XOPEN2K/fcntl.h/conform): Likewise. (test-xfail-XOPEN2K/langinfo.h/conform): Likewise. (test-xfail-XOPEN2K/math.h/conform): Likewise. (test-xfail-XOPEN2K/mqueue.h/conform): Likewise. (test-xfail-XOPEN2K/netdb.h/conform): Likewise. (test-xfail-XOPEN2K/netinet/in.h/conform): Likewise. (test-xfail-XOPEN2K/semaphore.h/conform): Likewise. (test-xfail-XOPEN2K/signal.h/conform): Likewise. (test-xfail-XOPEN2K/stdarg.h/conform): Likewise. (test-xfail-XOPEN2K/stdio.h/conform): Likewise. (test-xfail-XOPEN2K/stropts.h/conform): Likewise. (test-xfail-XOPEN2K/sys/ipc.h/conform): Likewise. (test-xfail-XOPEN2K/sys/msg.h/conform): Likewise. (test-xfail-XOPEN2K/sys/sem.h/conform): Likewise. (test-xfail-XOPEN2K/sys/shm.h/conform): Likewise. (test-xfail-XOPEN2K/sys/socket.h/conform): Likewise. (test-xfail-XOPEN2K/sys/wait.h/conform): Likewise. (test-xfail-XOPEN2K/termios.h/conform): Likewise. (test-xfail-XOPEN2K/tgmath.h/conform): Likewise. (test-xfail-XOPEN2K/ucontext.h/conform): Likewise. (test-xfail-XOPEN2K/utmpx.h/conform): Likewise. (test-xfail-POSIX2008/arpa/inet.h/conform): Likewise. (test-xfail-POSIX2008/fcntl.h/conform): Likewise. (test-xfail-POSIX2008/netdb.h/conform): Likewise. (test-xfail-POSIX2008/netinet/in.h/conform): Likewise. (test-xfail-POSIX2008/signal.h/conform): Likewise. (test-xfail-POSIX2008/stropts.h/conform): Likewise. (test-xfail-POSIX2008/sys/socket.h/conform): Likewise. (test-xfail-POSIX2008/sys/wait.h/conform): Likewise. (test-xfail-XOPEN2K8/arpa/inet.h/conform): Likewise. (test-xfail-XOPEN2K8/fcntl.h/conform): Likewise. (test-xfail-XOPEN2K8/limits.h/conform): Likewise. (test-xfail-XOPEN2K8/math.h/conform): Likewise. (test-xfail-XOPEN2K8/netdb.h/conform): Likewise. (test-xfail-XOPEN2K8/netinet/in.h/conform): Likewise. (test-xfail-XOPEN2K8/signal.h/conform): Likewise. (test-xfail-XOPEN2K8/stdio.h/conform): Likewise. (test-xfail-XOPEN2K8/stropts.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/ipc.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/msg.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/select.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/sem.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/shm.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/socket.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/time.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/wait.h/conform): Likewise. (test-xfail-XOPEN2K8/termios.h/conform): Likewise. (test-xfail-XOPEN2K8/tgmath.h/conform): Likewise. (test-xfail-XOPEN2K8/utmpx.h/conform): Likewise. (conformtest-cc-flags): Likewise. ($(conformtest-header-tests): New target. * conform/check-header-lists.sh: New file. * conform/run-conformtest.sh: Remove. |
||
Joseph Myers
|
a00f522af8 |
conformtest: clean up POSIX expectations for semaphore.h, signal.h, tar.h.
Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up those for semaphore.h, signal.h and tar.h (including various corrections for other standards for the expectations affected by this patch). Tested x86_64. (Some of the failures for signal.h shown up by this patch correcting expectations for that header are among the reasons for posix/annexc being expected to fail. The goal is for conformtest eventually to replace posix/annexc and stdlib/isomac once it has all relevant functionality, and for the loop over standards and headers in conformtest to convert to separate makefile targets for each combination, so they can be run in parallel and so that xfails can be more specific than the present xfailing of the whole of conformtest.) * conform/conformtest.pl: Allow ' and \ in values given for constants. * conform/data/semaphore.h-data [POSIX] (fcntl.h): Allow header inclusion. [POSIX] (sys/types.h): Likewise. [POSIX2008 || XOPEN2K8] (sys/types.h): Don't allow header inclusion. [POSIX || UNIX98 || XOPEN2K] (time.h): Don't allow header inclusion. * conform/data/signal.h-data (SIGIO): Remove expectation. [XPG3] (SIGBUS): Do not expect. [POSIX || XPG3] (SIGPOLL): Likewise. [POSIX || XPG3] (SIGPROF): Likewise. [POSIX || XPG3] (SIGSYS): Likewise. [XPG3] (SIGTRAP): Likewise. [POSIX || XPG3] (SIGURG): Likewise. [POSIX || XPG3] (SIGVTALRM): Likewise. [POSIX || XPG3] (SIGXCPU): Likewise. [POSIX || XPG3] (SIGXFSZ): Likewise. [POSIX] (SA_SIGINFO): Expect. [XPG3] (siginfo_t): Do not expect type or contents. [POSIX] (si_pid): Do not expect element. [POSIX] (si_uid): Likewise. [POSIX] (si_addr): Likewise. [POSIX] (si_status): Likewise. [POSIX] (si_band): Likewise. [XPG4] (si_value): Likewise. [POSIX || XPG3] (ILL_ILLOPC): Do not expect. [POSIX || XPG3] (ILL_ILLOPN): Likewise. [POSIX || XPG3] (ILL_ILLADR): Likewise. [POSIX || XPG3] (ILL_ILLTRP): Likewise. [POSIX || XPG3] (ILL_PRVOPC): Likewise. [POSIX || XPG3] (ILL_PRVREG): Likewise. [POSIX || XPG3] (ILL_COPROC): Likewise. [POSIX || XPG3] (ILL_BADSTK): Likewise. [POSIX || XPG3] (FPE_INTDIV): Likewise. [POSIX || XPG3] (FPE_INTOVF): Likewise. [POSIX || XPG3] (FPE_FLTDIV): Likewise. [POSIX || XPG3] (FPE_FLTOVF): Likewise. [POSIX || XPG3] (FPE_FLTUND): Likewise. [POSIX || XPG3] (FPE_FLTRES): Likewise. [POSIX || XPG3] (FPE_FLTINV): Likewise. [POSIX || XPG3] (FPE_FLTSUB): Likewise. [POSIX || XPG3] (SEGV_MAPERR): Likewise. [POSIX || XPG3] (SEGV_ACCERR): Likewise. [POSIX || XPG3] (BUS_ADRALN): Likewise. [POSIX || XPG3] (BUS_ADRERR): Likewise. [POSIX || XPG3] (BUS_OBJERR): Likewise. [POSIX || XPG3] (CLD_EXITED): Likewise. [POSIX || XPG3] (CLD_KILLED): Likewise. [POSIX || XPG3] (CLD_DUMPED): Likewise. [POSIX || XPG3] (CLD_TRAPPED): Likewise. [POSIX || XPG3] (CLD_STOPPED): Likewise. [POSIX || XPG3] (CLD_CONTINUED): Likewise. [POSIX || XPG3] (POLL_IN): Likewise. [POSIX || XPG3] (POLL_OUT): Likewise. [POSIX || XPG3] (POLL_MSG): Likewise. [POSIX || XPG3] (POLL_ERR): Likewise. [POSIX || XPG3] (POLL_PRI): Likewise. [POSIX || XPG3] (POLL_HUP): Likewise. [POSIX || XPG3 || POSIX2008] (TRAP_BRKPT): Likewise. [POSIX || XPG3 || POSIX2008] (TRAP_TRACE): Likewise. (SIG*): Do not allow. [XPG3] (si_*): Likewise. [XPG3] (SI_*): Likewise. [XPG3 || XPG4] (sigev_*): Likewise. [XPG3 || XPG4] (SIGEV_*): Likewise. [XPG3 || XPG4] (sival_*): Likewise. [POSIX || XPG3 || XPG4] (uc_*): Likewise. [POSIX || XPG3] (BUS_*): Likewise. [POSIX || XPG3] (CLD_*): Likewise. [POSIX || XPG3] (FPE_*): Likewise. [POSIX || XPG3] (ILL_*): Likewise. [POSIX || XPG3] (POLL_*): Likewise. [POSIX || XPG3] (SEGV_*): Likewise. [POSIX || XPG3 || POSIX2008] (SS_*): Likewise. [POSIX || XPG3 || POSIX2008] (SV_*): Likewise. [POSIX || XPG3 || POSIX2008] (TRAP_*): Likewise. [POSIX || XPG3 || POSIX2008] (ss_*): Likewise. [POSIX || XPG3 || POSIX2008] (sv_*): Likewise. * conform/data/tar.h-data (TMAGLEN): Use macro-int-constant. Specify type and value. (TVERSLEN): Likewise. (REGTYPE): Likewise. (AREGTYPE): Likewise. (LNKTYPE): Likewise. (SYMTYPE): Likewise. (CHRTYPE): Likewise. (BLKTYPE): Likewise. (DIRTYPE): Likewise. (FIFOTYPE): Likewise. (CONTTYPE): Likewise. (TSUID): Likewise. (TSGID): Likewise. (TSVTX): Likewise. (TUREAD): Likewise. (TUWRITE): Likewise. (TUEXEC): Likewise. (TGREAD): Likewise. (TGWRITE): Likewise. (TGEXEC): Likewise. (TOREAD): Likewise. (TOWRITE): Likewise. (TOEXEC): Likewise. [POSIX] (TSVTX): Expect constant. |
||
Joseph Myers
|
f214606a0e |
Enumerate tests with special rules in tests-special variable.
This patch is a revised and updated version of <https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html>. In order to generate overall summaries of the results of all tests in the glibc testsuite, we need to identify and concatenate the files with the results of individual tests. Tomas Dohnalek's patch used $(common-objpfx)*/*.test-result for this. However, the normal glibc approach is explicit enumeration of the expected set of files with a given property, rather than all files matching some pattern like that. Furthermore, we would like to be able to mark tests as UNRESOLVED if the file with their results is for some reason missing, and in future we would like to be able to mark tests as UNSUPPORTED if they are disabled for a particular configuration (rather than simply having them missing from the list of tests as at present). Such handling of tests that were not run or did not record results requires an explicit enumeration of tests. For the tests following the default makefile rules, $(tests) (and $(xtests)) provides such an enumeration. Others, however, are added directly as dependencies of the "tests" and "xtests" makefile targets. This patch changes the makefiles to put them in variables tests-special and xtests-special, with appropriate dependencies on the tests listed there then being added centrally. Those variables are used in Rules and so need to be set before Rules is included in a subdirectory makefile, which is often earlier in the makefile than the dependencies were present before. We previously discussed the question of where to include Rules; see the question at <https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, and a discussion in <https://sourceware.org/ml/libc-alpha/2013-01/msg00337.html> of why Rules is included early rather than late in subdirectory makefiles. It was necessary to avoid an indirection through the check-abi target and get the check-abi-* targets for individual libraries into the tests-special variable. The intl/ test $(objpfx)tst-gettext.out, previously built only because of dependencies from other tests, was also added to tests-special for the same reason. The entries in tests-special are the full makefile targets, complete with $(objpfx) and .out. If a future change causes tests to be named consistently with a .out suffix, this can be changed to include just the path relative to $(objpfx), without .out. Tested x86_64, including that the same set of files is generated in the build directory by a build and testsuite run both before and after the patch (except for changes to the elf/tst-null-argv.debug.out.<number> file name), and a build with run-built-tests=no to verify there aren't any more obvious instances of the issue Marcus Shawcroft reported with a previous version in <https://sourceware.org/ml/libc-alpha/2014-01/msg00462.html>. * Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. (tests): Depend on $(tests-special). * Makerules (check-abi-list): New variable. (check-abi): Depend on $(check-abi-list). [$(subdir) = elf] (tests-special): Add $(objpfx)check-abi-libc.out. [$(build-shared) = yes && subdir] (tests-special): Add $(check-abi-list). [$(build-shared) = yes && subdir] (tests): Do not depend on check-abi. * Rules (tests): Depend on $(tests-special). (xtests): Depend on $(xtests-special). * catgets/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * conform/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * elf/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * grp/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * iconv/Makefile (xtests): Change dependencies to .... (xtests-special): ... additions to this variable. * iconvdata/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * intl/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. Also add $(objpfx)tst-gettext.out. * io/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * libio/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * malloc/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * misc/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * nptl/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * nptl_db/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * posix/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. (xtests): Change dependencies to .... (xtests-special): ... additions to this variable. * resolv/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. (xtests): Change dependencies to .... (xtests-special): ... additions to this variable. * stdio-common/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. (do-tst-unbputc): Remove target. (do-tst-printf): Likewise. * stdlib/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * string/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. * sysdeps/x86/Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. localedata: * Makefile (tests): Change dependencies to .... (tests-special): ... additions to this variable. |
||
Joseph Myers
|
81700b5363 |
conformtest: correct set of standards for which more headers are tested.
Continuing the corrections to which headers conformtest tests for which standards, this patch corrects conformtest mistakes regarding which headers to test for the remaining standards (XOPEN2K POSIX2008 XOPEN2K8). Tested x86_64. 2014-03-05 Joseph Myers <joseph@codesourcery.com> * conform/data/netinet/tcp.h-data [POSIX2008 || XOPEN2K8]: Enable whole file. * conform/data/sys/timeb.h-data [POSIX2008 || XOPEN2K8]: Disable whole file. * conform/data/sys/uio.h-data [POSIX2008]: Likewise. * conform/data/ucontext.h-data [POSIX2008 || XOPEN2K8]: Likewise. |
||
Joseph Myers
|
2ea18461d3 |
conformtest: correct set of standards for which some headers are tested.
Reviewing the sets of headers for which conformtest has expectations for various standards showed up cases where headers had expectations for standards not including those headers, or were missing expectations for a standard that did include the header. This patch fixes easy cases of this (largely disabling tests for standards for which they are inapplicable). Tested x86_64. * conform/data/aio.h-data [XPG3 || XPG4]: Disable whole file. * conform/data/arpa/inet.h-data [XPG3]: Likewise. * conform/data/dlfcn.h-data [XPG3 || XPG4]: Likewise. * conform/data/fmtmsg.h-data [XPG3]: Likewise. * conform/data/libgen.h-data [XPG3]: Likewise. * conform/data/mqueue.h-data [XPG3 || XPG4]: Likewise. * conform/data/ndbm.h-data [XPG3]: Likewise. * conform/data/net/if.h-data [XPG3 || XPG4 || UNIX98]: Likewise. * conform/data/netdb.h-data [XPG3]: Likewise. * conform/data/netinet/in.h-data [XPG3]: Likewise. * conform/data/poll.h-data [XPG3]: Likewise. * conform/data/spawn.h-data [XPG3 || XPG4 || UNIX98]: Likewise. * conform/data/strings.h-data [XPG3]: Likewise. * conform/data/stropts.h-data [XPG3]: Likewise. * conform/data/sys/mman.h-data [XPG3]: Likewise. * conform/data/sys/resource.h-data [XPG3]: Likewise. * conform/data/sys/select.h-data [XPG3 || XPG4 || UNIX98]: Likewise. * conform/data/sys/statvfs.h-data [XPG3]: Likewise. * conform/data/sys/time.h-data [XPG3]: Likewise. * conform/data/sys/timeb.h-data [XPG3]: Likewise. * conform/data/sys/uio.h-data [XPG3]: Likewise. * conform/data/sys/un.h-data [XPG3]: Likewise. * conform/data/syslog.h-data [XPG3]: Likewise. * conform/data/ucontext.h-data [XPG3]: Likewise. * conform/data/utmpx.h-data [XPG3]: Likewise. * conform/data/varargs.h-data [UNIX98]: Enable file. |
||
Joseph Myers
|
f8c17e79fa |
Support expected failures in .test-result files.
This patch, an updated version of <https://sourceware.org/ml/libc-alpha/2014-01/msg00195.html>, makes it possible for .test-result files for individual tests to contain XPASS and XFAIL rather than PASS and FAIL in cases where failure is expected. This replaces the marking of two individual tests with "-" to cause them to be expected at makefile level to fail; evaluate-test.sh will ensure it exits with status 0 for an expected failure. Tested x86_64. * scripts/evaluate-test.sh: Take new argument indicating whether failure is expected. * Makeconfig (evaluate-test): Pass argument to evaluate-test.sh indicating whether failure is expected. * conform/Makefile (test-xfail-run-conformtest): New variable. ($(objpfx)run-conformtest.out): Don't expect to fail at makefile level. * posix/Makefile (test-xfail-annexc): New variable. ($(objpfx)annexc.out): Don't expect to fail at makefile level. |
||
Joseph Myers
|
a5f891ac8d |
Consistently include Makeconfig after defining subdir.
In <https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html> I noted it was necessary to add includes of Makeconfig early in various subdirectory makefiles for the tests-special variable settings added by that patch to be conditional on configuration information. No-one commented on the general question there of whether Makeconfig should always be included immediately after the definition of subdir. This patch implements that early inclusion of Makeconfig in each directory (which is a lot easier than consistent placement of includes of Rules). Includes are added if needed, or moved up if already present. Subdirectory "all:" targets are removed, since Makeconfig provides one. There is potential for further cleanups I haven't done. Rules and Makerules have code such as ifneq "$(findstring env,$(origin headers))" "" headers := endif to override to empty any value of various variables that came from the environment. I think there is a case for Makeconfig setting all the subdirectory variables (other than subdir) to empty to ensure no outside value is going to take effect if a subdirectory fails to define a variable. (A list of such variables, possibly out of date and incomplete, is in manual/maint.texi.) Rules and Makerules would give errors if Makeconfig hadn't already been included, instead of including it themselves. The special code to override values coming from the environment would then be obsolete and could be removed. Tested x86_64, including that installed binaries are identical before and after the patch. * argp/Makefile: Include Makeconfig immediately after defining subdir. * assert/Makefile: Likewise. * benchtests/Makefile: Likewise. * catgets/Makefile: Likewise. * conform/Makefile: Likewise. * crypt/Makefile: Likewise. * csu/Makefile: Likewise. (all): Remove target. * ctype/Makefile: Include Makeconfig immediately after defining subdir. * debug/Makefile: Likewise. * dirent/Makefile: Likewise. * dlfcn/Makefile: Likewise. * gmon/Makefile: Likewise. * gnulib/Makefile: Likewise. * grp/Makefile: Likewise. * gshadow/Makefile: Likewise. * hesiod/Makefile: Likewise. * hurd/Makefile: Likewise. (all): Remove target. * iconvdata/Makefile: Include Makeconfig immediately after defining subdir. * inet/Makefile: Likewise. * intl/Makefile: Likewise. * io/Makefile: Likewise. * libio/Makefile: Likewise. (all): Remove target. * locale/Makefile: Include Makeconfig immediately after defining subdir. * login/Makefile: Likewise. * mach/Makefile: Likewise. (all): Remove target. * malloc/Makefile: Include Makeconfig immediately after defining subdir. (all): Remove target. * manual/Makefile: Include Makeconfig immediately after defining subdir. * math/Makefile: Likewise. * misc/Makefile: Likewise. * nis/Makefile: Likewise. * nss/Makefile: Likewise. * po/Makefile: Likewise. (all): Remove target. * posix/Makefile: Include Makeconfig immediately after defining subdir. * pwd/Makefile: Likewise. * resolv/Makefile: Likewise. * resource/Makefile: Likewise. * rt/Makefile: Likewise. * setjmp/Makefile: Likewise. * shadow/Makefile: Likewise. * signal/Makefile: Likewise. * socket/Makefile: Likewise. * soft-fp/Makefile: Likewise. * stdio-common/Makefile: Likewise. * stdlib/Makefile: Likewise. * streams/Makefile: Likewise. * string/Makefile: Likewise. * sunrpc/Makefile: Likewise. (all): Remove target. * sysvipc/Makefile: Include Makeconfig immediately after defining subdir. * termios/Makefile: Likewise. * time/Makefile: Likewise. * timezone/Makefile: Likewise. (all): Remove target. * wcsmbs/Makefile: Include Makeconfig immediately after defining subdir. * wctype/Makefile: Likewise. libidn/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir. localedata/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir. (all): Remove target. nptl/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir. nptl_db/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir. |
||
Joseph Myers
|
f0881698bf |
Generate .test-result files for tests with special rules.
This patch, an updated version of <https://sourceware.org/ml/libc-alpha/2014-01/msg00194.html> now proposed for inclusion in glibc, extends the generation of PASS and FAIL status in .test-result files for individual tests to cover tests with their own custom makefile rules. This is just adding $(evaluate-test) calls to all such rules, since tests with multiple commands were previously split into separate tests. Note that the tests the makefiles expect to fail (posix/annexc and conformtest) currently get FAIL listed in the .test-result file, rather than XFAIL; a subsequent patch will introduce a better XFAIL mechanism. Tested x86_64. * Makefile ($(objpfx)c++-types-check.out): Use $(evaluate-test). ($(objpfx)check-local-headers.out): Likewise. ($(objpfx)begin-end-check.out): Likewise. * Makerules (check-abi-%.out): Likewise. * catgets/Makefile ($(objpfx)test1.cat): Likewise. ($(objpfx)test2.cat): Likewise. ($(objpfx)de/libc.cat): Likewise. ($(objpfx)test-gencat.out): Likewise. * conform/Makefile ($(objpfx)run-conformtest.out): Likewise. * elf/Makefile ($(objpfx)order-cmp.out): Likewise. ($(objpfx)noload-mem): Likewise. ($(objpfx)tst-pathopt.out): Likewise. ($(objpfx)tst-rtld-load-self.out): Likewise. ($(objpfx)tst-array1-cmp.out): Likewise. ($(objpfx)tst-array1-static-cmp.out): Likewise. ($(objpfx)tst-array2-cmp.out): Likewise. ($(objpfx)tst-array3-cmp.out): Likewise. ($(objpfx)tst-array4-cmp.out): Likewise. ($(objpfx)tst-array5-cmp.out): Likewise. ($(objpfx)tst-array5-static-cmp.out): Likewise. ($(objpfx)check-textrel.out): Likewise. ($(objpfx)check-execstack.out): Likewise. ($(objpfx)check-localplt.out): Likewise. ($(objpfx)order2-cmp.out): Likewise. ($(objpfx)tst-leaks1-mem): Likewise. ($(objpfx)tst-leaks1-static-mem): Likewise. ($(objpfx)tst-initorder-cmp.out): Likewise. ($(objpfx)tst-initorder2-cmp.out): Likewise. ($(objpfx)tst-unused-dep.out): Likewise. ($(objpfx)tst-unused-dep-cmp.out): Likewise. * grp/Makefile ($(objpfx)tst_fgetgrent.out): Likewise. * iconv/Makefile (test-iconvconfig): Likewise. * iconvdata/Makefile ($(objpfx)mtrace-tst-loading): Likewise. ($(objpfx)iconv-test.out): Likewise. ($(objpfx)tst-tables.out): Likewise. * intl/Makefile ($(objpfx)mtrace-tst-gettext): Likewise. ($(objpfx)tst-gettext.out): Likewise. ($(objpfx)tst-translit.out): Likewise. ($(objpfx)tst-gettext2.out): Likewise. ($(objpfx)tst-gettext4.out): Likewise. ($(objpfx)tst-gettext6.out): Likewise. * io/Makefile ($(objpfx)ftwtest.out): Likewise. * libio/Makefile ($(objpfx)test-freopen.out): Likewise. ($(objpfx)tst-fopenloc-cmp.out): Likewise. ($(objpfx)tst-fopenloc-mem.out): Likewise. * malloc/Makefile ($(objpfx)tst-mtrace.out): Likewise. * misc/Makefile ($(objpfx)tst-error1-mem): Likewise. * posix/Makefile ($(objpfx)globtest.out): Likewise. ($(objpfx)wordexp-tst.out): Likewise. ($(objpfx)annexc.out): Likewise. ($(objpfx)tst-fnmatch-mem): Likewise. ($(objpfx)bug-regex2-mem): Likewise. ($(objpfx)bug-regex14-mem): Likewise. ($(objpfx)bug-regex21-mem): Likewise. ($(objpfx)bug-regex31-mem): Likewise. ($(objpfx)tst-vfork3-mem): Likewise. ($(objpfx)tst-rxspencer-no-utf8-mem): Likewise. ($(objpfx)tst-pcre-mem): Likewise. ($(objpfx)tst-boost-mem): Likewise. ($(objpfx)tst-getconf.out): Likewise. ($(objpfx)bug-ga2-mem): Likewise. ($(objpfx)bug-glob2-mem): Likewise. * resolv/Makefile ($(objpfx)mtrace-tst-leaks): Likewise. ($(objpfx)mtrace-tst-leaks2): Likewise. * stdio-common/Makefile ($(objpfx)tst-unbputc.out): Likewise. ($(objpfx)tst-printf.out): Likewise. ($(objpfx)tst-setvbuf1.out): Likewise. ($(objpfx)tst-setvbuf1-cmp.out): Likewise. * stdlib/Makefile ($(objpfx)isomac.out): Likewise. ($(objpfx)tst-fmtmsg.out): Likewise. * string/Makefile ($(objpfx)tst-svc-cmp.out): Likewise. * sysdeps/x86/Makefile ($(objpfx)tst-xmmymm.out): Likewise. localedata: * Makefile ($(objpfx)sort-test.out): Use $(evaluate-test). ($(objpfx)tst-fmon.out): Likewise. ($(objpfx)tst-numeric.out): Likewise. ($(objpfx)tst-locale.out): Likewise. ($(objpfx)tst-rpmatch.out): Likewise. ($(objpfx)tst-trans.out): Likewise. ($(objpfx)tst-mbswcs.out): Likewise. ($(objpfx)tst-ctype.out): Likewise. ($(objpfx)tst-wctype.out): Likewise. ($(objpfx)tst-langinfo.out): Likewise. ($(objpfx)mtrace-tst-leaks): Likewise. nptl: * Makefile ($(objpfx)tst-stack3-mem): Use $(evaluate-test). ($(objpfx)tst-tls6.out): Likewise. ($(objpfx)tst-cleanup0.out): Likewise. ($(objpfx)tst-cleanup0-cmp.out): Likewise. ($(objpfx)tst-cancel-wrappers.out): Likewise. ($(objpfx)tst-oddstacklimit.out): Likewise. nptl_db: * Makefile ($(objpfx)db-symbols.out): Use $(evaluate-test). |