Release/2.19
Contents
1. Current status
The release branch of glibc-2.19 is maintained by Allan McRae ( allan@archlinux.org ) and its current release is 2.19, tagged on 2014-02-07. There are no immediate plans for the next release.
Machine status:
x86, builds, no testsuite failures (By: Allan McRae on Arch Linux on Linux 3.12.6, gcc version 4.8.2-20131219, BFD assembler version 2.24)
x86-64, builds, no testsuite failures (By: Allan McRae on Arch Linux on Linux 3.12.6, gcc version 4.8.2-20131219, BFD assembler version 2.24)
- x32, builds, no testsuite failures (By: H.J. Lu on Fedora 20, Linux kernel 3.12.8, gcc version 4.8.2 20140115 (Red Hat 4.8.2-11) , Linux/GNU Binutils 2.24.51.0.3.20140117)
- IA64, Builds, No testsuite regressions. (By: vapier on Gentoo, Linux 3.3.13, GCC 4.7.3, Binutils 2.23.2)
- tilegx/tilepro, builds, some testsuite failures listed below (By: cmetcalf, gcc version 4.4.6, GNU assembler 2.21)
- PowerPC32 (hard-float), builds, some testsuite failures listed below (By: Adhemerval Zanella, GCC version 4.8.3 20140130, Binutils 2.23.52.0.1)
- PowerPC64 (hard-float), builds, some testsuite failures listed below (By: Adhemerval Zanella, GCC version 4.8.3 20140130, Binutils 2.23.52.0.1)
- PowerPC64le (hard-float), builds, some testsuite failures listed below (By: Adhemerval Zanella, GCC version 4.9.0 20140201, Binutils 2.24.51.20140201)
- s390x, Builds, some testsuite failures listed below (By: Andreas Krebbel, gcc version 4.7.2 20120921, Binutils 2.23.52.20130724)
- s390, Builds, some testsuite failures listed below (By: Andreas Krebbel, gcc version 4.6.1 20110908, Binutils 2.23.52.20130705)
- sparc32, Builds, some testsuite failures listed below (By: David S. Miller, gcc version 4.6.3 (Debian 4.6.3-14), Binutils 2.22)
- sparc64, Builds, some testsuite failures listed below (By: David S. Miller, gcc version 4.6.3 (Debian 4.6.3-14), Binutils 2.22)
- aarch64, (aarch64-linux-gnu) builds, some testsuite failures listed below (By: Marcus Shawcroft, gcc version 4.9.0 20140128. Binutils 2.24.51.20140117)
- hppa, Builds with additional patches, many testsuite fialures listed below (By: Carlos O'Donell on Gentoo, gcc version 4.6.3, binutils 2.23.1, Linux 3.13.0-09218-g0e47c96-dirty)
- ARM, builds, some testsuite failures listed below (GCC 4.7 branch, binutils git)
- MIPS, builds, some testsuite failures listed below (GCC 4.7 branch, binutils git)
- PowerPC soft-float, builds, some testsuite failures listed below (GCC 4.7 branch, binutils git)
MicroBlaze, Builds, no testsuite regressions (GCC 4.8.3 20140131, binutils 2.24.51.20140203, Linux 3.8.11)
- Alpha, builds, some testsuite failures listed below (By: rth on qemu 1.7.50 alpha-softmmu, kernel 3.11.0, gcc version 4.8.1-gentoo-p1.0, binutils 2.23.2)
Machines that need status information:
- x86 GNU/Hurd
- SH
- HP-PARISC
- m68k
The ref structure of this branch is:
- release/2.19/master: main branch
- glibc-2.19: revision releases tagged out of release/2.19/master
These people are interested in contents and further revisions tagged on the branch:
- PERSON1
- PERSON2
- ...
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_X.Y 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/X.Y/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?
ARMv4 builds broken? https://sourceware.org/bugzilla/show_bug.cgi?id=16499
Decision about how to handle issues with SSE42 strstr et al:
Make TLS variables thread-safe (https://sourceware.org/ml/libc-alpha/2013-11/msg00183.html)
Split into 4 patches, 3 committed, last one reviewed.
ACK given by release manager.
Waiting for Andrew Hunter to respond to review and checkin.
System z - Transactional Execution, Lock Elision Patchset (-> 2.20)
System z - jmp_buf, ucontext_t extension (done)
ARM - Resolve Ruby testsuite failure caused by pointer encryption patch
2.2. Desirable this release?
PowerPC - sotruss-lib implementation
3. LSB Tests Status
No regressions found relative to 2.18.
Fixed 5 problems and 16 requirements.
More info: Testing/LSB_Core#Current_results.
4. ABI Compatibility Status
ABI compatibility test result relative to 2.18:
CPU \ Kernel |
GNU/Linux |
x86 |
|
x86_64 |
More info: Testing/ABI_checker.
5. Known Issues
5.1. Testsuite Failures
5.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).
- On systems with Linux kernels before version 2.6.33, nptl/tst-setgetname fails.
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).
Build system: UNAME -a, GCC?, Binutils?, Kernel ?
TRIMMED LIST OF FAILURES.
5.1.2. AArch64
Tested aarch64-linux-gnu:
- test-ldouble.out has 1 failure due to [BZ 16447]
5.1.3. ARM
- On systems with VFPv3 or VFPv4 (not VFPv2, VFPv3U or VFPv4U), math/test-fenv fails. fesetenv (FE_NOMASK_ENV) fails on such systems for lack of support for trapping exceptions, but the test does not handle that failure; feenableexcept should also fail, but does not, and the test does not handle failure of feenableexcept either. Similarly, math/test-fenv fails on systems without VFP hardware.
On soft-float systems, math/basic-test fails because of GCC bug 59833.
5.1.4. Alpha
- A few tests time out under qemu emulation.
Exception "Inexact" failures in as described in http://sourceware.org/ml/libc-alpha/2013-06/msg00939.html.
make[2]: *** [/home/rth/work/libc/bld/math/test-float.out] Error 1 make[2]: *** [/home/rth/work/libc/bld/math/test-double.out] Error 1 make[2]: *** [/home/rth/work/libc/bld/math/test-ldouble.out] Error 1
- Genuine failures
Didn't expect signal from child: got `Segmentation fault' make[2]: *** [/home/rth/work/libc/bld/crypt/badsalttest.out] Error 1 Incorrect signal from child: got `Segmentation fault', need `Alarm clock' make[2]: *** [/home/rth/work/libc/bld/nptl/tst-eintr1.out] Error 1 make[2]: *** [/home/rth/work/libc/bld/debug/tst-backtrace2.out] Error 1 make[2]: *** [/home/rth/work/libc/bld/debug/tst-backtrace3.out] Error 1 make[2]: *** [/home/rth/work/libc/bld/debug/tst-backtrace4.out] Error 1 make[2]: *** [/home/rth/work/libc/bld/debug/tst-backtrace5.out] Error 1 make[2]: *** [/home/rth/work/libc/bld/debug/tst-backtrace6.out] Error 1
5.1.5. IA64
make[2]: *** [/home/vapier/glibc/build/debug/tst-backtrace4.out] Error 1 make[2]: *** [/home/vapier/glibc/build/math/test-double.out] Error 1 make[2]: *** [/home/vapier/glibc/build/math/test-float.out] Error 1 make[2]: *** [/home/vapier/glibc/build/math/test-idouble.out] Error 1 make[2]: *** [/home/vapier/glibc/build/math/test-ifloat.out] Error 1 make[2]: *** [/home/vapier/glibc/build/math/test-ildoubl.out] Error 1 make[2]: *** [/home/vapier/glibc/build/math/test-ldouble.out] Error 1 make[2]: [/home/vapier/glibc/build/posix/annexc.out] Error 1 (ignored) make[2]: *** [/home/vapier/glibc/build/stdio-common/tst-long-dbl-fphex.out] Error 1 make[2]: *** [/home/vapier/glibc/build/stdlib/tst-makecontext3.out] Error 1 make[2]: *** [/home/vapier/glibc/build/stdlib/tst-strtod6.out] Error 1
tst-backtrace4 is known to fail on IA64 due to limited backtrace output; mailing list thread
makecontext is known to be limited on IA64 and the testsuite runs up against that; bug 14250
- annexc is a common issue that all targets fail
- all the rest are math related and probably match some open bugs on the topic, or need some baselines updated
5.1.6. MIPS
- 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 and elf/check-localplt to fail. For the first two, see bug 2981.
- When GCC 4.8 or earlier is used, some math tests fail unless Thomas Schwinge's 2013-05-06 fp-bit changes are backports.
5.1.7. PowerPC (all)
Various ibm-ldouble.c fixes from libgcc (2013-12-03 and later) are needed to reduce the number of test failures in math/test-ldouble and math/test-ildoubl. In addition to changes present on GCC trunk (some also on older release branches, some not), an uncommitted patch is needed.
5.1.8. PowerPC (soft-float)
- math/test-ldouble and math/test-ildoubl fail similarly to hard-float. In addition, ulps for sqrtl in directed rounding modes are not included in the soft-float libm-test-ulps file. Underflowing results of fmal are inaccurate in directed rounding modes, probably because the soft-fp code used in libgcc as part of implementing IBM long double does not handle the software rounding mode from libc and does not handle signs of zero results the same as the instruction used in the hardware floating-point case.
- For e500, if using a Linux kernel before 3.14-rc1, Linux kernel commits 640e922501103aaf2e0abb4cf4de5d49fa8342f7, 28414a6def9dc00dcd0d0f3eea6911fda9a4a4e1, 4f6db5efff8256c7f608285877e892e7e649137a, d06b3326dfd02f3f036b670d622fe56eb68a5f30, 28fbf1d540920ad6722fa6ac15237a307932bc9b and 01c9ccee3c3051d0a37af9af2938a15a06448964 should be backported to improve libm test results.
5.1.9. PowerPC (32-bit hard-float)
GCC 4.8.3 with backport http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=085d03cc4c5bb71f3b5739decc459194a927a00b used to avoid double/float issue with inexact being triggered in netxtoward.
- Two builds:
- POWER4 (--with-cpu=power4)
make[2]: *** [/home/azanella/glibc/build/glibc32_power4/math/test-ldouble.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc32_power4/math/test-ildoubl.out] Error 1 make[1]: *** [math/tests] Error 2 make[2]: *** [/home/azanella/glibc/build/glibc32_power4/nptl/tst-eintr1.out] Error 1 make[1]: *** [nptl/tests] Error 2 make: *** [check] Error 2
- test-ldouble and test-ildouble failing due the aforementioned issues for PowerPC.
- tst-eintr1 failing 'pthread_create failed: Resource temporarily unavailable' and it does not fail with a different system (2.6.32-358.11.1.el6.ppc64, gcc 4.8.3, Binutils 2.20.51.0.2-5.36.el6). Investigating, but it looks like a system resource configuration issue.
- POWER7 (--with-cpu=power7)
make[2]: *** [/home/azanella/glibc/build/glibc32_power7/math/test-ldouble.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc32_power7/math/test-ildoubl.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/nptl/tst-eintr1.out] Error 1 make[1]: *** [nptl/tests] Error 2 make[2]: *** [/home/azanella/glibc/build/glibc32_power7/rt/tst-cpuclock2.out] Error 1 make[1]: *** [rt/tests] Error 2
- test-ldouble and test-ildouble due the aforementioned issues for PowerPC.
- tst-setcontext, tst-makecontext3, and tst-setcontext-fpscr fails due a kernel defect and it is fixed upstream by commits:
- powerpc/signals: Mark VSX not saved with small contexts (c13f20ac48328b05cd3b8c19e31ed6c132b44b42)
- powerpc/signals: Improved mark VSX not saved with small contexts fix (ec67ad82814bee92251fd963bf01c7a173856555)
- tst-cpuclock2: intermittent failure appearing due to time issues
- tst-eintr1 failing 'pthread_create failed: Resource temporarily unavailable' and it does not fail with a different system (2.6.32-358.11.1.el6.ppc64, gcc 4.8.3, Binutils 2.20.51.0.2-5.36.el6). Investigating, but it looks like a system resource configuration issue.
5.1.10. PowerPC (64-bit hard-float)
GCC 4.8.3 with backport http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=085d03cc4c5bb71f3b5739decc459194a927a00b used to avoid double/float issue with inexact being triggered in netxtoward.
- Two builds:
- POWER4 (--with-cpu=power4)
make[2]: *** [/home/azanella/glibc/build/glibc64_power4/math/test-ldouble.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc64_power4/math/test-ildoubl.out] Error 1 make[1]: *** [math/tests] Error 2 make[2]: *** [/home/azanella/glibc/build/glibc64_power4/nptl/tst-eintr1.out] Error 1 make[1]: *** [nptl/tests] Error 2
- test-ldouble and test-ildouble due the aforementioned issues for PowerPC.
- tst-eintr1 failing 'pthread_create failed: Resource temporarily unavailable' and it does not fail with a different system (2.6.32-358.11.1.el6.ppc64, gcc 4.8.3, Binutils 2.20.51.0.2-5.36.el6). Investigating, but it looks like a system resource configuration issue.
- POWER7 (--with-cpu=power7)
make[2]: *** [/home/azanella/glibc/build/glibc64_power7/math/test-ldouble.out] Error 1 make[2]: *** [/home/azanella/glibc/build/glibc64_power7/math/test-ildoubl.out] Error 1 make[1]: *** [math/tests] Error 2 make[2]: *** [/home/azanella/glibc/build/glibc64_power7/nptl/tst-eintr1.out] Error 1 make[1]: *** [nptl/tests] Error 2
- test-ldouble and test-ildouble due the aforementioned issues for PowerPC.
- tst-eintr1 failing 'pthread_create failed: Resource temporarily unavailable' and it does not fail with a different system (2.6.32-358.11.1.el6.ppc64, gcc 4.8.3, Binutils 2.20.51.0.2-5.36.el6). Investigating, but it looks like a system resource configuration issue.
5.1.11. PowerPC64le (64-bit hard-float)
- Build for POWER7 (--with-cpu=power7)
make[2]: *** [/home/azanella/glibc/glibc-git-build-power7/math/test-ldouble.out] Error 1 make[2]: *** [/home/azanella/glibc/glibc-git-build-power7/math/test-ildoubl.out] Error 1 make[1]: *** [math/tests] Error 2
- test-ldouble and test-ildouble due the aforementioned issues for PowerPC.
5.1.12. tilegx/tilepro
tile doesn't handle -fexceptions correctly for pthread_cancel(); see bug 14266.
5.1.13. System z, S/390
5.1.13.1. s390x 64 bit
Failed to remake target file `/home/andreas/glibc/glibc-#-build/math/test-ldouble.out'. Failed to remake target file `/home/andreas/glibc/glibc-#-build/nptl/tst-tls7.out'. Failed to remake target file `/home/andreas/glibc/glibc-#-build/rt/tst-cpuclock2.out'.
test-ldouble: erfc underflow exception bug 16447
tst-tls7: Bigger timeout for S/390 seems to be needed (>7s).
- tst-cpuclock2: intermittent failure appearing due to time issues
5.1.13.2. s390 32 bit
Failed to remake target file `/build/glibc/glibc-#-build/math/test-float.out'. Failed to remake target file `/build/glibc/glibc-#-build/math/test-double.out'. Failed to remake target file `/build/glibc/glibc-#-build/math/test-ldouble.out'. Failed to remake target file `/build/glibc/glibc-#-build/misc/tst-fanotify.out'. Failed to remake target file `/build/glibc/glibc-#-build/nptl/tst-tls7.out'. Failed to remake target file `/build/glibc/glibc-#-build/rt/tst-cputimer1.out'.
test-float, test-double, test-ldouble: Missing exceptions with llrint bug 16449
test-ldouble: erfc underflow exception bug 16447
tst-fanotify: Kernel endianess bug in the compat layer: https://lkml.org/lkml/2014/1/15/190
tst-tls7: Bigger timeout for S/390 seems to be needed (>7s).
- tst-cputimer1: intermittent failure appearing due to timing issues
5.1.14. sparc 32 bit
test-ldouble: erfc underflow exception bug 16447
- tst-strtod-round: Long double tests fail, specifically strtold (0x1p-16446) and strtold (-0x1p-16446)
5.1.15. sparc 64 bit
test-ldouble: erfc underflow exception bug 16447
- tst-sscanf: Gets a bus error.
- tst-swscanf: Also gets a bus error.
5.1.16. hppa
make[1]: *** [locale/tests] Error 2 make[2]: *** [/home/carlos/build/glibc/math/test-float.out] Error 1 make[2]: *** [/home/carlos/build/glibc/math/test-double.out] Error 1 make[2]: *** [/home/carlos/build/glibc/math/test-ifloat.out] Error 1 make[2]: *** [/home/carlos/build/glibc/math/test-idouble.out] Error 1 make[1]: *** [math/tests] Error 2 make[2]: *** [/home/carlos/build/glibc/stdlib/tst-makecontext.out] Error 255 make[1]: *** [stdlib/tests] Error 2 make[1]: *** [dlfcn/tests] Error 2 make[2]: *** [/home/carlos/build/glibc/malloc/tst-trim1.out] Error 1 make[1]: *** [malloc/tests] Error 2 make[2]: [/home/carlos/build/glibc/posix/annexc.out] Error 1 (ignored) make[1]: *** [crypt/tests] Error 2 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cond16.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cond21.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cond25.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-key3.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel2.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel3.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel4.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel5.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel6.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel11.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel20.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel21.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel22.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel23.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel25.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cleanup4.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx2.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx3.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx4.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx5.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx6.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx11.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx20.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancelx21.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cleanupx4.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-tls7.out] Error 1 make[2]: *** [/home/carlos/build/glibc/nptl/tst-fini1.out] Error 139 make[2]: *** [/home/carlos/build/glibc/nptl/tst-cancel21-static.out] Error 1 make[1]: *** [nptl/tests] Error 2 make[2]: *** [/home/carlos/build/glibc/rt/tst-timer3.out] Error 1 make[1]: *** [rt/tests] Error 2 make[2]: [/home/carlos/build/glibc/conform/run-conformtest.out] Error 1 (ignored) make[2]: *** [/home/carlos/build/glibc/debug/tst-chk4.o] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-chk5.o] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-chk6.o] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-lfschk4.o] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-lfschk5.o] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-lfschk6.o] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-backtrace2.out] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-backtrace3.out] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-backtrace4.out] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-backtrace5.out] Error 1 make[2]: *** [/home/carlos/build/glibc/debug/tst-backtrace6.out] Error 1 make[1]: *** [debug/tests] Error 2 make[1]: *** [nptl_db/tests] Error 2 make[1]: *** [resolv/tests] Error 2 make[1]: *** [nis/tests] Error 2 make[1]: *** [login/tests] Error 2 make[2]: *** [/home/carlos/build/glibc/elf/tst-audit2.out] Error 139 make[2]: *** [/home/carlos/build/glibc/elf/tst-addr1.out] Error 1 make[2]: *** [/home/carlos/build/glibc/elf/check-textrel.out] Error 1 make[2]: *** [/home/carlos/build/glibc/elf/check-execstack.out] Error 1 make[2]: *** [/home/carlos/build/glibc/elf/check-localplt.out] Error 1 make[1]: *** [elf/tests] Error 2 make: *** [check] Error 2
- Results are pretty terrible. Need to dig into these.
5.2. Build Failures
Describe build failures here and how to fix them.
5.3. Packaging Changes
5.3.1. Removal of libbsd-compat dummy library
The libbsd-compat library has been a dummy library since 1998 and is no longer installed.
5.3.2. Change to the size of jmpbuf and ucontext on s390 and s390x
On s390 and s390x the size of struct ucontext and jmp_buf was increased to allow for future hardware extensions. All library functions that accept or return these structures were versioned in order to provide backwards compatibility with existing code. However, not all cases can be handled with interface versioning. If an application embeds either structure into another structure and that structure is passed to another compilation unit which expects the newer larger-sized object then any access to the new fields will result in undefined behaviour. Similarly any access to fields that were moved by the enlarging of the structures will cause undefined behaviour. To fix the undefined behaviour all objects that are part of the final in-memory image must agree on the size of structures, and this may require recompilation. This scenario has occured with Perl where the main interpreter structure embeds jmp_buf, passes that interpreter structure to newer recompiled modules, and those modules then fail to operate correctly. The only solution in this case is to recompile Perl and all dyanmically loaded modules that will be used. After recompilation all modules are using the new size of the changed structures. This change to s390 and s390x for struct ucontext and jmp_buf will make it possible to transparently take advantage of new hardware enablement without any further ABI consequences, but may cause some problems in the short term. The GNU tools community is working on providing better diagnostics for mixing code that might result in an ABI breakage, but until then, the only warning is that of a failing application.