Release/2.23

1. Current status

The release branch of glibc-2.23 is maintained by Adhemerval Zanella and was released on 2016-02-18. There are no immediate plans for the next release.

The ref structure of this branch is:

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?

  1. Is the fix committed in master? It has to be, unless it's not applicable to master (e.g. code has been rewritten meantime).
  2. Do you have commit permissions? If so, go ahead if you think it's reasonably safe. break;
  3. 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;
  4. Add the glibc_2.23 keyword to the appropriate bug report.
  5. 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.23/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?

2.2. Desirable this release?

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

3.1.2. AArch64

Build system: gcc version 6.0.0 20160129, binutils 2.26.51.20160129, linux 3.13 (Szabolcs Nagy)

FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
FAIL: misc/bug18240

Transient failures observed:

FAIL: rt/tst-cpuclock2
FAIL: nptl/tst-stack4

Build system: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (aarch64-redhat-linux), 4.5.0-0.rc4.28.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
UNSUPPORTED: math/test-nearbyint-except-2
UNSUPPORTED: nptl/tst-thread_local1
FAIL: rt/tst-mqueue6
Summary of test results:
      6 FAIL
   2331 PASS
      2 UNSUPPORTED
     86 XFAIL

math/test-double, a lot of tgamma_upward failures e.g.

testing double (without inline functions)
Failure: tgamma_upward (-0x1.86a08p+16): errno set to 0, expected 34 (ERANGE)

Should investigate as a toolchain issue probably.

3.1.3. Alpha

3.1.4. ARM

Build system: (soft-float) GCC 5.3.1 20160121, binutils 2.26.51.20160121, Linux 3.5.0 (Joseph Myers)

FAIL: io/ftwtest
FAIL: math/basic-test
FAIL: nptl/tst-cancel24-static
FAIL: rt/tst-cputimer1
FAIL: stdlib/tst-makecontext

Build system: (hard-float ABI) GCC 5.3.1 20160121, binutils 2.26.51.20160121, Linux 3.5.0 (Joseph Myers)

FAIL: io/ftwtest
FAIL: nptl/tst-cancel24-static
FAIL: rt/tst-cputimer1
FAIL: stdlib/tst-makecontext

3.1.5. HPPA

