Release/2.24
Contents
1. Current status
The release branch of glibc-2.24 is maintained by Adhemerval Zanella and its current release is 2.24.0 (tagged on 2016-08-02). There are no immediate plans for the next release.
The ref structure of this branch is:
- release/2.24/master: main branch
- glibc-2.24.0: revision releases tagged out of release/2.24/master
These people are interested in contents and further revisions tagged on the branch:
- Carlos O'Donell (Fedora F25)
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.24 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.24/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?
[BZ #20139] Don't allow configure with not supporting AVX512 assembler w/o --disable-avx512
[BZ #20309] X86-64: Properly align stack in _dl_tlsdesc_dynamic
Add pretty printers for the NPTL lock types
- Moved to 2.25
Add security bugs to NEWS
Go through fixed security+ bugs. Try to obtain CVE identifiers where they are still missing.
CVE assignments from MITRE
[BZ #13165] New condition variable
- Moved to 2.25
S390: Use DT_JUMPREL in prelink undo code. (requirement for partial relro support on s390)
[PATCH] Fix cos computation for multiple precision fallback (bz #20357)
2.2. Desirable this release?
3. Known Issues
- Starting with this glibc release, when Emacs is compiled, Emacs will switch to its internal malloc implementation. This has the following consequences:
When compiling older Emacs releases with newer GCC versions, it is necessary to specify the -ffreestanding flag for GCC. Otherwise calloc in src/gmalloc.c will end up with an infinite recursion. This has been fixed in a different way for emacs-25 in this commit.
On 64-bit systems with aggressive ASLR (such as ppc64), the Emacs-internal malloc needs a lot of memory (typically 12 GiB). This has been fixed for emacs-25 in this commit.
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).
- 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.
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).
Cause of nptl/tst-cancel24-static failure, seen on multiple architectures, unknown, but responsible commit identified.
3.1.2. AArch64
Build system: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (aarch64-redhat-linux) using BFD version version 2.23.52.0.1-55.el7 20130226, Linux 4.2.0-0.21.el7.aarch64 (Carlos O'Donell)
FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: math/basic-test FAIL: math/test-double FAIL: math/test-float FAIL: math/test-ldouble UNSUPPORTED: math/test-nearbyint-except-2 UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit Summary of test results: 6 FAIL 2396 PASS 4 UNSUPPORTED 45 XFAIL
- The UNSUPPORTED tests are because the system C++ compiler doesn't support thread_local.
The tst-backtrace5 and test-backtrace6 are discussed here: https://sourceware.org/ml/libc-alpha/2014-08/msg00139.html
3.1.3. Alpha
Build system: alpha EV68AL Tsunami, gcc (Gentoo 5.4.0 p1.0, pie-0.6.5), GNU assembler (Gentoo 2.25.1 p1.1), Linux headers 4.6, Linux 4.6.0. (Mike Frysinger)
FAIL: conform/ISO/math.h/linknamespace FAIL: conform/POSIX2008/termios.h/conform FAIL: conform/POSIX/math.h/linknamespace FAIL: conform/UNIX98/math.h/linknamespace FAIL: conform/UNIX98/termios.h/conform FAIL: conform/XOPEN2K8/netdb.h/conform FAIL: conform/XOPEN2K8/termios.h/conform FAIL: conform/XOPEN2K/netdb.h/conform FAIL: conform/XOPEN2K/termios.h/conform FAIL: conform/XPG3/math.h/linknamespace FAIL: conform/XPG3/termios.h/conform FAIL: conform/XPG4/math.h/linknamespace FAIL: conform/XPG4/termios.h/conform FAIL: crypt/badsalttest FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: elf/check-localplt FAIL: elf/tst-prelink-cmp FAIL: io/tst-fts-lfs FAIL: math/test-double FAIL: math/test-double-finite FAIL: math/test-fenv-return FAIL: math/test-float FAIL: math/test-float-finite FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: math/test-ldouble FAIL: math/test-ldouble-finite FAIL: nptl/tst-eintr1
3.1.4. ARM
Build system: (hard-float ABI) GCC 5.4.1 20160701, binutils 2.26.51.20160701, Linux 3.5.0 (Joseph Myers)
FAIL: elf/tst-ldconfig-X FAIL: io/ftwtest FAIL: nptl/tst-cancel24-static
- elf/tst-ldconfig-X failure appears to be a glitch on the test system.
3.1.5. HPPA
Build system: parisc PA8600 (PCX-W+) 9000/785/C3600, gcc (Gentoo 4.8.4 p1.6, pie-0.6.1), GNU assembler (Gentoo 2.25.1 p1.1), Linux headers 3.18, Linux 3.18.7-gentoo. (Mike Frysinger)
FAIL: debug/backtrace-tst FAIL: debug/tst-backtrace2 FAIL: debug/tst-backtrace3 FAIL: debug/tst-backtrace4 FAIL: debug/tst-backtrace5 FAIL: debug/tst-backtrace6 FAIL: elf/check-execstack FAIL: elf/check-localplt FAIL: elf/check-textrel FAIL: elf/tst-audit2 FAIL: malloc/tst-mallocfork2 FAIL: math/test-float FAIL: nptl/tst-cancel24-static FAIL: nptl/tst-cancel3 FAIL: nptl/tst-cancel4 FAIL: nptl/tst-cancel5 FAIL: nptl/tst-cancelx20 FAIL: nptl/tst-cancelx21 FAIL: nptl/tst-cancelx3 FAIL: nptl/tst-cancelx4 FAIL: nptl/tst-cancelx5 FAIL: nptl/tst-cleanup4 FAIL: nptl/tst-cleanupx4 FAIL: nptl/tst-default-attr FAIL: nptl/tst-stack4 FAIL: rt/tst-cputimer1 FAIL: rt/tst-cputimer2 FAIL: rt/tst-cputimer3 FAIL: rt/tst-mqueue8 FAIL: rt/tst-mqueue8x FAIL: rt/tst-timer4 FAIL: rt/tst-timer5 FAIL: stdlib/tst-makecontext FAIL: stdlib/tst-setcontext2 FAIL: stdlib/tst-setcontext3
3.1.6. IA64
Note: Building with gcc-4.8+ and --hash-style=gnu will create an ldso that segfaults immediately. See https://gcc.gnu.org/PR60465 for more details. You can workaround this in three ways:
build glibc with >=gcc-5.4
build glibc with <=gcc-4.7
- build glibc with -Wl,--hash-style=sysv
build glibc with this hack
Build system: ia64 Dual-Core Intel(R) Itanium(R) Processor 9040, gcc (Gentoo 4.9.3 p1.2, pie-0.6.3), GNU assembler (Gentoo 2.25.1 p1.1), Linux headers 4.3, Linux 3.14.14-gentoo. (Mike Frysinger)
FAIL: debug/tst-backtrace4 FAIL: math/test-double FAIL: math/test-double-finite FAIL: math/test-fenv-return FAIL: math/test-float FAIL: math/test-float-finite FAIL: math/test-idouble FAIL: math/test-ifloat FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: math/test-ldouble-finite FAIL: math/test-nearbyint-except FAIL: misc/tst-clone2 FAIL: nptl/tst-cancel24-static FAIL: nptl/tst-exec1 FAIL: posix/tst-spawn FAIL: posix/tst-spawn2 FAIL: posix/tst-spawn-static FAIL: rt/tst-cpuclock2 FAIL: stdio-common/tst-long-dbl-fphex FAIL: stdlib/tst-makecontext3
tst-backtrace4 is known to fail on IA64 due to limited backtrace output; mailing list thread
- all the math/ tests probably match some open bugs on the topic, or need some baselines updated, or are limitations in the IA64 optimized libm
- tst-cancel24-static crash is unknown
- tst-cpuclock2 seems to be flaky as it passes normally, but sometimes fails under load
tst-makecontext3 fails as makecontext is known to be limited on IA64; bug 14250
3.1.7. M68K
Build system: gcc (Gentoo 4.9.2 p1.4, pie-0.6.2), GNU assembler (Gentoo 2.25.1 p1.0), Linux headers 4.6 (Mike Frysinger)
Build-test only for m68k-unknown-linux-gnu is OK.
3.1.8. MicroBlaze
Build system: gcc (Gentoo 4.9.3 p1.2, pie-0.6.2), GNU assembler (Gentoo 2.25.1 p1.0), Linux headers 4.6 (Mike Frysinger)
Build-test only for microblaze-linux-gnu is OK.
3.1.9. MIPS
Build system: GCC 5.4.1 20160701, binutils 2.26.51.20160701, Linux 3.16.0 (LE hard-float), 3.14.0 (BE soft-float) (Joseph Myers)
The following failures apply to both BE and LE, o32, n32 and n64, both hard-float and soft-float.
FAIL: elf/check-execstack FAIL: elf/check-localplt FAIL: elf/tst-execstack FAIL: elf/tst-execstack-needed FAIL: elf/tst-ldconfig-X FAIL: nptl/tst-cancel24-static FAIL: nptl/tst-execstack FAIL: stdio-common/bug22 FAIL: stdio-common/test-vfprintf FAIL: timezone/tst-tzset
Also seen for n32:
FAIL: misc/tst-preadvwritev FAIL: misc/tst-preadvwritev64
The following apply to soft-float:
FAIL: math/test-fenv FAIL: math/test-fenvinline FAIL: math/test-nearbyint-except
Also seen for BE n32 soft-float:
FAIL: rt/tst-cpuclock2
- On soft-float MIPS systems, there is no support for floating-point exceptions and rounding modes, causing math/test-fenv, math/test-fenvinline and math/test-nearbyint-except to fail.
MIPS GCC does not use PT_GNU_STACK markers, causing elf/check-execstack to fail. Because of how the kernel FPU emulator works, fixing this involves complicated changes to components including both the Linux kernel and glibc.
- Peculiarities of MIPS ELF cause elf/check-localplt to fail.
- timezone/tst-tzset creates a 4GB file in $TMPDIR and fails if there is not enough disk space.
- elf/tst-ldconfig-X failure cause unknown.
3.1.10. Nios II
Build system: GCC 5.4.1 20160726, binutils 2.26.51, Linux headers 4.6 (Chung-Lin Tang)
FAIL: elf/tst-ldconfig-X FAIL: elf/tst-rtld-load-self FAIL: elf/tst-tls13 FAIL: iconvdata/tst-tables FAIL: io/ftwtest FAIL: malloc/tst-malloc-thread-fail FAIL: malloc/tst-mallocfork2 FAIL: nptl/tst-cancel24-static FAIL: nptl/tst-cancel7 FAIL: nptl/tst-cancelx7 FAIL: nptl/tst-cond12 FAIL: nptl/tst-cond13 FAIL: nptl/tst-exit2 FAIL: nptl/tst-stack4 FAIL: nss/tst-nss-getpwent FAIL: stdio-common/bug22 FAIL: stdio-common/test-vfprintf FAIL: stdio-common/tst-sprintf FAIL: timezone/tst-tzset FAIL: wcsmbs/test-wcsncmp FAIL: build stdlib/bug-getcontext.o FAIL: build sunrpc/tst-xdrmem FAIL: build sunrpc/tst-xdrmem2
- Requires GCC 5.4 or newer to build; older versions triggers ICE in GCC.
- malloc/tst-mallocfork2 is due to timeout, verified to work manually.
- elf/tst-ldconfig-X and nptl/tst-exit2 may be due to test system problems, verified to work manually.
- Others are known from previous release
3.1.11. PowerPC (32-bit soft-float)
Build system: (soft-float) GCC 5.4.1 20160701, binutils 2.26.51.20160701, Linux 3.10.38 (Joseph Myers)
FAIL: io/ftwtest FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: math/test-ldouble-finite FAIL: math/test-nearbyint-except-2 FAIL: stdio-common/bug22 FAIL: stdio-common/test-vfprintf FAIL: stdlib/tst-setcontext2 FAIL: timezone/tst-tzset
- test-ildoubl, test-ldouble, test-ldouble-finite and test-nearbyint-except-2 fail because of IBM long double issues.
- Cause of stdlib/tst-setcontext2 failure unknown.
- timezone/tst-tzset creates a 4GB file in $TMPDIR and fails if there is not enough disk space.
3.1.12. PowerPC (32-bit hard-float)
Build System: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (ppc64-redhat-linux) using BFD version version 2.23.52.0.1-55.el7 20130226, Linux 3.10.0-327.18.2.el7.ppc64 (Carlos O'Donell)
FAIL: math/test-double FAIL: math/test-float FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: math/test-ldouble-finite UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit Summary of test results: 5 FAIL 2405 PASS 3 UNSUPPORTED 45 XFAIL
- The UNSUPPORTED tests are because the system C++ compiler doesn't support thread_local.
3.1.13. PowerPC (64-bit hard-float)
Build System: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (ppc64-redhat-linux) using BFD version version 2.23.52.0.1-55.el7 20130226, Linux 3.10.0-327.18.2.el7.ppc64 (Carlos O'Donell)
XPASS: elf/tst-protected1a XPASS: elf/tst-protected1b FAIL: math/test-double FAIL: math/test-float FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: math/test-ldouble-finite UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit Summary of test results: 5 FAIL 2436 PASS 3 UNSUPPORTED 43 XFAIL 2 XPASS
- The UNSUPPORTED tests are because the system C++ compiler doesn't support thread_local.
3.1.14. PowerPC64LE (64-bit hard-float)
Build System: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (ppc64le-redhat-linux) using BFD version version 2.23.52.0.1-55.el7 20130226, Linux 3.10.0-327.18.2.el7.ppc64le (Carlos O'Donell)
XPASS: elf/tst-protected1a XPASS: elf/tst-protected1b FAIL: math/test-double FAIL: math/test-float FAIL: math/test-ildoubl FAIL: math/test-ldouble FAIL: math/test-ldouble-finite UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit Summary of test results: 5 FAIL 2436 PASS 3 UNSUPPORTED 43 XFAIL 2 XPASS
- The UNSUPPORTED tests are because the system C++ compiler doesn't support thread_local.
3.1.15. S/390 (32-bit)
Build System: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.26.51 (s390-redhat-linux) using BFD version (GNU Binutils) 2.26.51.20160715, Linux 3.10.0-327.18.2.el7.s390x (Carlos O'Donell)
UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit FAIL: timezone/tst-tzset Summary of test results: 1 FAIL 2429 PASS 3 UNSUPPORTED 45 XFAIL
- The UNSUPPORTED tests are because the system C++ compiler doesn't support thread_local.
The timezone/tst-tzset failed on 31bit in some combinations of gcc-versions and optimization levels due to memcpy is clobbering r13. This is fixed in commit "S390: Do not clobber r13 with memcpy on 31bit with copies >1MB." before glibc release 2.24. (Stefan Liebler)
Build system: gcc version 5.3.0, GNU Binutils version 2.25, Linux 4.2 (Stefan Liebler)
FAIL: nptl/tst-setuid2
- nptl/tst-setuid2 passes with root privileges.
3.1.16. S/390 (64-bit)
Build System: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (s390x-redhat-linux) using BFD version version 2.23.52.0.1-55.el7 20130226, Linux 3.10.0-327.18.2.el7.s390x (Carlos O'Donell)
UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit Summary of test results: 2431 PASS 3 UNSUPPORTED 45 XFAIL
- The UNSUPPORTED tests are because the system C++ compiler doesn't support thread_local.
Build system: gcc version 5.3.0, GNU Binutils version 2.25, Linux 4.2 (Stefan Liebler)
FAIL: nptl/tst-cancelx4 FAIL: nptl/tst-cancelx5 FAIL: nptl/tst-cancelx16 FAIL: nptl/tst-setuid2
- nptl/tst-setuid2 passes with root privileges.
nptl/tst-cancelx4|5 fails due to "cleanup handler not called for 'sigwait'". GCCs >= 4.9 and <= 5.3 saves r15 in a floating-point register in do_sigwait() and emits false cfi information. If a thread is cancelled while sigwait blocks, unwinding has already stopped before the function with the cleanup-handler. See gcc commits "S/390: Fix cfi for GPR 2 FPR saves" in gcc 4.9 branch, gcc 5 branch and gcc 6 branch. This occures if built with -O2. With -O3, r15 is not saved in fpr here and the test passes.
- nptl/tst-cancelx16 fails due to not called cleanup handler around lockf - same issue as above.
3.1.17. SuperH
Build system: gcc (Gentoo 4.9.2 p1.4, pie-0.6.2), GNU assembler (Gentoo 2.25.1 p1.0), Linux headers 4.6 (Mike Frysinger)
Build-test only for sh4-unknown-linux-gnu is OK.
3.1.18. SPARC (32-bit)
3.1.19. SPARC (64-bit)
3.1.20. TILE-Gx (64-bit and 32-bit)
Build system: TILE-Gx72 running CentOS 6.3, with gcc 4.8.2, binutils 2.21, and Linux 3.10.55. (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 above are due to bug 14266
FAIL: nptl/tst-cancel17
This is a segfault, cause unknown.
FAIL: nptl/tst-cancel19
The failure above occurs only on tilegx32: timeout, cause unknown.
3.1.21. TILEPro
Cross "make" on x86_64 successful with binutils-2.23.1, linux-3.9.2 headers, and gcc 4.7.3. "make check" was not run. (Chris Metcalf)
3.1.22. x86 (32-bit, Linux)
Build System: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.26.51 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.26.51.20160715, Linux 3.10.0-327.18.2.el7.x86_64 (Carlos O'Donell)
XPASS: elf/tst-protected1a XPASS: elf/tst-protected1b UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit Summary of test results: 2444 PASS 3 UNSUPPORTED 43 XFAIL 2 XPASS
- The UNSUPPORTED tests are because the system compiler does not support thread_local.
3.1.23. x86_64 (64-bit, Linux)
Build System: Red Hat Enterprise Linux 7.2: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.26.51 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.26.51.20160715, Linux 3.10.0-327.18.2.el7.x86_64 (Carlos O'Donell)
UNSUPPORTED: elf/tst-audit10 XPASS: elf/tst-protected1a XPASS: elf/tst-protected1b UNSUPPORTED: math/test-double-libmvec-alias-avx2 UNSUPPORTED: math/test-double-libmvec-alias-avx2-main UNSUPPORTED: math/test-double-libmvec-sincos-avx2 UNSUPPORTED: math/test-float-libmvec-alias-avx2 UNSUPPORTED: math/test-float-libmvec-alias-avx2-main UNSUPPORTED: math/test-float-libmvec-sincosf-avx2 UNSUPPORTED: nptl/tst-thread_local1 UNSUPPORTED: stdlib/tst-quick_exit UNSUPPORTED: stdlib/tst-thread-quick_exit Summary of test results: 2475 PASS 10 UNSUPPORTED 43 XFAIL 2 XPASS
- The UNSUPPORTED AVX2 tests are because the hardware under test did not have AVX2 support, likewise tst-audit10.
- The other UNSUPPORTED tests are because the system compiler does not support thread_local.
3.1.24. x86_64 (x32, Linux)
Build System: Fedora 24: gcc version 6.1.1 20160621 (Red Hat 6.1.1-3) (GCC), (Linux/GNU Binutils) 2.26.51.0.2.20160711 , Linux 4.6.4-301.fc24.x86_64 (H.J. Lu)
FAIL: elf/tst-leaks1-mem 1 FAIL 5 XFAIL FAIL: nptl/tst-setuid2 1 FAIL
FAIL: elf/tst-leaks1-mem is due to
https://sourceware.org/bugzilla/show_bug.cgi?id=14681
and nptl/tst-setuid2 never passes for me.
3.1.25. x86 (32-bit, Hurd)
3.2. Packaging Changes
Describe any distribution packing changes that may be required.
The type union wait was removed. Applications need to replace it with int, and use the W* macros from <sys/wait.h> (such as WEXITSTATUS) instead of union member access. This commit shows an example of such a change: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=30bcdc1860a9e80afad11c94e508f962a6563205 Portable applications have configure checks for union wait and will select different code automatically because union wait once was a BSD compatibility extension, but it has been removed from FreeBSD and others for a very long time.