Release/2.20
Contents
1. Current status
The release branch of glibc-2.20 is maintained by Allan McRae ( allan@archlinux.org ) and is planned for release July 31st 2014. The freeze in preparation for this release will occur on July 1st 2014.
The ref structure of this branch is:
- release/2.20/master: main branch
- glibc-2.20.N: revision releases tagged out of release/2.20/master
These people are interested in contents and further revisions tagged on the branch:
Carlos O'Donell <carlos@redhat.com> - The 2.20 release is used in Fedora 21.
The general policies for release branches apply to this branch. Do you think a certain bugfix should be included in this branch?
- Is the fix committed in master? It has to be, unless it's not applicable to master (e.g. code has been rewritten meantime).
- Do you have commit permissions? If so, go ahead if you think it's reasonably safe. break;
- Can you handle Git yourself? Then you can clone the glibc repository, cherry-pick the appropriate fixes, push your branch out and send a pull request at libc-alpha. break;
- Add the glibc_2.20 keyword to the appropriate bug report.
- If there is no appropriate bug report, send a request for the fix to be included to libc-alpha.
A revision release is tagged either when some critical bug-fix appears, or after some period of real-world testing, usually mainly in some SUSE distribution branch (but other distributions are welcome to run latest release/2.20/master as well, more so if they tell me about it!).
2. Planning
What things do we want to accomplish this release?
2.1. Release blockers?
s390 ABI issue (jmp_buf/ucontext_t)
Thread Properties API - not ready for this release.
fcntl-linux.h: add new definitions and manual updates for open file description locks - http://patchwork.sourceware.org/patch/1774/ - Done!
PowerPC - fix termios definitions - https://sourceware.org/ml/libc-alpha/2014-07/msg00487.html)
Require to fix various packages build - https://bugzilla.redhat.com/show_bug.cgi?id=1122714
2.2. Desirable this release?
- Finish -Wundef cleanup: no -Wundef warnings in build on any supported configuration. Consolidated list of outstanding warnings on i386 and x86_64 follows. Other architectures may have other outstanding warnings that are not covered here:
167 IS_IN_libc 171 IS_IN_libc 1 ABI_libm_GLIBC_2_19 3 HAVE_IFUNC 5 MMAP2_PAGE_SHIFT 2 _POSIX_BASE 2 _POSIX_C_LANG_SUPPORT 2 _POSIX_C_LANG_SUPPORT_R 2 _POSIX_DEVICE_IO 2 _POSIX_DEVICE_SPCIFIC 2 _POSIX_DEVICE_SPCIFIC_R 2 _POSIX_FD_MGMT 2 _POSIX_FIFO 2 _POSIX_FILE_ATTRIBUTES 2 _POSIX_FILE_LOCKING 2 _POSIX_FILE_SYSTEM 2 _POSIX_MULTI_PROCESS 2 _POSIX_NETWORKING 2 _POSIX_PII 2 _POSIX_PII_INTERNET 2 _POSIX_PII_INTERNET_DGRAM 2 _POSIX_PII_INTERNET_STREAM 2 _POSIX_PII_OSI 2 _POSIX_PII_OSI_CLTS 2 _POSIX_PII_OSI_COTS 2 _POSIX_PII_OSI_M 2 _POSIX_PII_SOCKET 2 _POSIX_PII_XTI 2 _POSIX_PIPE 2 _POSIX_POLL 2 _POSIX_REGEX_VERSION 2 _POSIX_SELECT 2 _POSIX_SINGLE_PROCESS 2 _POSIX_SYSTEM_DATABASE 2 _POSIX_SYSTEM_DATABASE_R 2 _POSIX_USER_GROUPS 2 _POSIX_USER_GROUPS_R 5 _POSIX_V6_ILP32_OFFBIG 5 _POSIX_V6_LP64_OFF64 5 _POSIX_V6_LPBIG_OFFBIG 5 _POSIX_V7_LPBIG_OFFBIG 5 _XBS5_ILP32_OFF32 5 _XBS5_ILP32_OFFBIG 5 _XBS5_LP64_OFF64 5 _XBS5_LPBIG_OFFBIG 7 _POSIX_V6_ILP32_OFF32 9 _POSIX_V7_ILP32_OFF32 9 _POSIX_V7_ILP32_OFFBIG 9 _POSIX_V7_LP64_OFF64 9 __ASSUME_IPC64
- All _POSIX_* and _XBS_* warnings ought to have a single fix.
De-add-on-ification of NPTL. - Done!
New POSIX compliant fmemopen - Moved to 2.21
- PowerPC:
memmove optimization for POWER7 - https://sourceware.org/ml/libc-alpha/2014-06/msg00597.html
memcpy alignment fix for POWER7 - https://sourceware.org/ml/libc-alpha/2014-06/msg00355.html
strcat optimization for POWER7 - https://sourceware.org/ml/libc-alpha/2014-06/msg00306.html
- x86
Add x86 32 bit vDSO time function support - https://sourceware.org/ml/libc-alpha/2014-06/msg00918.html (moved to 2.21)
Fix for setx*id checking: https://sourceware.org/ml/libc-alpha/2014-07/msg00048.html
- alpha
3. Known Issues
3.1. Build and test issues
Describe build and test issues for each architecture, or confirm a clean build with no testsuite failures. The list below is not a complete list of ABI variants; testing should try to cover the different ABI variants as far as possible.
Build system: UNAME -a, GCC?, Binutils?, Kernel ?
TRIMMED LIST OF FAILURES.
3.1.1. Architecture-independent
On systems with limited memory, stdio-common/test-vfprintf and stdio-common/bug22 may fail (bug 14231).
On some systems, a race condition may cause nptl/tst-cancel7 and nptl/tst-cancelx7 to fail (bug 14232).
- If cross-testing, and the physical path to the build directory is different on the build system and the host used for testing (if it involves a symlink on one system but not the other), io/ftwtest fails.
On systems with Linux kernels before September 2011, rt/tst-cpuclock2 fails (https://sourceware.org/ml/libc-alpha/2012-02/msg00468.html).
rt/tst-shm fails if /dev/shm is not mounted or does not have write permissions for the user running the tests.
If the test system does not have suitable copies of libgcc_s.so and libstdc++.so installed in system library directories, it is necessary to copy or symlink them into the build directory before testing (see https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html regarding the use of system library directories here).
3.1.2. Compiler-dependent
3.1.2.1. gcc 4.4
FAIL: conform/ISO11/*.h/conform FAIL: conform/*/inttypes.h/conform FAIL: conform/*/stdint.h/conform
The ISO11 conform tests fail because gcc 4.4 does not support -std=c1x
The inttypes.h and stdint.h conform tests fail because gcc 4.4 does not define __SIG_ATOMIC_TYPE__
In addition, several shared objects do not build with gcc 4.4:
- elf/tst-unique3lib2.so
- elf/tst-unique4lib.so
- elf/tst-unique3lib.so
The elf/tst-unique3 and elf/tst-unique4 tests need to be commented out to allow "make check" to complete normally. For more information see the discussion on libc-alpha here.
3.1.3. AArch64
Build system: AArch64 GNU/Linux, gcc version 4.8.2 20140120, GNU assembler version 2.23.52.0.1, Linux 3.15. (Carlos O'Donell)
FAIL: conform/POSIX/semaphore.h/conform FAIL: conform/POSIX2008/cpio.h/conform FAIL: conform/POSIX2008/semaphore.h/conform FAIL: conform/UNIX98/cpio.h/conform FAIL: conform/UNIX98/fmtmsg.h/conform FAIL: conform/UNIX98/semaphore.h/conform FAIL: conform/XOPEN2K/cpio.h/conform FAIL: conform/XOPEN2K/fmtmsg.h/conform FAIL: conform/XOPEN2K8/cpio.h/conform FAIL: conform/XOPEN2K8/fmtmsg.h/conform FAIL: conform/XOPEN2K8/semaphore.h/conform FAIL: conform/XPG3/cpio.h/conform FAIL: conform/XPG4/cpio.h/conform FAIL: conform/XPG4/fmtmsg.h/conform FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: math/basic-test FAIL: rt/tst-mqueue6 Summary of test results: 18 FAIL 1651 PASS 120 XFAIL 4 XPASS
The tst-backtrace failures have been partly analyzed but no solution found yet:
https://sourceware.org/ml/libc-alpha/2014-08/msg00139.html
The math failures are probably a gcc bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61441
Build system: AArch64 GNU/Linux, gcc version 4.9.2 20140728, GNU assembler version 2.24.51, Linux version 3.14.0-rc6. (Marcus Shawcroft)
... FAIL: debug/tst-backtrace4 FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: elf/check-abi-libc FAIL: elf/tst-dl-iter-static FAIL: rt/tst-cpuclock2 FAIL: rt/tst-cputimer1 Summary of test results: 7 FAIL 1653 PASS 120 XFAIL 4 XPASS
The check-abi-libc is due to my prefix setting impacting _nl_default_dirname.
3.1.4. Alpha
Build system: alphaev67 qemu 2.0.95, gcc version 4.9.0 (Gentoo 4.9.0 p1.0, pie-0.6.0), GNU assembler (Gentoo git) 2.24.51.20140619, Linux 3.16.0-rc6. (Richard Henderson)
... FAIL: crypt/badsalttest FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: math/test-fenv-return FAIL: math/test-float
The badsalttest failure is a real bug in strncmp, reading past the first difference. The test-fenv-return and test-float failures are believed to be qemu fp bugs.
3.1.5. ARM
Build system: ARM GNU/Linux (gnueabihf), gcc version 4.8.2, GNU assembler version 2.24, Linux 3.4.0. (Will Newton)
Summary of test results: 1704 PASS 120 XFAIL 4 XPASS
Build system: (hard-float ABI) GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.35 (Joseph Myers)
FAIL: io/ftwtest FAIL: nptl/tst-cancel7 FAIL: nptl/tst-cancelx7 FAIL: nptl/tst-cond-except FAIL: nptl/tst-cond17 FAIL: nptl/tst-cond24 FAIL: nptl/tst-cond25 FAIL: nptl/tst-robust1 FAIL: nptl/tst-robust3 FAIL: nptl/tst-robust4 FAIL: nptl/tst-robust7 FAIL: nptl/tst-robust9 FAIL: rt/tst-cpuclock2
The NPTL failures not mentioned as architecture-independent are thought to result from general unreliability of the board being used for testing.
Build system: (soft-float) GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.34.1 (Joseph Myers)
FAIL: elf/tst-tls13 FAIL: io/ftwtest FAIL: math/basic-test FAIL: nptl/tst-cancel7 FAIL: nptl/tst-cancelx7 FAIL: nptl/tst-mutexpi9 FAIL: nptl/tst-setuid3 FAIL: nptl/tst-stackguard1 FAIL: rt/tst-cpuclock1 FAIL: rt/tst-shm FAIL: stdio-common/bug22 FAIL: stdio-common/test-vfprintf
On soft-float systems, math/basic-test fails because of GCC bug 59833.
- rt/tst-cpuclock1 may have the same cause of failure as rt/tst-cpuclock2.
- elf/tst-tls13 and nptl/tst-stackguard1 are timeouts, possibly related to slow NFS.
- Cause of nptl/tst-mutexpi9 and nptl/tst-setuid3 failures unknown.
3.1.6. HPPA
Build system: HP-PARISC GNU/Linux, gcc version 4.6.3 (Gentoo 4.6.3 p1.13, pie-0.5.2), GNU assembler version 2.23.2, Linux 3.13 (Carlos O'Donell)
FAIL: conform/UNIX98/sys/mman.h/conform FAIL: conform/UNIX98/sys/types.h/conform FAIL: conform/UNIX98/sys/uio.h/conform FAIL: conform/XOPEN2K/cpio.h/conform FAIL: conform/XOPEN2K/fmtmsg.h/conform FAIL: conform/XOPEN2K/ftw.h/conform FAIL: conform/XOPEN2K/pthread.h/conform FAIL: conform/XOPEN2K/regex.h/conform FAIL: conform/XOPEN2K/spawn.h/conform FAIL: conform/XOPEN2K/stdlib.h/conform FAIL: conform/XOPEN2K/sys/mman.h/conform FAIL: conform/XOPEN2K/sys/types.h/conform FAIL: conform/XOPEN2K/sys/uio.h/conform FAIL: conform/XOPEN2K8/aio.h/conform FAIL: conform/XOPEN2K8/cpio.h/conform FAIL: conform/XOPEN2K8/fmtmsg.h/conform FAIL: conform/XOPEN2K8/ftw.h/conform FAIL: conform/XOPEN2K8/mqueue.h/conform FAIL: conform/XOPEN2K8/pthread.h/conform FAIL: conform/XOPEN2K8/regex.h/conform FAIL: conform/XOPEN2K8/semaphore.h/conform FAIL: conform/XOPEN2K8/spawn.h/conform FAIL: conform/XOPEN2K8/stdlib.h/conform FAIL: conform/XOPEN2K8/sys/mman.h/conform FAIL: conform/XOPEN2K8/sys/types.h/conform FAIL: conform/XOPEN2K8/sys/uio.h/conform FAIL: conform/XPG3/cpio.h/conform FAIL: conform/XPG4/cpio.h/conform FAIL: conform/XPG4/fmtmsg.h/conform FAIL: conform/XPG4/sys/mman.h/conform FAIL: debug/tst-backtrace2 FAIL: debug/tst-backtrace3 FAIL: debug/tst-backtrace4 FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: debug/tst-chk1 FAIL: debug/tst-chk2 FAIL: debug/tst-chk3 FAIL: debug/tst-chk4 FAIL: debug/tst-chk5 FAIL: debug/tst-chk6 FAIL: debug/tst-lfschk1 FAIL: debug/tst-lfschk2 FAIL: debug/tst-lfschk3 FAIL: debug/tst-lfschk4 FAIL: debug/tst-lfschk5 FAIL: debug/tst-lfschk6 FAIL: debug/tst-longjmp_chk2 FAIL: elf/check-execstack FAIL: elf/check-localplt FAIL: elf/check-textrel FAIL: elf/tst-addr1 FAIL: elf/tst-audit2 FAIL: math/test-double FAIL: math/test-fenv-return FAIL: math/test-float FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: nptl/tst-attr3 FAIL: nptl/tst-cancel11 FAIL: nptl/tst-cancel2 FAIL: nptl/tst-cancel20 FAIL: nptl/tst-cancel21 FAIL: nptl/tst-cancel21-static FAIL: nptl/tst-cancel22 FAIL: nptl/tst-cancel23 FAIL: nptl/tst-cancel25 FAIL: nptl/tst-cancel3 FAIL: nptl/tst-cancel4 FAIL: nptl/tst-cancel5 FAIL: nptl/tst-cancel6 FAIL: nptl/tst-cancelx11 FAIL: nptl/tst-cancelx2 FAIL: nptl/tst-cancelx20 FAIL: nptl/tst-cancelx21 FAIL: nptl/tst-cancelx3 FAIL: nptl/tst-cancelx4 FAIL: nptl/tst-cancelx5 FAIL: nptl/tst-cancelx6 FAIL: nptl/tst-cleanup4 FAIL: nptl/tst-cleanupx4 FAIL: nptl/tst-fini1 FAIL: nptl/tst-key3 FAIL: nptl/tst-sem14 FAIL: nptl/tst-signal3 FAIL: nptl/tst-stack1 FAIL: posix/tst-getcpu FAIL: rt/tst-aio64 FAIL: rt/tst-cputimer1 FAIL: rt/tst-mqueue8x FAIL: stdlib/tst-makecontext Summary of test results: 119 FAIL 1544 PASS 1 UNRESOLVED 123 XFAIL 1 XPASS
* Custom patch required to build and run glibc for hppa.
3.1.7. IA64
Build system: ia64 Dual-Core Intel(R) Itanium(R) Processor 9040, gcc (Gentoo 4.7.3-r1 p1.4, pie-0.5.5), GNU assembler (Gentoo 2.23.2 p1.0), Linux 3.12.13-gentoo. (Mike Frysinger)
FAIL: debug/tst-backtrace4 FAIL: math/test-double FAIL: math/test-fenv-return FAIL: math/test-float FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: rt/tst-cpuclock2 FAIL: stdio-common/tst-long-dbl-fphex FAIL: stdlib/tst-makecontext3 FAIL: stdlib/tst-strtod6 FAIL: time/bug-getdate1
tst-backtrace4 is known to fail on IA64 due to limited backtrace output; mailing list thread
- tst-cpuclock2 seems to be flaky as it passes normally, but sometimes fails under load
makecontext is known to be limited on IA64 and the testsuite runs up against that; bug 14250
- bug-getdate1 seems to be flaky as it passes normally, but sometimes fails under load
- all the rest are math related and probably match some open bugs on the topic, or need some baselines updated
3.1.7.1. regression
- test-fenv-return ???
3.1.8. M68K
Build system: ARAnyM 0.9.16, openSUSE 13.2, gcc48-4.8.3+r212056, binutils-2.24, Linux 3.11.6-21-default (Andreas Schwab)
FAIL: math/basic-test FAIL: math/test-double FAIL: math/test-fenv FAIL: math/test-float FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: math/test-snan FAIL: posix/tst-getaddrinfo4 FAIL: stdio-common/bug22 FAIL: stdio-common/tstdiomisc
3.1.9. MicroBlaze
3.1.10. MIPS
Build system: GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.35.9 (Joseph Myers) - the following failures apply to both BE and LE, all of o32, n32 and n64, both hard-float and soft-float.
FAIL: elf/check-execstack FAIL: elf/check-localplt FAIL: elf/tst-audit1 FAIL: elf/tst-audit2 FAIL: elf/tst-audit8 FAIL: elf/tst-audit9 FAIL: io/ftwtest FAIL: stdio-common/bug22
Additional failures seen for hard-float o32:
FAIL: math/test-double FAIL: math/test-float
Additional failure seen for soft-float:
FAIL: math/test-fenv
- On soft-float MIPS systems, there is no support for floating-point exceptions and rounding modes, causing math/test-fenv to fail.
For hard-float MIPS, o32 ABI (maybe only some architecture variants), math/test-float and math/test-double fail with missing "invalid" exceptions; see bug 16399.
- MIPS GCC does not use PT_GNU_STACK markers (this is a GCC issue), causing elf/check-execstack to fail (the relevant kernel support went in around February 2010).
Peculiarities of MIPS ELF cause elf/tst-audit1, elf/tst-audit2, elf/tst-audit8, elf/tst-audit9 and elf/check-localplt to fail. For the first two, see bug 2981.
3.1.11. PowerPC (32-bit soft-float)
Build system: GCC 4.9.2 20140811 (prerelease), binutils 2.24.51.20140811, Linux 2.6.34.1 (Joseph Myers)
FAIL: io/ftwtest FAIL: math/test-double FAIL: math/test-float FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: rt/tst-cpuclock2 FAIL: stdio-common/bug22
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
3.1.12. PowerPC (32-bit hard-float)
Build system: GCC version 4.9.2 20140813 (prerelease), binutils version 2.24.51.20140714, Linux 3.16.0-rc5. (Adhemerval Zanella)
FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: nptl/tst-cond18 FAIL: nptl/tst-eintr1
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
3.1.13. PowerPC (64-bit hard-float) - Big Endian (ELFv1)
Build system: GCC version 4.9.2 20140813 (prerelease), binutils version 2.24.51.20140714, Linux 3.16.0-rc5. (Adhemerval Zanella)
FAIL: elf/ifuncmain6pie FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: nptl/tst-cond18 FAIL: nptl/tst-eintr1 FAIL: rt/tst-cpuclock2
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
- I am investigating elf/ifuncmain6pie failure.
- It seems a GCC 4.9 issue, since I can not reproduce it with GCC 4.8 or GCC 4.7.
3.1.14. PowerPC (64-bit hard-float) - Little Endian (ELFv2)
Build system: GCC version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) , binutils version 2.24, Linux 3.13.0-27. (Adhemerval Zanella)
FAIL: math/test-ildoubl FAIL: math/test-ldouble
- test-double, test-float, test-ildoubl and test-ldouble fail because of IBM long double issues.
3.1.15. S/390 (32-bit)
Build system: s390 GNU/Linux, gcc version 4.9.0 20140217, GNU assembler version 2.24.51, Linux 3.6.2 (Stefan Liebler)
Summary of tests.sum results: 1666 PASS 121 XFAIL 3 XPASS
FAIL: nptl/tst-setuid2 Summary of xtests.sum results: 1 FAIL 15 PASS
nptl/tst-setuid2 passes with root privileges.
3.1.16. S/390 (64-bit)
Build system: s390x GNU/Linux, gcc version 4.9.0 20140217, GNU assembler version 2.24.51, Linux 3.13.6 (Stefan Liebler)
Summary of tests.sum results: 1703 PASS 120 XFAIL 4 XPASS
FAIL: nptl/tst-setuid2 Summary of xtests.sum results: 1 FAIL 15 PASS
nptl/tst-setuid2 passes with root privileges.
3.1.17. SH
Build system: Fedora 20, cross gcc 4.6.4, BFD version 2.23.52, Linux 2.6.32 (Kazumoto Kojima)
FAIL: c++-types-check FAIL: crypt/sha256c-test FAIL: csu/tst-atomic FAIL: csu/tst-atomic-long FAIL: debug/tst-backtrace4 FAIL: elf/check-abi-libc FAIL: elf/check-localplt FAIL: elf/tst-tls13 FAIL: iconvdata/iconv-test FAIL: io/ftwtest FAIL: libio/tst-memstream2 FAIL: libio/tst-wmemstream2 FAIL: localedata/tst-setlocale3 FAIL: malloc/tst-trim1 FAIL: math/basic-test FAIL: math/bug-nextafter FAIL: math/bug-nexttoward FAIL: math/test-double FAIL: math/test-fenv FAIL: math/test-float FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: math/test-misc FAIL: nptl/tst-cancel21-static FAIL: nptl/tst-cancel24 FAIL: nptl/tst-cancel24-static FAIL: nptl/tst-cond-except FAIL: nptl/tst-cond22 FAIL: nptl/tst-cond25 FAIL: nptl/tst-cond7 FAIL: nptl/tst-cond8 FAIL: nptl/tst-cond8-static FAIL: nptl/tst-fork1 FAIL: nptl/tst-mutex8 FAIL: nptl/tst-mutex8-static FAIL: nptl/tst-mutexpi8 FAIL: nptl/tst-mutexpi8-static FAIL: nptl/tst-once3 FAIL: nptl/tst-once4 FAIL: nptl/tst-oncex3 FAIL: nptl/tst-oncex4 FAIL: nptl/tst-sem11-static FAIL: nptl/tst-sem12-static FAIL: nptl/tst-setuid3 FAIL: posix/bug-regex24 FAIL: posix/tst-getcpu FAIL: posix/tst-regex2 FAIL: setjmp/tst-setjmp-fp FAIL: stdio-common/bug22 FAIL: stdlib/tst-strtod-overflow FAIL: string/stratcliff FAIL: wcsmbs/wcsatcliff Summary of test results: 52 FAIL 1218 PASS 1 XFAIL
3.1.18. SPARC (32-bit)
FAIL: math/test-ldouble
* test-ldouble appears to be an unexpected underflow being signalled in erf() with 128-bit long doubles; bug 17257
3.1.19. SPARC (64-bit)
FAIL: math/test-ldouble
* test-ldouble is the same failure as seen on SPARC 32-bit.
3.1.20. TILE-Gx (64- and 32-bit)
Build system: CentOS 6.3 (gcc 4.4.7, binutils 2.21) but with kernel 3.4.76. (Chris Metcalf)
FAIL: nptl/tst-cancel24 FAIL: nptl/tst-cancel24-static FAIL: nptl/tst-cancelx16 FAIL: nptl/tst-cancelx17 FAIL: nptl/tst-cancelx18 FAIL: nptl/tst-cancelx20 FAIL: nptl/tst-cancelx21 FAIL: nptl/tst-cancelx4 FAIL: nptl/tst-cancelx5 FAIL: nptl/tst-cleanupx0 FAIL: nptl/tst-cleanupx1 FAIL: nptl/tst-cleanupx3 FAIL: nptl/tst-cleanupx4 FAIL: nptl/tst-oncex3 FAIL: nptl/tst-oncex4 FAIL: rt/tst-mqueue8x
The failures are due to bug 14266
3.1.21. TILEPro
Same environment as TILE-Gx tests, but with kernel 3.4.39. (Chris Metcalf)
All the test failures from TILE-Gx are also present on TILEPro, and additionally:
FAIL: conform/*/wchar.h/conform FAIL: elf/tst-audit1 FAIL: elf/tst-audit8 FAIL: elf/tst-dlmopen1
- The wchar.h conform tests fail because WCHAR_MIN/MAX do not have the correct type for some reason.
- The audit{1,8} tests fail with a SIGBUS. Not yet investigated.
- The dlmopen1 test fails with a SIGSEGV. Not yet investigated.
3.1.22. x86 (32-bit, Linux)
Some GCC releases miscompile the setxid support code in NPTL. This results in functions such as setgid failing with ENOSYS because an totally bogus system call number is being passed to the kernel. This has been fixed as GCC bug 61801.
Build system: x86_64 GNU/Linux, gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC), GNU assembler version 2.23.2 (x86_64-redhat-linux) using BFD version version 2.23.2, Linux 3.15.3-200.fc20.x86_64 (Carlos O'Donell). Built with -m32' and targetting i686-pc-linux-gnu'.
... FAIL: nptl/tst-setuid3 FAIL: rt/tst-cputimer1 Summary of test results: 16 FAIL 1691 PASS 1 UNRESOLVED 120 XFAIL 4 XPASS
In addition, the following test fails when compiling with gcc-4.9:
FAIL: nptl/tst-cleanupx4
3.1.23. x86_64 (64-bit, Linux)
Build system: x86_64 GNU/Linux, gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC), GNU assembler version 2.23.2 (x86_64-redhat-linux) using BFD version version 2.23.2, Linux 3.15.3-200.fc20.x86_64 (Carlos O'Donell).
FAIL: conform/POSIX/semaphore.h/conform FAIL: conform/POSIX2008/cpio.h/conform FAIL: conform/POSIX2008/semaphore.h/conform FAIL: conform/UNIX98/cpio.h/conform FAIL: conform/UNIX98/fmtmsg.h/conform FAIL: conform/UNIX98/semaphore.h/conform FAIL: conform/XOPEN2K/cpio.h/conform FAIL: conform/XOPEN2K/fmtmsg.h/conform FAIL: conform/XOPEN2K8/cpio.h/conform FAIL: conform/XOPEN2K8/fmtmsg.h/conform FAIL: conform/XOPEN2K8/semaphore.h/conform FAIL: conform/XPG3/cpio.h/conform FAIL: conform/XPG4/cpio.h/conform FAIL: conform/XPG4/fmtmsg.h/conform Summary of test results: 14 FAIL 1708 PASS 121 XFAIL 3 XPASS
The conform failures are due to missing wrappers for these headers internally in glibc. We will need to fix this for builds without complete sysroots.
3.1.24. x86_64 (x32, Linux)
Build system: x86_64 GNU/Linux, gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC), GNU binutils 2.24.51 (20140806), Linux 3.15.8-200.fc20.x86_64 (H.J. Lu). Since clock_t and tv_nsec are long long for x32 while conform tests expect they are long, those failures are expected. elf/check-localplt is due to https://sourceware.org/bugzilla/show_bug.cgi?id=16512
FAIL: conform/ISO/time.h/conform FAIL: conform/ISO11/time.h/conform FAIL: conform/ISO99/time.h/conform FAIL: conform/POSIX/mqueue.h/conform FAIL: conform/POSIX/sched.h/conform FAIL: conform/POSIX/time.h/conform FAIL: conform/POSIX2008/mqueue.h/conform FAIL: conform/POSIX2008/sys/select.h/conform FAIL: conform/POSIX2008/sys/stat.h/conform FAIL: conform/POSIX2008/time.h/conform FAIL: conform/UNIX98/mqueue.h/conform FAIL: conform/UNIX98/sched.h/conform FAIL: conform/UNIX98/time.h/conform FAIL: conform/XOPEN2K/sys/select.h/conform FAIL: conform/XOPEN2K/time.h/conform FAIL: conform/XOPEN2K8/mqueue.h/conform FAIL: conform/XOPEN2K8/sys/stat.h/conform FAIL: conform/XOPEN2K8/time.h/conform FAIL: conform/XPG4/time.h/conform FAIL: elf/check-localplt 20 FAIL 121 XFAIL FAIL: nptl/tst-setuid2 1 FAIL
3.1.25. x86 (32-bit, Hurd)
3.2. Packaging Changes
Describe any distribution packing changes that may be required:
3.2.1. Update build recipies
With the de-addon-ification of nptl you should use --enable-add-ons to avoid getting the following error:
checking sysdep dirs... sysdeps/unix/sysv/linux/x86_64/64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86 sysdeps/unix/sysv/linux/wordsize-64 sysdeps/x86_64/nptl sysdeps/unix/sysv/linux sysdeps/nptl sysdeps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/x86_64 sysdeps/unix sysdeps/posix sysdeps/x86_64/64 sysdeps/x86_64/fpu/multiarch sysdeps/x86_64/fpu sysdeps/x86/fpu sysdeps/x86_64/multiarch sysdeps/x86_64 sysdeps/x86 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64/wordsize-64 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/wordsize-64 sysdeps/ieee754 sysdeps/generic configure: error: add-on nptl has no configure fragment or sysdeps tree
This is because nptl is no longer an add-on, it's an integral part of glibc.
3.2.2. Minimum Linux kernel version increased to 2.6.32
On Linux systems, the minimum required kernel version to build glibc-2.20 is 2.6.32.
3.2.3. Deprecation of _BSD_SOURCE and _SVID_SOURCE feature macros
The _BSD_SOURCE and _SVID_SOURCE feature macros are in the process of being deprecated for a cleaner interface for enabling or disabling all the additional features normally defined in the GNU C Library. The replacement is _DEFAULT_SOURCE, and provides everything provided by the previous two macros e.g. all options enabled by default if the compiler options would not restrict them.
Summary Table:
Feature Test Macro |
Version 2.18 |
Version 2.19 |
Version 2.20 |
_BSD_SOURCE |
Supported. ISO C, POSIX, and 4.3BSD things. |
Supported. |
Supported, but issues a warning if _DEFAULT_SOURCE is not defined. |
_SVID_SOURCE |
Supported. ISO C, POSIX, and SVID things. |
Supported. |
Supported, but issues a warning if _DEFAULT_SOURCE is not defined. |
_DEFAULT_SOURCE |
Unsupported (ignored). |
Supported. |
Supported. The default set of features (taking precedence over __STRICT_ANSI__). |
The _BSD_SOURCE and _SVID_SOURCE feature macros are not yet deprecated, but use of those macros will produce the following warning:
In file included from /usr/include/stdio.h:27:0, from test3.c:2: /usr/include/features.h:152:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp] # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" ^
The recommend process for removing the warning is to the following:
Remove the defines for _BSD_SOURCE and _SVID_SOURCE to determine if your application actually needs them. Several of these define are cargo culted from older sources without a clear understanding of the interfaces they enable. The application may in fact not need either of these defines.
If the application does indeed need _BSD_SOURCE and/or _SVID_SOURCE, you only support glibc >= 2.20 and you're on Linux then define _DEFAULT_SOURCE instead like this:
#if defined __linux__ # define _DEFAULT_SOURCE 1 #else # define _BSD_SOURCE 1 # define _SVID_SOURCE 1 #endif
If the application does indeed need _BSD_SOURCE and/or _SVID_SOURCE and you must support glibc < 2.19 and glibc >= 2.20 then define all three unconditionally:
/* Legacy feature macros. */ #define _BSD_SOURCE 1 #define _SVID_SOURCE 1 /* New feature macro that provides everything _BSD_SOURCE and _SVID_SOURCE provided and possibly more. */ #define _DEFAULT_SOURCE 1
Eventually when _BSD_SOURCE and _SVID_SOURCE are removed your application will need to define _DEFAULT_SOURCE to continue to operate correctly. For more information on _DEFAULT_SOURCE see the glibc manual.