Note: You will need two patches to get things working:

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: debug/tst-longjmp_chk2
FAIL: elf/check-execstack
FAIL: elf/check-localplt
FAIL: elf/check-textrel
FAIL: elf/tst-audit2
FAIL: malloc/tst-malloc-thread-fail
FAIL: math/test-double
FAIL: math/test-double-finite
FAIL: math/test-float
FAIL: math/test-float-finite
FAIL: math/test-idouble
FAIL: math/test-ifloat
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: nss/bug17079
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: stdio-common/test-vfprintf
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 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 3.18, Linux 3.14.14-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: nptl/tst-cancel24-static
FAIL: stdio-common/tst-long-dbl-fphex
FAIL: stdlib/tst-makecontext3

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.4 (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.4. (Mike Frysinger)

Build-test only for microblaze-linux-gnu is OK.

3.1.9. MIPS

Build system: (soft-float) GCC 5.3.1 20160121, binutils 2.26.51.20160121, Linux 2.6.35.9 (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: io/ftwtest
FAIL: nptl/tst-cancel24-static
FAIL: nss/tst-nss-getpwent
FAIL: stdio-common/bug22
FAIL: stdio-common/test-vfprintf
FAIL: timezone/tst-tzset

The following applies to n32:

FAIL: malloc/tst-malloc-thread-fail

The following applies to n32 and o32:

FAIL: posix/tst-mmap-offset

The following apply to soft-float:

FAIL: math/test-fenv
FAIL: math/test-fenvinline
FAIL: math/test-nearbyint-except

The following was seen for BE n64 soft-float:

FAIL: nptl/tst-stack4

3.1.10. Nios II

Build system: GCC 5.2.0, binutils 2.25.51, Linux headers 4.2, test board running Linux 4.0 (Chung-Lin Tang)

FAIL: elf/tst-rtld-load-self
FAIL: elf/tst-tls13
FAIL: iconvdata/tst-tables
FAIL: io/ftwtest
FAIL: malloc/tst-malloc-thread-fail
FAIL: nptl/tst-cancel24-static
FAIL: nptl/tst-cancel7
FAIL: nptl/tst-cancelx7
FAIL: nptl/tst-cond12
FAIL: nptl/tst-cond13
FAIL: nptl/tst-stack4
FAIL: nss/bug17079
FAIL: nss/tst-nss-getpwent
FAIL: stdio-common/bug22
FAIL: stdio-common/test-vfprintf
FAIL: stdio-common/tst-sprintf
FAIL: string/test-strcasecmp
FAIL: string/test-strncasecmp
FAIL: timezone/tst-tzset
FAIL: wcsmbs/test-wcsncmp
FAIL: build stdlib/bug-getcontext.o
FAIL: build sunrpc/tst-xdrmem
FAIL: build sunrpc/tst-xdrmem2

3.1.11. PowerPC (32-bit soft-float)

Build system: (soft-float) GCC 5.3.1 20160121, binutils 2.26.51.20160121, Linux 3.10.38 (Joseph Myers)

FAIL: io/ftwtest
FAIL: malloc/tst-malloc-thread-fail
FAIL: math/test-double
FAIL: math/test-float
FAIL: math/test-ildoubl
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite
FAIL: nss/tst-nss-getpwent
FAIL: stdio-common/bug22
FAIL: stdio-common/test-vfprintf
FAIL: stdlib/tst-setcontext2
FAIL: timezone/tst-tzset

3.1.12. PowerPC (32-bit hard-float)

Build system: Linux 4.0.0, gcc 5.3.1, Binutils 2.25.90.20151209 (Tulio Magno)

FAIL: malloc/tst-malloc-thread-fail
FAIL: math/test-ildoubl
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite

3.1.13. PowerPC64 (64-bit hard-float)

Build system: Linux 3.19.3, gcc 4.9.2 20150212, Binutils 2.24 (Tulio Magno)

FAIL: math/test-ildoubl
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite

3.1.14. PowerPC64LE (64-bit hard-float)

Build system: Linux 4.3.3, gcc 6.0.0 [rev. 232670], Binutils 2.25.0 (Tulio Magno)

FAIL: math/test-ildoubl
FAIL: math/test-ldouble
FAIL: math/test-ldouble-finite

In another server (Linux 3.13.0, GCC 4.8.4, Binutils 2.24), I get the following intermittent failures:

Build system: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (ppc64le-redhat-linux), 3.10.0-349.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
Summary of test results:
      5 FAIL
   2368 PASS
      1 UNSUPPORTED
     84 XFAIL
      2 XPASS

Requires patching test-get_hwcap.c, see https://www.sourceware.org/ml/libc-alpha/2016-02/msg00485.html

3.1.15. S/390 (32-bit)

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: 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-cancelx4|5 fails due to "cleanup handler not called for 'sigwait'". GCC 4.9 and higher 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-head. This issue 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.

nptl/tst-setuid2 passes with root privileges.

Build system: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.26.51 (s390x-ibm-linux-gnu), Linux 3.10.0-349.el7.s390x (Carlos O'Donell)

FAIL: iconvdata/iconv-test
FAIL: nptl/tst-cancel17
UNSUPPORTED: nptl/tst-thread_local1
Summary of test results:
      2 FAIL
   2364 PASS
      1 UNSUPPORTED
     86 XFAIL

iconvdata/iconv-test is a sigsegv, probably a compiler related issue.

nptl/tst-cancel17 is the usual sporadic cancellation failure.

nptl/tst-thread_local1 because gcc didn't have thread_local support.

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.4 (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

The failure above occurs only on tilegx32: segfault, 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.8.5. "make check" was not run. (Chris Metcalf)

3.1.22. x86 (32-bit, Linux)

Build system: gcc version 5.3.1 20151207 (Red Hat 5.3.1-2) (GCC), GNU assembler version 2.25 (x86_64-redhat-linux), 4.3.5-300.fc23.x86_64 (Carlos O'Donell)

Summary of test results:
   2381 PASS
     86 XFAIL

3.1.23. x86_64 (64-bit, Linux)

Build system: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC), GNU assembler version 2.23.52.0.1 (x86_64-redhat-linux), 3.10.0-349.el7.x86_64 (Carlos O'Donell)

UNSUPPORTED: nptl/tst-thread_local1
Summary of test results:
   2400 PASS
      1 UNSUPPORTED
     86 XFAIL

Build system: gcc version 5.3.1 20151207 (Red Hat 5.3.1-2) (GCC), GNU assembler version 2.25 (x86_64-redhat-linux), 4.3.5-300.fc23.x86_64 (Carlos O'Donell)

Summary of test results:
   2403 PASS
     86 XFAIL

3.1.24. x86_64 (x32, Linux)

Tested with GCC 5.3.1 and binutils 2.26 20160106 under kernel 4.3.3 on Fedora 23.

3.1.25. x86 (32-bit, Hurd)

3.2. Packaging Changes

3.2.1. regexp.h

The header file regexp.h (not to be confused with regex.h) has been removed, leaving behind a stub containing only an #error directive. No packaging changes are required, and binary backward compatibility is preserved, but any program that uses this header will fail to compile with 2.23.

This header and the API it defines were formerly part of SUS, but were deprecated in 1994 and removed from the standard in 2001. Moreover, the glibc implementation suffered from bugs that had gone unnoticed from 1996 through 2009, including memory leaks which were impractical to fix. See bug 18681 for more information.

Programs that use this header are expected to be rare. They should be updated to use regex.h, and the somewhat different API defined there, instead. regcomp is the replacement for the compile function and its associated macros, and regexec is the replacement for the step and advance functions and their associated global variables.

None: Release/2.23 (last edited 2016-07-21 05:22:36 by MikeFrysinger)