Release/2.18
Contents
1. Planning
What things do we want to accomplish this release?
- Open bug count below 400
- Some cross-localdef support
- Testsuite generating logs with PASS/FAIL statuses
- Substantial progress on merging distribution patches
- Merging in changes from gnulib
- Unify wiki todo lists and items from miscellaneous text files (Carlos)
- libm multiprecision code cleanup and performance improvement (Siddhesh)
- Review and fix getaddrinfo (particularly AI_ADDRCONFIG issues) issues (Carlos)
- There are 24 getaddrinfo issues in the bug tracker.
- There are 15 getaddrinfo issues in the Red Hat bugzilla.
- There needs to be a review of the conformance of the implementation.
- We need to compare against other vendors e.g. Solaris, FreeBSD, Windows, etc.
- We need to fix things with an eye to not breaking applications.
BZ#11787 - Programs with large TLS segment fail (Carlos)
- A workaround here is going to be to use Siddhesh's new LIBC_PTHREAD_DEFAULT_STACK_SIZE env var to bump up default stack sizes.
BZ#13690 - pthread_mutex_unlock potentially cause invalid access (Carlos)
- Review code and potential race.
- TSX lock elision for glibc
Fix issues with gcc's -ftree-loop-distribute-patterns http://sourceware.org/ml/libc-alpha/2013-04/msg00124.html
- PowerPC POWER8 Hardware Enablement
[PATCH] RFC: PowerPC: Add Program Priority Register support - Add PPR save/restore macros to ppc.h.
2. Current Status
WORK IN PROGRESS
The following material is a work in progress and should not be considered complete or ready for public use.
The release branch of glibc-2.18 is maintained by David Miller.
The 2.18 release branch is release/2.18/master.
Machine status:
- AArch64, ???
- x86, ???
- x86 GNU/Hurd, ???
- x86-64, ???
- x32, ???
- PowerPC (soft-float), ???
- PowerPC (hard-float), builds, some testsuite failutes listed below (By: Adhemerval Zanella on RHEL 6.4 on Linux 2.6.32-279.2.1.el6.ppc64, gcc version 4.7.3 20130409, GNU assembler version 2.23.52 (powerpc64-linux) using BFD version (GNU Binutils) 2.23.52.20130429)
- PowerPC64, builds, some testsuite failutes listed below (By: Adhemerval Zanella on RHEL 6.4 on Linux 2.6.32-279.2.1.el6.ppc64, gcc version 4.7.3 20130409, GNU assembler version 2.23.52 (powerpc64-linux) using BFD version (GNU Binutils) 2.23.52.20130429)
- s390, ???
- s390x, builds, some testsuite failures listed below (By: Carlos on RHEL6.4 on Linux 2.6.32-358.el6.s390x, gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC), GNU assembler version 2.23.52 (s390x-ibm-linux-gnu) using BFD version (GNU Binutils) 2.23.52.20130425)
- ARM, ???
- MIPS, ???
- sparc, ???
- sparc64, ???
- Alpha, ???
- IA64, ???
- HP-PARISC, ???
- SH, ???
- m68k, ???
- tilepro/tilegx, ???
The ref structure of this branch is:
- release/2.18/master: main branch
- glibc-2.18.1: revision releases tagged out of release/2.18/master
These people are interested in contents and further revisions tagged on the branch:
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.17 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.17/master as well, more so if they tell me about it!).
3. ABI Compatibility Status
ABI checker result (relative to 2.17):
CPU \ Kernel |
GNU/Linux |
x86 |
|
x86_64 |
|
arm |
|
The report lists 4 changed constants: E_MIPS_ARCH_32, E_MIPS_ARCH_64, EF_MIPS_ARCH_32 and EF_MIPS_ARCH_64 (elf.h). This change is safe. See related discussion on the mailing list from 10 Jan 2013.
There are also 3 removed constants: EPOLL_NONBLOCK (epoll.h), GLIBC_HAVE_LONG_LONG and USE_ANSI (features.h). This is safe change too. See related discussions on the mailing list: 1, 2 and 3.
4. Known Issues
4.1. Testsuite Failures
4.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 (http://sourceware.org/ml/libc-alpha/2012-02/msg00468.html).
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 http://sourceware.org/ml/libc-alpha/2012-04/msg01014.html regarding the use of system library directories here).
4.1.2. s390x
Build system: RHEL6.4 on Linux 2.6.32-358.el6.s390x, gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC), GNU assembler version 2.23.52 (s390x-ibm-linux-gnu) using BFD version (GNU Binutils) 2.23.52.20130425
make[2]: *** [/root/build/glibc/math/test-float.out] Error 1 make[2]: *** [/root/build/glibc/math/test-double.out] Error 1 make[2]: *** [/root/build/glibc/math/test-ldouble.out] Error 1 make[2]: *** [/root/build/glibc/math/test-ildoubl.out] Error 1 make[2]: *** [/root/build/glibc/math/test-ifloat.out] Error 1 make[2]: *** [/root/build/glibc/math/test-idouble.out] Error 1 make[1]: *** [math/tests] Error 2 make[2]: *** [/root/build/glibc/wcsmbs/wcsatcliff.out] Error 1 make[1]: *** [wcsmbs/tests] Error 2 make[2]: [/root/build/glibc/posix/annexc.out] Error 1 (ignored) make[2]: [/root/build/glibc/conform/run-conformtest.out] Error 1 (ignored) make[2]: *** [/root/build/glibc/elf/tst-unique3lib.so] Error 1 make[2]: *** [/root/build/glibc/elf/tst-unique3lib2.so] Error 1 make[2]: *** [/root/build/glibc/elf/tst-unique4lib.so] Error 1 make[1]: *** [elf/tests] Error 2 make: *** [check] Error 2
4.1.3. PowerPC (hard-float)
Build System: RHEL 6.4 on Linux 2.6.32-279.2.1.el6.ppc64, gcc version 4.7.3 20130409, GNU assembler version 2.23.52 (powerpc64-linux) using BFD version (GNU Binutils) 2.23.52.20130429. The -mcpu=power7 flag was used.
make[2]: *** [/home/azanella/glibc/build/glibc32_power7/math/test-ildoubl.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc32_power7/math/test-ldouble.out] Error 1 make[1]: *** [math/tests] Error 2 make[2]: *** [/home/azanella/glibc/build/glibc32_power7/stdlib/tst-setcontext.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc32_power7/stdlib/tst-makecontext3.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc32_power7/stdlib/tst-setcontext-fpscr.out] Error 5 make[1]: *** [stdlib/tests] Error 2 make[2]: [/home/azanella/glibc/build/glibc32_power7/posix/annexc.out] Error 1 (ignored) make[2]: *** [/home/azanella/glibc/build/glibc32_power7/rt/tst-cpuclock2.out] Error 1 make[1]: *** [rt/tests] Error 2 make[2]: [/home/azanella/glibc/build/glibc32_power7/conform/run-conformtest.out] Error 1 (ignored) make[2]: *** [/home/azanella/glibc/build/glibc32_power7/debug/tst-backtrace5.out] Error 1 make[1]: *** [debug/tests] Error 2 make[1]: *** [elf/tests] Error 2
- As previous releases, tst-setcontext, tst-makecontext3, tst-setcontext-fpscr are due a kernel bug.
- The IBM long double tests shows 155 errors and while some are just ULPs update, some recent fixes for cacos, cacosh, casin, casinh, catan, catanh, tgamma are triggering inacuracies and underflow
exceptions.
4.1.4. PowerPC64
Build System: RHEL 6.4 on Linux 2.6.32-279.2.1.el6.ppc64, gcc version 4.7.3 20130409, GNU assembler version 2.23.52 (powerpc64-linux) using BFD version (GNU Binutils) 2.23.52.20130429. The -mcpu=power7 flag was used.
make[2]: *** [/home/azanella/glibc/build/glibc64_power7/math/test-ildoubl.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc64_power7/math/test-ldouble.out] Error 1 make[1]: *** [math/tests] Error 2 make[2]: [/home/azanella/glibc/build/glibc64_power7/posix/annexc.out] Error 1 (ignored) make[2]: *** [/home/azanella/glibc/build/glibc64_power7/rt/tst-cpuclock2.out] Error 1 make[1]: *** [rt/tests] Error 2 make[2]: [/home/azanella/glibc/build/glibc64_power7/conform/run-conformtest.out] Error 1 (ignored) make[2]: *** [/home/azanella/glibc/build/glibc64_power7/debug/tst-backtrace5.out] Error 1 make[1]: *** [debug/tests] Error 2 make[1]: *** [elf/tests] Error 2
* The IBM long double tests shows 155 errors and while some are just ULPs update, some recent fixes for cacos, cacosh, casin, casinh, catan, catanh, tgamma are triggering inacuracies and underflow exceptions.
4.2. Build Failures
Describe build failures here and how to fix them:
4.3. Packaging Changes
Describe packaging changes and how to fix them: