GNU C Library NEWS -- history of user-visible changes.
-Copyright (C) 1992-2020 Free Software Foundation, Inc.
+Copyright (C) 1992-2022 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
+\f
+Version 2.35
+
+Major new features:
+
+* Unicode 14.0.0 Support: Character encoding, character type info, and
+ transliteration tables are all updated to Unicode 14.0.0, using
+ generator scripts contributed by Mike FABIAN (Red Hat).
+
+* Bump r_version in the debugger interface to 2 and add a new field,
+ r_next, support multiple namespaces.
+
+* Support for the C.UTF-8 locale has been added to glibc. The locale
+ supports full code-point sorting for all valid Unicode code points. A
+ limitation in the framework for fnmatch, regexec, and regcomp requires
+ a compromise to save space and only ASCII-based range expressions are
+ supported for now (see bug 28255). The full size of the locale is
+ only ~400KiB, with 346KiB coming from LC_CTYPE information for
+ Unicode. This locale harmonizes downstream C.UTF-8 already shipping
+ in various downstream distributions. The locale is not built into
+ glibc, and must be installed.
+
+* <math.h> functions that round their results to a narrower type, and
+ corresponding <tgmath.h> macros, are added from TS 18661-1:2014, TS
+ 18661-3:2015 and draft ISO C2X:
+
+ - fsqrt, fsqrtl, dsqrtl and corresponding fMsqrtfN, fMsqrtfNx,
+ fMxsqrtfN and fMxsqrtfNx functions.
+
+ - ffma, ffmal, dfmal and corresponding fMfmafN, fMfmafNx, fMxfmafN and
+ fMxfmafNx functions.
+
+* <math.h> functions for floating-point maximum and minimum,
+ corresponding to new operations in IEEE 754-2019, and corresponding
+ <tgmath.h> macros, are added from draft ISO C2X: fmaximum,
+ fmaximum_num, fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num,
+ fminimum_mag, fminimum_mag_num and corresponding functions for float,
+ long double, _FloatN and _FloatNx.
+
+* The __STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__ macros are
+ predefined as specified in TS 18661-1:2014.
+
+* The exp10 functions in <math.h> now have a corresponding type-generic
+ macro in <tgmath.h>.
+
+* The ISO C2X macro _PRINTF_NAN_LEN_MAX has been added to <stdio.h>.
+
+* printf-family functions now support the %b format for output of
+ integers in binary, as specified in draft ISO C2X, and the %B variant
+ of that format recommended by draft ISO C2X.
+
+* A new DSO sorting algorithm has been added in the dynamic linker that uses
+ topological sorting by depth-first search (DFS), solving performance issues
+ of the existing sorting algorithm when encountering particular circular
+ object dependency cases.
+
+* A new tunable, glibc.rtld.dynamic_sort, can be used to select between
+ the two DSO sorting algorithms. The default setting of '2' uses the
+ new DFS-based algorithm. The setting '1' switches to the old
+ algorithm used in glibc 2.33 and earlier.
+
+* ABI support for a new function '__memcmpeq'. '__memcmpeq' is meant
+ to be used by compilers for optimizing usage of 'memcmp' when its
+ return value is only used for its boolean status.
+
+* Support for automatically registering threads with the Linux rseq
+ system call has been added. This system call is implemented starting
+ from Linux 4.18. The Restartable Sequences ABI accelerates user-space
+ operations on per-cpu data. It allows user-space to perform updates
+ on per-cpu data without requiring heavy-weight atomic operations.
+ Automatically registering threads allows all libraries, including
+ libc, to make immediate use of the rseq support by using the
+ documented ABI, via the __rseq_flags, __rseq_offset, and __rseq_size
+ variables. The GNU C Library manual has details on integration of
+ Restartable Sequences.
+
+* A symbolic link to the dynamic linker is now installed under
+ /usr/bin/ld.so (or more precisely, '${bindir}/ld.so').
+
+* All programs and the testsuite in glibc are now built as position independent
+ executables (PIE) by default on toolchains and architectures that support it.
+ Further, if the toolchain and architecture supports it, even static programs
+ are built as PIE and the resultant glibc can be used to build static PIE
+ executables. A new option --disable-default-pie has been added to disable
+ this behavior and get a non-PIE build. This option replaces
+ --enable-static-pie, which no longer has any effect on the build
+ configuration.
+
+* On Linux, a new tunable, glibc.malloc.hugetlb, can be used to
+ either make malloc issue madvise plus MADV_HUGEPAGE on mmap and sbrk
+ or to use huge pages directly with mmap calls with the MAP_HUGETLB
+ flags). The former can improve performance when Transparent Huge Pages
+ is set to 'madvise' mode while the latter uses the system reserved
+ huge pages.
+
+* The printf family of functions now handles the flagged %#m conversion
+ specifier, printing errno as an error constant (similar to strerrorname_np).
+
+* The function _dl_find_object has been added. In-process unwinders
+ can use it to efficiently locate unwinding information for a code
+ address.
+
+Deprecated and removed features, and other changes affecting compatibility:
+
+* On x86-64, the LD_PREFER_MAP_32BIT_EXEC environment variable support
+ has been removed since the first PT_LOAD segment is no longer executable
+ due to defaulting to -z separate-code.
+
+* The r_version update in the debugger interface makes the glibc binary
+ incompatible with GDB binaries built without the following commits:
+
+ c0154a4a21a gdb: Don't assume r_ldsomap when r_version > 1 on Linux
+ 4eb629d50d4 gdbserver: Check r_version < 1 for Linux debugger interface
+
+ when audit modules or dlmopen are used.
+
+* Intel MPX support (lazy PLT, ld.so profile, and LD_AUDIT) has been removed.
+
+* The --enable-static-pie option is no longer available. The glibc build
+ configuration script now automatically detects static-pie support in the
+ toolchain and architecture and enables it if available.
+
+Changes to build and runtime requirements:
+
+ [Add changes to build and runtime requirements here]
+
+Security related changes:
+
+ [Add security related changes here]
+
+The following bugs are resolved with this release:
+
+ [The release manager will add the list generated by
+ scripts/list-fixed-bugs.py just before the release.]
+
+\f
+Version 2.34
+
+Major new features:
+
+* In order to support smoother in-place-upgrades and to simplify
+ the implementation of the runtime all functionality formerly
+ implemented in the libraries libpthread, libdl, libutil, libanl has
+ been integrated into libc. New applications do not need to link with
+ -lpthread, -ldl, -lutil, -lanl anymore. For backwards compatibility,
+ empty static archives libpthread.a, libdl.a, libutil.a, libanl.a are
+ provided, so that the linker options keep working. Applications which
+ have been linked against glibc 2.33 or earlier continue to load the
+ corresponding shared objects (which are now empty). The integration
+ of those libraries into libc means that additional symbols become
+ available by default. This can cause applications that contain weak
+ references to take unexpected code paths that would only have been
+ used in previous glibc versions when e.g. preloading libpthread.so.0,
+ potentially exposing application bugs.
+
+* When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined,
+ PTHREAD_STACK_MIN is no longer constant and is redefined to
+ sysconf(_SC_THREAD_STACK_MIN). This supports dynamic sized register
+ sets for modern architectural features like Arm SVE.
+
+* Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _DYNAMIC_STACK_SIZE_SOURCE
+ or _GNU_SOURCE are defined, MINSIGSTKSZ and SIGSTKSZ are no longer
+ constant on Linux. MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ)
+ and SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ). This supports
+ dynamic sized register sets for modern architectural features like
+ Arm SVE.
+
+* The dynamic linker implements the --list-diagnostics option, printing
+ a dump of information related to IFUNC resolver operation and
+ glibc-hwcaps subdirectory selection.
+
+* On Linux, the function execveat has been added. It operates similar to
+ execve and it is is already used to implement fexecve without requiring
+ /proc to be mounted. However, different than fexecve, if the syscall is not
+ supported by the kernel an error is returned instead of trying a fallback.
+
+* The ISO C2X function timespec_getres has been added.
+
+* The feature test macro __STDC_WANT_IEC_60559_EXT__, from draft ISO
+ C2X, is supported to enable declarations of functions defined in Annex F
+ of C2X. Those declarations are also enabled when
+ __STDC_WANT_IEC_60559_BFP_EXT__, as specified in TS 18661-1, is
+ defined, and when _GNU_SOURCE is defined.
+
+* On powerpc64*, glibc can now be compiled without scv support using the
+ --disable-scv configure option.
+
+* Add support for 64-bit time_t on configurations like x86 where time_t
+ is traditionally 32-bit. Although time_t still defaults to 32-bit on
+ these configurations, this default may change in future versions.
+ This is enabled with the _TIME_BITS preprocessor macro set to 64 and is
+ only supported when LFS (_FILE_OFFSET_BITS=64) is also enabled. It is
+ only enabled for Linux and the full support requires a minimum kernel
+ version of 5.1.
+
+* The main gconv-modules file in glibc now contains only a small set of
+ essential converter modules and the rest have been moved into a supplementary
+ configuration file gconv-modules-extra.conf in the gconv-modules.d directory
+ in the same GCONV_PATH. Similarly, external converter modules directories
+ may have supplementary configuration files in a gconv-modules.d directory
+ with names ending with .conf to logically classify the converter modules in
+ that directory.
+
+* On Linux, a new tunable, glibc.pthread.stack_cache_size, can be used
+ to configure the size of the thread stack cache.
+
+* The function _Fork has been added as an async-signal-safe fork replacement
+ since Austin Group issue 62 droped the async-signal-safe requirement for
+ fork (and it will be included in the future POSIX standard). The new _Fork
+ function does not run any atfork function neither resets any internal state
+ or lock (such as the malloc one), and only sets up a minimal state required
+ to call async-signal-safe functions (such as raise or execve). This function
+ is currently a GNU extension.
+
+* On Linux, the close_range function has been added. It allows efficiently
+ closing a range of file descriptors on recent kernels (version 5.9).
+
+* The function closefrom has been added. It closes all file descriptors
+ greater than or equal to a given integer. This function is a GNU extension,
+ although it is also present in other systems.
+
+* The posix_spawn_file_actions_addclosefrom_np function has been added,
+ enabling posix_spawn and posix_spawnp to close all file descriptors greater
+ than or equal to a given integer. This function is a GNU extension,
+ although Solaris also provides a similar function.
+
+* When invoked explicitly, the dynamic linker now uses the kernel to
+ execute programs that do not have any dynamic dependency (that is,
+ they are statically linked). This feature is Linux-specific.
+
+* The audit libraries will avoid unnecessary slowdown if it is not required
+ PLT tracking (by not implementing the la_pltenter or la_pltexit callbacks).
+
+Deprecated and removed features, and other changes affecting compatibility:
+
+* The function pthread_mutex_consistent_np has been deprecated; programs
+ should use the equivalent standard function pthread_mutex_consistent
+ instead.
+
+* The function pthread_mutexattr_getrobust_np has been deprecated;
+ programs should use the equivalent standard function
+ pthread_mutexattr_getrobust instead.
+
+* The function pthread_mutexattr_setrobust_np has been deprecated;
+ programs should use the equivalent standard function
+ pthread_mutexattr_setrobust instead.
+
+* The function pthread_yield has been deprecated; programs should use
+ the equivalent standard function sched_yield instead.
+
+* The function inet_neta declared in <arpa/inet.h> has been deprecated.
+
+* Various rarely-used functions declared in <resolv.h> and
+ <arpa/nameser.h> have been deprecated. Applications are encouraged to
+ use dedicated DNS processing libraries if applicable. For <resolv.h>,
+ this affects the functions dn_count_labels, fp_nquery, fp_query,
+ fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdnname,
+ p_class, p_fqname, p_fqnname, p_option, p_query, p_rcode, p_time,
+ p_type, putlong, putshort, res_hostalias, res_isourserver,
+ res_nameinquery, res_queriesmatch, res_randomid, sym_ntop, sym_ntos,
+ sym_ston. For <arpa/nameser.h>, the functions ns_datetosecs,
+ ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename,
+ ns_sprintrr, ns_sprintrrf, ns_subdomain have been deprecated.
+
+* Various symbols previously defined in libresolv have been moved to libc
+ in order to prepare for libresolv moving entirely into libc (see earlier
+ entry for merging libraries into libc). The symbols __dn_comp,
+ __dn_expand, __dn_skipname, __res_dnok, __res_hnok, __res_mailok,
+ __res_mkquery, __res_nmkquery, __res_nquery, __res_nquerydomain,
+ __res_nsearch, __res_nsend, __res_ownok, __res_query, __res_querydomain,
+ __res_search, __res_send formerly in libresolv have been renamed and no
+ longer have a __ prefix. They are now available in libc.
+
+* The pthread cancellation handler is now installed with SA_RESTART and
+ pthread_cancel will always send the internal SIGCANCEL on a cancellation
+ request. It should not be visible to applications since the cancellation
+ handler should either act upon cancellation (if asynchronous cancellation
+ is enabled) or ignore the cancellation internal signal. However there are
+ buggy kernel interfaces (for instance some CIFS versions) that could still
+ see a spurious EINTR error when cancellation interrupts a blocking syscall.
+
+* Previously, glibc installed its various shared objects under versioned
+ file names such as libc-2.33.so. The ABI sonames (e.g., libc.so.6)
+ were provided as symbolic links. Starting with glibc 2.34, the shared
+ objects are installed under their ABI sonames directly, without
+ symbolic links. This increases compatibility with distribution
+ package managers that delete removed files late during the package
+ upgrade or downgrade process.
+
+* The symbols mallwatch and tr_break are now deprecated and no longer used in
+ mtrace. Similar functionality can be achieved by using conditional
+ breakpoints within mtrace functions from within gdb.
+
+* The __morecore and __after_morecore_hook malloc hooks and the default
+ implementation __default_morecore have been removed from the API. Existing
+ applications will continue to link against these symbols but the interfaces
+ no longer have any effect on malloc.
+
+* Debugging features in malloc such as the MALLOC_CHECK_ environment variable
+ (or the glibc.malloc.check tunable), mtrace() and mcheck() have now been
+ disabled by default in the main C library. Users looking to use these
+ features now need to preload a new debugging DSO libc_malloc_debug.so to get
+ this functionality back.
+
+* The deprecated functions malloc_get_state and malloc_set_state have been
+ moved from the core C library into libc_malloc_debug.so. Legacy applications
+ that still use these functions will now need to preload libc_malloc_debug.so
+ in their environment using the LD_PRELOAD environment variable.
+
+* The deprecated memory allocation hooks __malloc_hook, __realloc_hook,
+ __memalign_hook and __free_hook are now removed from the API. Compatibility
+ symbols are present to support legacy programs but new applications can no
+ longer link to these symbols. These hooks no longer have any effect on glibc
+ functionality. The malloc debugging DSO libc_malloc_debug.so currently
+ supports hooks and can be preloaded to get this functionality back for older
+ programs. However this is a transitional measure and may be removed in a
+ future release of the GNU C Library. Users may port away from these hooks by
+ writing and preloading their own malloc interposition library.
+
+Changes to build and runtime requirements:
+
+* On Linux, the shm_open, sem_open, and related functions now expect the
+ file shared memory file system to be mounted at /dev/shm. These functions
+ no longer search among the system's mount points for a suitable
+ replacement if /dev/shm is not available.
+
+Security related changes:
+
+ CVE-2021-27645: The nameserver caching daemon (nscd), when processing
+ a request for netgroup lookup, may crash due to a double-free,
+ potentially resulting in degraded service or Denial of Service on the
+ local system. Reported by Chris Schanzle.
+
+ CVE-2021-33574: The mq_notify function has a potential use-after-free
+ issue when using a notification type of SIGEV_THREAD and a thread
+ attribute with a non-default affinity mask.
+
+ CVE-2021-35942: The wordexp function may overflow the positional
+ parameter number when processing the expansion resulting in a crash.
+ Reported by Philippe Antoine.
+
+The following bugs are resolved with this release:
+
+ [4737] libc: fork is not async-signal-safe
+ [5781] math: Slow dbl-64 sin/cos/sincos for special values
+ [10353] libc: Methods for deleting all file descriptors greater than
+ given integer (closefrom)
+ [14185] glob: fnmatch() fails when '*' wildcard is applied on the file
+ name containing multi-byte character(s)
+ [14469] math: Inaccurate j0f function
+ [14470] math: Inaccurate j1f function
+ [14471] math: Inaccurate y0f function
+ [14472] math: Inaccurate y1f function
+ [14744] nptl: kill -32 $pid or kill -33 $pid on a process cancels a
+ random thread
+ [15271] dynamic-link: dlmopen()ed shared library with LM_ID_NEWLM
+ crashes if it fails dlsym() twice
+ [15648] nptl: multiple definition of `__lll_lock_wait_private'
+ [16063] nptl: Provide a pthread_once variant in libc directly
+ [17144] libc: syslog is not thread-safe if NO_SIGPIPE is not defined
+ [17145] libc: syslog with LOG_CONS leaks console file descriptor
+ [17183] manual: description of ENTRY struct in <search.h> in glibc
+ manual is incorrect
+ [18435] nptl: pthread_once hangs when init routine throws an exception
+ [18524] nptl: Missing calloc error checking in
+ __cxa_thread_atexit_impl
+ [19329] dynamic-link: dl-tls.c assert failure at concurrent
+ pthread_create and dlopen
+ [19366] nptl: returning from a thread should disable cancellation
+ [19511] nptl: 8MB memory leak in pthread_create in case of failure
+ when non-root user changes priority
+ [20802] dynamic-link: getauxval NULL pointer dereference after static
+ dlopen
+ [20813] nptl: pthread_exit is inconsistent between libc and libpthread
+ [22057] malloc: malloc_usable_size is broken with mcheck
+ [22668] locale: LC_COLLATE: the last character of ellipsis is not
+ ordered correctly
+ [23323] libc: [RFE] CSU startup hardening.
+ [23328] malloc: Remove malloc hooks and ensure related APIs return no
+ data.
+ [23462] dynamic-link: Static binary with dynamic string tokens ($LIB,
+ $PLATFORM, $ORIGIN) crashes
+ [23489] libc: "gcc -lmcheck" aborts on free when using posix_memalign
+ [23554] nptl: pthread_getattr_np reports wrong stack size with
+ MULTI_PAGE_ALIASING
+ [24106] libc: Bash interpreter in ldd script is taken from host
+ [24773] dynamic-link: dlerror in an secondary namespace does not use
+ the right free implementation
+ [25036] localedata: Update collation order for Swedish
+ [25383] libc: where_is_shmfs/__shm_directory/SHM_GET_NAME may cause
+ shm_open to pick wrong directory
+ [25680] dynamic-link: ifuncmain9picstatic and ifuncmain9picstatic
+ crash in IFUNC resolver due to stack canary (--enable-stack-
+ protector=all)
+ [26874] build: -Warray-bounds in _IO_wdefault_doallocate
+ [26983] math: [x86_64] x86_64 tgamma has too large ULP error
+ [27111] dynamic-link: pthread_create and tls access use link_map
+ objects that may be concurrently freed by dlclose
+ [27132] malloc: memusagestat is linked to system librt, leading to
+ undefined symbols on major version upgrade
+ [27136] dynamic-link: dtv setup at thread creation may leave an entry
+ uninitialized
+ [27249] libc: libSegFault.so does not output signal number properly
+ [27304] nptl: pthread_cond_destroy does not pass private flag to futex
+ system calls
+ [27318] dynamic-link: glibc fails to load binaries when built with
+ -march=sandybridge: CPU ISA level is lower than required
+ [27343] nss: initgroups() SIGSEGVs when called on a system without
+ nsswich.conf (in a chroot)
+ [27346] dynamic-link: x86: PTWRITE feature check is missing
+ [27389] network: NSS chroot hardening causes regressions in chroot
+ deployments
+ [27403] dynamic-link: aarch64: tlsdesc htab is not freed on dlclose
+ [27444] libc: sysconf reports unsupported option (-1) for
+ _SC_LEVEL1_ICACHE_LINESIZE on X86 since v2.33
+ [27462] nscd: double-free in nscd (CVE-2021-27645)
+ [27468] malloc: aarch64: realloc crash with heap tagging: FAIL:
+ malloc/tst-malloc-thread-fail
+ [27498] dynamic-link: __dl_iterate_phdr lacks unwinding information
+ [27511] libc: S390 memmove assumes Vector Facility when MIE Facility 3
+ is present
+ [27522] glob: glob, glob64 incorrectly marked as __THROW
+ [27555] dynamic-link: Static tests fail with --enable-stack-
+ protector=all
+ [27559] libc: fstat(AT_FDCWD) succeeds (it shouldn't) and returns
+ information for the current directory
+ [27577] dynamic-link: elf/ld.so --help doesn't work
+ [27605] libc: tunables can't control xsave/xsavec selection in
+ dl_runtime_resolve_*
+ [27623] libc: powerpc: Missing registers in sc[v] clobbers list
+ [27645] libc: [linux] sysconf(_SC_NPROCESSOR...) breaks down on
+ containers
+ [27646] dynamic-link: Linker error for non-existing NSS symbols (e.g.
+ _nss_files_getcanonname_r) from within a dlmopen namespace.
+ [27648] libc: FAIL: misc/tst-select
+ [27650] stdio: vfscanf returns too early if a match is longer than
+ INT_MAX
+ [27651] libc: Performance regression after updating to 2.33
+ [27655] string: Wrong size calculation in string/test-strnlen.c
+ [27706] libc: select fails to update timeout on error
+ [27709] libc: arm: FAIL: debug/tst-longjmp_chk2
+ [27721] dynamic-link: x86: ld_audit ignores bind now for TLSDESC and
+ tries resolving them lazily
+ [27744] nptl: Support different libpthread/ld.so load orders in
+ libthread_db
+ [27749] libc: Data race __run_exit_handlers
+ [27761] libc: getconf: Segmentation fault when passing '-vq' as
+ argument
+ [27832] nss: makedb.c:797:7: error: 'writev' specified size 4294967295
+ exceeds maximum object size 2147483647
+ [27870] malloc: MALLOC_CHECK_ causes realloc(valid_ptr, TOO_LARGE) to
+ not set ENOMEM
+ [27872] build: Obsolete configure option --enable-stackguard-
+ randomization
+ [27873] build: tst-cpu-features-cpuinfo fail when building on AMD cpu
+ [27882] localedata: Use U+00AF MACRON in more EBCDIC charsets
+ [27892] libc: powerpc: scv ABI error handling fails to check
+ IS_ERR_VALUE
+ [27896] nptl: mq_notify does not handle separately allocated thread
+ attributes (CVE-2021-33574)
+ [27901] libc: TEST_STACK_ALIGN doesn't work
+ [27902] libc: The x86-64 clone wrapper fails to align child stack
+ [27914] nptl: Install SIGSETXID handler with SA_ONSTACK
+ [27939] libc: aarch64: clone does not align the stack
+ [27968] libc: s390x: clone does not align the stack
+ [28011] libc: Wild read in wordexp (parse_param) (CVE-2021-35942)
+ [28024] string: s390(31bit): Wrong result of memchr (MEMCHR_Z900_G5)
+ with n >= 0x80000000
+ [28028] malloc: malloc: tcache shutdown sequence does not work if the
+ thread never allocated anything
+ [28033] libc: Need to check RTM_ALWAYS_ABORT for RTM
+ [28064] string: x86_64:wcslen implementation list has wcsnlen
+ [28067] libc: FAIL: posix/tst-spawn5
+ [28068] malloc: FAIL: malloc/tst-mallocalign1-mcheck
+ [28071] time: clock_gettime, gettimeofday, time lost vDSO acceleration
+ on older kernels
+ [28075] nis: Out-of-bounds static buffer read in nis_local_domain
+ [28089] build: tst-tls20 fails when linker defaults to --as-needed
+ [28090] build: elf/tst-cpu-features-cpuinfo-static fails on certain
+ AMD64 cpus
+ [28091] network: ns_name_skip may return 0 for domain names without
+ terminator
+
+\f
+Version 2.33
+
+Major new features:
+
+* The dynamic linker accepts the --list-tunables argument which prints
+ all the supported tunables. This option is disable if glibc is
+ configured with tunables disabled (--enable-tunables=no).
+
+* The dynamic linker accepts the --argv0 argument and provides opportunity
+ to change argv[0] string.
+
+* The dynamic linker loads optimized implementations of shared objects
+ from subdirectories under the glibc-hwcaps directory on the library
+ search path if the system's capabilities meet the requirements for
+ that subdirectory. Initially supported subdirectories include
+ "power9" and "power10" for the powerpc64le-linux-gnu architecture,
+ "z13", "z14", "z15" for s390x-linux-gnu, and "x86-64-v2", "x86-64-v3",
+ "x86-64-v4" for x86_64-linux-gnu. In the x86_64-linux-gnu case, the
+ subdirectory names correspond to the vendor-independent x86-64
+ microarchitecture levels defined in the x86-64 psABI supplement.
+
+* The new --help option of the dynamic linker provides usage and
+ information and library search path diagnostics.
+
+* The mallinfo2 function is added to report statistics as per mallinfo,
+ but with larger field widths to accurately report values that are
+ larger than fit in an integer.
+
+* Add <sys/platform/x86.h> to provide query macros for x86 CPU features.
+
+* Support for the RISC-V ISA running on Linux has been expanded to run on
+ 32-bit hardware. This is supported for the following ISA and ABI pairs:
+
+ - rv32imac ilp32
+ - rv32imafdc ilp32
+ - rv32imafdc ilp32d
+
+ The 32-bit RISC-V port requires at least Linux 5.4, GCC 7.1 and binutils
+ 2.28.
+
+* A new fortification level _FORTIFY_SOURCE=3 is available. At this level,
+ glibc may use additional checks that may have an additional performance
+ overhead. At present these checks are available only on LLVM 9 and later.
+ The latest GCC available at this time (10.2) does not support this level of
+ fortification.
+
+Deprecated and removed features, and other changes affecting compatibility:
+
+* The mallinfo function is marked deprecated. Callers should call
+ mallinfo2 instead.
+
+* When dlopen is used in statically linked programs, alternative library
+ implementations from HWCAP subdirectories are no longer loaded.
+ Instead, the default implementation is used.
+
+* The deprecated <sys/vtimes.h> header and the function vtimes have been
+ removed. To support old binaries, the vtimes function continues to exist
+ as a compatibility symbol. Applications should use the getrlimit or
+ prlimit.
+
+* Following a change in the tzdata 2018a release upstream, the zdump
+ program is now installed in the /usr/bin subdirectory. Previously,
+ the /usr/sbin subdirectory was used.
+
+* On s390(x), the type float_t is now derived from the macro
+ __FLT_EVAL_METHOD__ that is defined by the compiler, instead of being
+ hardcoded to double. This does not affect the ABI of any libraries
+ that are part of the GNU C Library, but may affect the ABI of other
+ libraries that use this type in their interfaces. The new definition
+ improves consistency with compiler behavior in many scenarios.
+
+* A future version of glibc will stop loading shared objects from the
+ "tls" subdirectories on the library search path, the subdirectory that
+ corresponds to the AT_PLATFORM system name, and also stop employing
+ the legacy AT_HWCAP search mechanism. Applications should switch to
+ the new glibc-hwcaps mechanism instead; if they do not do that, only
+ the baseline version (directly from the search path directory) will be
+ loaded.
+
+Changes to build and runtime requirements:
+
+* On Linux, the system administrator needs to configure /dev/pts with
+ the intended access modes for pseudo-terminals. glibc no longer
+ attemps to adjust permissions of terminal devices. The previous glibc
+ defaults ("tty" group, user read/write and group write) already
+ corresponded to what most systems used, so that grantpt did not
+ perform any adjustments.
+
+* On Linux, the posix_openpt and getpt functions no longer attempt to
+ use legacy (BSD) pseudo-terminals and assume that if /dev/ptmx exists
+ (and pseudo-terminals are supported), a devpts file system is mounted
+ on /dev/pts. Current systems already meet these requirements.
+
+* s390x requires GCC 7.1 or newer. See gcc Bug 98269.
+
+Security related changes:
+
+ CVE-2021-3326: An assertion failure during conversion from the
+ ISO-20220-JP-3 character set using the iconv function has been fixed.
+ This assertion was triggered by certain valid inputs in which the
+ converted output contains a combined sequence of two wide characters
+ crossing a buffer boundary. Reported by Tavis Ormandy.
+
+ CVE-2020-27618: An infinite loop has been fixed in the iconv program when
+ invoked with input containing redundant shift sequences in the IBM1364,
+ IBM1371, IBM1388, IBM1390, or IBM1399 character sets.
+
+ CVE-2020-29562: An assertion failure has been fixed in the iconv function
+ when invoked with UCS4 input containing an invalid character.
+
+ CVE-2019-25013: A buffer overflow has been fixed in the iconv function when
+ invoked with EUC-KR input containing invalid multibyte input sequences.
+
+The following bugs are resolved with this release:
+
+ [10635] libc: realpath portability patches
+ [16124] dynamic-link: ld.so should allow to change argv[0]
+ [17924] malloc: 'free' should not set errno
+ [18683] libc: Linux faccessat implementation can incorrectly ignore
+ AT_EACCESS
+ [22899] libc: Use 64-bit readdir() in generic POSIX getcwd()
+ [23091] hurd: missing waitid support
+ [23249] libc: Epyc and other current AMD CPUs do not select the
+ "haswell" platform subdirectory
+ [24080] dynamic-link: Definition of "haswell" platform is inconsistent
+ with GCC
+ [24202] libc: m68k setjmp() saves incorrect 'a5' register in --enable-
+ stack-protector=all
+ [24941] libc: Make grantpt usable after multi-threaded fork in more
+ cases
+ [24970] libc: realpath mishandles EOVERFLOW; stat not needed anyway
+ [24973] locale: iconv encounters segmentation fault when converting
+ 0x00 0xfe in EUC-KR to UTF-8 (CVE-2019-25013)
+ [25399] string: undefined reference to `__warn_memset_zero_len' when
+ changing gnuc version
+ [25859] libc: glibc parser for /sys/devices/system/cpu/online is
+ incorrect
+ [25938] dynamic-link: ld.so.cache should store meaning of hwcap mask
+ bits
+ [25971] libc: s390 bits/hwcap.h out of sync with kernel
+ [26053] libc: unlockpt fails with ENOTTY for non-ptmx descriptors
+ [26100] libc: Race in syslog(3) with regards to tag printing.
+ [26124] libc: Export <cpu-features.h>
+ [26130] nscd: Inconsistent nscd cache during pruning
+ [26203] libc: GLRO(dl_x86_cpu_features) may not be intialized
+ [26224] locale: iconv hangs when converting some invalid inputs from
+ several IBM character sets (CVE-2020-27618)
+ [26341] libc: realpath cyclically call __alloca(path_max) to consume
+ too much stack space
+ [26343] manual: invalid documented return type for strerrorname_np(),
+ strerrordesc_np(), sigdescr_np(), sigabbrev_np()
+ [26376] libc: Namespace violation in stdio.h and sys/stat.h if build
+ with optimization.
+ [26383] locale: bind_textdomain_codeset doesn't accept //TRANSLIT
+ anymore
+ [26394] time: [2.33 Regression] FAIL: nptl/tst-join14
+ [26534] math: libm.so 2.32 SIGILL in pow() due to FMA4 instruction on
+ non-FMA4 system
+ [26552] dynamic-link: CPU_FEATURE_USABLE_P should be more conservative
+ [26553] libc: mtx_init allows type set to "mtx_recursive" only
+ [26555] string: strerrorname_np does not return the documented value
+ [26592] libc: pointer arithmetic overflows in realpath
+ [26600] network: Transaction ID collisions cause slow DNS lookups in
+ getaddrinfo
+ [26606] libc: [2.33 Regression] pselect is broken on x32
+ [26615] libc: powerpc: libc segfaults when LD_PRELOADed with libgcc
+ [26620] glob: fnmatch with collating symbols results in segmentation
+ fault
+ [26625] libc: [2.33 Regression] CET is disabled
+ [26636] libc: 32-bit shmctl(IPC_INFO) crashes when shminfo struct is
+ at the end of a memory mapping
+ [26637] libc: semctl SEM_STAT_ANY fails to pass the buffer specified
+ by the caller to the kernel
+ [26639] libc: msgctl IPC_INFO and MSG_INFO return garbage
+ [26647] build: [-Werror=array-parameter=] due to different
+ declarations for __sigsetjmp
+ [26648] libc: mkstemp is likely to fail on systems with non-stricly-
+ monotonic clocks
+ [26649] stdio: printf should handle non-normal x86 long double numbers
+ gracefully (CVE-2020-29573)
+ [26686] build: -Warray-parameter instances building with GCC 11
+ [26687] build: -Warray-bounds instances building with GCC 11
+ [26690] stdio: Aliasing violation in __vfscanf_internal
+ [26691] nptl: Use a minimum guard size of 64 KiB on aarch64
+ [26726] build: GCC warning calling new_composite_name with an array of
+ one element
+ [26736] libc: FAIL: misc/tst-sysvshm-linux
+ [26737] libc: Random FAIL: rt/tst-shm
+ [26791] libc: Missing O_CLOEXEC in sysconf.c
+ [26798] dynamic-link: aarch64: variant PCS symbols may be incorrectly
+ lazy bound
+ [26801] nptl: pthread_mutex_clocklock with CLOCK_MONOTONIC can fail on
+ PI mutexes
+ [26818] string: aarch64: string tests may run ifunc variants that are
+ not safe
+ [26821] libc: Memory leak test failures on Fedora 33
+ [26824] libc: FAIL: elf/tst-cpu-features-supports with recent trunk:
+ FSGSBASE/LM/RDRAND check failure
+ [26833] time: adjtime() with delta == NULL segfaults on armv7 32bit
+ platform
+ [26853] libc: aarch64: Missing unwind information in statically linked
+ startup code
+ [26923] locale: Assertion failure in iconv when converting invalid
+ UCS4 (CVE-2020-29562)
+ [26926] dynamic-link: aarch64: library dependencies are not bti
+ protected
+ [26932] libc: sh: Multiple floating point functions defined as stubs
+ only since 2.31
+ [26964] nptl: pthread_mutex_timedlock returning EAGAIN after futex is
+ locked
+ [26988] dynamic-link: aarch64: BTI mprotect address is not page
+ aligned
+ [27002] build: libc_freeres_fn build failure with GCC 11
+ [27004] dynamic-link: ld.so is miscompiled by GCC 11
+ [27008] dynamic-link: ld.so.cache should have endianness markup
+ [27042] libc: [alpha] anonymous union in struct stat confuses
+ detection logic
+ [27053] libc: Conformance regression in system(3) (and probably also
+ pclose(3))
+ [27072] dynamic-link: static pie ifunc resolvers run before hwcap is
+ setup
+ [27077] network: Do not reload /etc/nsswitch.conf from chroot
+ [27083] libc: Unsafe unbounded alloca in addmntent
+ [27104] dynamic-link: The COMMON_CPUID_INDEX_MAX handshake does not
+ work
+ [27130] string: "rep movsb" performance issue
+ [27150] libc: alpha: wait4() is unavailable in static linking
+ [27177] dynamic-link:
+ GLIBC_TUNABLES=glibc.cpu.x86_ibt=on:glibc.cpu.x86_shstk=on doesn't
+ work
+ [27222] dynamic-link: Incorrect sysdeps/x86/tst-cpu-features-cpuinfo.c
+ [27237] malloc: deadlock in malloc/tst-malloc-stats-cancellation
+ [27256] locale: Assertion failure in ISO-2022-JP-3 gconv module
+ related to combining characters (CVE-2021-3326)
+
\f
Version 2.32
- arc-linux-gnuhf
- arceb-linux-gnu
- The arc* ABI is little-endian while arceb is big-endian. All ABIs use
+ The arc* ABIs are little-endian while arceb is big-endian. All ABIs use
64-bit time (y2038 safe) and 64-bit file offsets (LFS default).
* The GNU C Library now loads audit modules listed in the DT_AUDIT and
DT_DEPAUDIT dynamic section entries of the main executable.
* powerpc64le supports IEEE128 long double libm/libc redirects when
- using the -mabi=ieeelongdouble to compile C code on supported GCC
+ using -mabi=ieeelongdouble to compile C code on supported GCC
toolchains. It is recommended to use GCC 8 or newer when testing
this option.
several APIs have been annotated with GCC 'access' attribute. This
should help GCC 10 issue better warnings.
-* On Linux, functions the pthread_attr_setsigmask_np and
+* On Linux, functions pthread_attr_setsigmask_np and
pthread_attr_getsigmask_np have been added. They allow applications
to specify the signal mask of a thread created with pthread_create.
-* Support for automatically registering threads with the Linux rseq
- system call has been added. This system call is implemented starting
- from Linux 4.18. The Restartable Sequences ABI accelerates user-space
- operations on per-cpu data. It allows user-space to perform updates
- on per-cpu data without requiring heavy-weight atomic operations.
- Automatically registering threads allows all libraries, including libc,
- to make immediate use of the rseq support by using the documented ABI.
- The GNU C Library manual has details on integration of Restartable
- Sequences.
-
* The GNU C Library now provides the header file <sys/single_threaded.h>
which declares the variable __libc_single_threaded. Applications are
encouraged to use this variable for single-thread optimizations,
libpthread.
* The functions sigabbrev_np and sigdescr_np have been added. The
- sigabbrev_np returns the abbreviated signal name (e.g. "HUP" for SIGHUP)
- while sigdescr_np returns a string describing the signal number (e.g
- "Hangup" for SIGHUP). Different than strsignal, sigdescr_np does not
+ sigabbrev_np function returns the abbreviated signal name (e.g. "HUP" for
+ SIGHUP) while sigdescr_np returns a string describing the signal number
+ (e.g "Hangup" for SIGHUP). Different than strsignal, sigdescr_np does not
attempt to translate the return description, both functions return
NULL for an invalid signal number.
are both thread and async-signal safe. These functions are GNU extensions.
* The functions strerrorname_np and strerrordesc_np have been added. The
- strerroname_np returns error number name (e.g. "EINVAL" for EINVAL) while
- strerrordesc_np returns string describing error number
+ strerroname_np function returns error number name (e.g. "EINVAL" for EINVAL)
+ while strerrordesc_np returns a string describing the error number
(e.g "Invalid argument" for EINVAL). Different than strerror,
strerrordesc_np does not attempt to translate the return description, both
functions return NULL for an invalid error number.
* AArch64 now supports standard branch protection security hardening
in glibc when it is built with a GCC that is configured with
- --enable-standard-branch-protection. This includes branch target
+ --enable-standard-branch-protection (or if -mbranch-protection=standard
+ flag is passed when building both GCC target libraries and glibc,
+ in either case a custom GCC is needed). This includes branch target
identification (BTI) and pointer authentication for return addresses
(PAC-RET). They require armv8.5-a and armv8.3-a architecture
extensions respectively for the protection to be effective,
that have been added in or before version 2.28. Replacement
implementations based on TI-RPC, which additionally support IPv6, are
available from <https://github.com/thkukuk/>. This change does not
- affect the "compat" NSS module, which does not depended on libnsl
+ affect the "compat" NSS module, which does not depend on libnsl
since 2.27 and thus can be used without NIS.
* The deprecated <sys/sysctl.h> header and the sysctl function have been
* The deprecated symbols sys_errlist, _sys_errlist, sys_nerr, and _sys_nerr
are no longer available to newly linked binaries, and their declarations
- have been removed from from <stdio.h>. They are exported solely as
+ have been removed from <stdio.h>. They are exported solely as
compatibility symbols to support old binaries. All programs should use
strerror or strerror_r instead.
or contents might be overwritten on subsequent calls in the same thread or
if the thread is terminated. It makes strerror MT-safe.
+* Using weak references to libpthread functions such as pthread_create
+ or pthread_key_create to detect the singled-threaded nature of a
+ program is an obsolescent feature. Future versions of glibc will
+ define pthread_create within libc.so.6 itself, so such checks will
+ always flag the program as multi-threaded. Applications should check
+ the __libc_single_threaded variable declared in
+ <sys/single_threaded.h> instead.
+
* The "files" NSS module no longer supports the "key" database (used for
secure RPC). The contents of the /etc/publickey file will be ignored,
regardless of the settings in /etc/nsswitch.conf. (This method of
applications which use the malloc hooks must preload a special shared
object, to enable the hooks.
+* The hesiod NSS module has been deprecated and will be removed in a
+ future version of glibc. System administrators are encouraged to
+ switch to other approaches for networked account databases, such as
+ LDAP.
+
Changes to build and runtime requirements:
* powerpc64le requires GCC 7.4 or newer. This is required for supporting
Security related changes:
+ CVE-2016-10228: An infinite loop has been fixed in the iconv program when
+ invoked with the -c option and when processing invalid multi-byte input
+ sequences. Reported by Jan Engelhardt.
+
CVE-2020-10029: Trigonometric functions on x86 targets suffered from stack
corruption when they were passed a pseudo-zero argument. Reported by Guido
Vranken / ForAllSecure Mayhem.
- CVE-2020-1751: A defect in the PowerPC backtrace function could cause an
- out-of-bounds write when executed in a signal frame context.
-
CVE-2020-1752: A use-after-free vulnerability in the glob function when
expanding ~user has been fixed.
The following bugs are resolved with this release:
- [The release manager will add the list generated by
- scripts/list-fixed-bugs.py just before the release.]
+ [9809] localedata: ckb_IQ: new Kurdish Sorani locale
+ [10441] manual: Backtraces code example lacks error checking
+ [10815] librt: [timer_create / SIGEV_THREAD] signalmask of
+ timer_sigev_thread dangerous
+ [14231] stdio: stdio-common tests memory requirements
+ [14578] libc: /proc-based emulation for lchmod, fchmodat
+ [16272] dynamic-link: dlopen()ing a DT_FILTER library crashes if
+ filtee has constructor
+ [19519] locale: iconv(1) with -c option hangs on illegal multi-byte
+ sequences (CVE-2016-10228)
+ [19737] admin: Doc page “20.5.2 Infinity and NaN” has incorrect HTML
+ character entities for infinity & pi
+ [20338] libc: Parsing of /etc/gshadow can return bad pointers causing
+ segfaults in applications
+ [20543] libc: Please move from .gnu.linkonce to comdat
+ [22489] network: gcc warns about implicit convertion in
+ ICMP6_FILTER_SETPASS with -Wsign-conversion
+ [22525] localedata: or_IN LC_COLLATE does not use copy "iso14651_t1"
+ [23294] math: Complex _FloatN functions are redirected to the wrong
+ function with -mlong-double-64
+ [23296] libc: Data race in setting function descriptor during lazy
+ binding
+ [23668] dynamic-link: ldconfig: Default to the new format for
+ ld.so.cache
+ [23819] hurd: hurd: Add C11 thread support
+ [23990] build: test-container error out on failure to exec child.
+ [23991] build: shell-container typo in run_command_array
+ [24638] manual: Error in example of parsing a template string
+ [24654] manual: Wrong declaration of wcschr in libc manual
+ [24943] dynamic-link: Support DT_AUDIT, DT_DEPAUDIT in the dynamic
+ linker
+ [25051] dynamic-link: aarch64, powerpc64 uses surplus static tls for
+ dynamically loaded dsos
+ [25098] nptl: nptl: ctype classification functions are not AS-Safe
+ [25219] libc: improve out-of-bounds checking with GCC 10 attribute
+ access
+ [25262] libc: getcontext/setcontext/swapcontext unnecessarily save and
+ restore EAX, ECX and EDX
+ [25397] dynamic-link: Legacy bitmap doesn't cover jitted code
+ [25414] glob: 'glob' use-after-free bug (CVE-2020-1752)
+ [25420] network: Race condition in resolv_conf.c can result in caching
+ stale configuration forever
+ [25487] math: sinl() stack corruption from crafted input
+ (CVE-2020-10029)
+ [25506] build: configure: broken detection of STT_GNU_IFUNC when GCC
+ defaults to PIE
+ [25523] libc: MIPS/Linux inline syscall template is miscompiled
+ [25620] libc: Signed comparison vulnerability in the ARMv7 memcpy()
+ (CVE-2020-6096)
+ [25623] libc: test-sysvmsg, test-sysvsem, test-sysvshm fail with 2.31
+ on 32 bit and old kernel
+ [25635] libc: arm: Wrong sysdep order selection for soft-fp
+ [25639] localedata: Some names of days and months wrongly spelt in
+ Occitan
+ [25657] libc: sigprocmask() and sigisemptyset() manipulate different
+ amount of sigset_t bytes
+ [25691] stdio: printf: memory leak when printing long multibyte
+ strings
+ [25715] libc: system() returns wrong errors when posix_spawn fails
+ [25733] malloc: mallopt(M_MXFAST) can set global_max_fast to 0
+ [25734] locale: mbrtowc with Big5-HKSCS fails to reset conversion
+ state for conversions that produce two Unicode code points
+ [25765] nptl: Incorrect futex syscall in __pthread_disable_asynccancel
+ for linux x86_64 leads to livelock
+ [25788] dynamic-link: [i386] -fno-omit-frame-pointer in CFLAGS causes
+ test failures, invalid instruction in ld.so
+ [25790] glob: Typo in tst-fnmatch.input
+ [25810] libc: x32: Incorrect syscall entries with pointer, off_t and
+ size_t
+ [25819] localedata: Update locale data to Unicode 13.0.0
+ [25824] libc: Abnormal function of strnlen in aarch64
+ [25887] dynamic-link: Wasted space in _dl_x86_feature_1[1]
+ [25896] libc: Incorrect prctl
+ [25902] libc: Bad LOADARGS_N
+ [25905] dynamic-link: VSX registers are corrupted during PLT
+ resolution when glibc is built with --disable-multi-arch and --with-
+ cpu=power9
+ [25933] string: Off by one error in __strncmp_avx2 when
+ length=VEC_SIZE*4 and strings are at page boundaries can cause a
+ segfault
+ [25942] nptl: Deadlock on stack_cache_lock between __nptl_setxid and
+ exiting detached thread
+ [25966] libc: Incorrect access of __x86_shared_non_temporal_threshold
+ for x32
+ [25976] nss: internal_end*ent in nss_compat may clobber errno, hiding
+ ERANGE
+ [25999] nptl: Use-after-free issue in pthread_getaddr_default_np
+ [26073] math: getpayload() has wrong return value
+ [26076] dynamic-link: dlmopen crashes after failing to load
+ dependencies in audit mode
+ [26120] localedata: column width of of some Korean
+ JUNGSEONG/JONGSEONG characters wrong (should be 0)
+ [26128] libc: Incorrect bit_cpu_CLFLUSHOPT
+ [26133] libc: Incorrect need_arch_feature_F16C
+ [26137] libc: strtod() triggers exception FE_INEXACT on reasonable
+ input
+ [26149] libc: PKU is usable only if OSPKE is set
+ [26173] libc: powerpc64*: Add @notoc to calls to functions that do not
+ preserve r2
+ [26208] libc: Incorrect bit_cpu_CLFSH
+ [26210] network: Incorrect use of hidden symbols for global sunrpc
+ variables
+ [26211] stdio: printf integer overflow calculating allocation size
+ [26214] stdio: printf_fp double free
+ [26215] stdio: printf_fp memory leak
+ [26232] time: FAIL: support/tst-timespec for 32-bit targets
+ [26258] nss: nss_compat should not read input files with mmap
+ [26332] string: Incorrect cache line size load causes memory
+ corruption in memset
+
\f
Version 2.31
Security related changes:
+ CVE-2020-1751: A defect in the PowerPC backtrace function could cause an
+ out-of-bounds write when executed in a signal frame context.
+
CVE-2019-19126: ld.so failed to ignore the LD_PREFER_MAP_32BIT_EXEC
environment variable during program execution after a security
transition, allowing local attackers to restrict the possible mapping
[24040] libc: riscv64: unterminated call chain in __thread_start
[24047] network: libresolv should use IP_RECVERR/IPV6_RECVERR to avoid
long timeouts
- [24051] stdio: puts and putchar ouput to _IO_stdout instead of stdout
+ [24051] stdio: puts and putchar output to _IO_stdout instead of stdout
[24059] nss: nss_files: get_next_alias calls fgets_unlocked without
checking for NULL.
[24114] regex: regexec buffer read overrun in "grep -i
[22111] malloc: malloc: per thread cache is not returned when thread exits
[22112] localedata: Fix LC_TELEPHONE/LC_NAME for az_AZ
[22134] libc: [linux] implement fexecve with execveat
- [22142] libc: [powerpc] printf oupts a wrong value of DBL_MAX on ppc64 and
+ [22142] libc: [powerpc] printf outputs a wrong value of DBL_MAX on ppc64 and
ppc64le
[22145] libc: ttyname() gives up too early in the face of namespaces
[22146] math: C++ build issue with float128 on x86_64
The following bugs are resolved with this release:
- [4099] stdio: Overly agressive caching by stream i/o functions.
+ [4099] stdio: Overly aggressive caching by stream i/o functions.
[7065] build: Support building glibc with -fstack-protector or -fstack-
protector-all
[9842] localedata: en_CA: incorrect date format
* The following bugs are resolved with this release:
- 3406, 5209, 5210, 5381, 5794, 5814, 5911, 6428, 6438, 6442, 6447, 6461,
- 6472, 6505, 6544, 6589, 6612, 6634, 6653, 6654, 6657, 6698, 6712, 6713,
- 6719, 6723, 6724, 6740, 6763, 6771, 6790, 6791, 6817, 6824, 6839, 6843,
- 6845, 6856, 6857, 6860, 6867, 6875, 6919, 6920, 6942, 6947, 6955, 6966,
- 6968, 6974, 6980, 6995, 7008, 7009, 7029
+ 2447, 3406, 5209, 5210, 5381, 5794, 5814, 5911, 6428, 6438, 6442, 6447,
+ 6461, 6472, 6505, 6544, 6589, 6612, 6634, 6653, 6654, 6657, 6698, 6712,
+ 6713, 6719, 6723, 6724, 6740, 6763, 6771, 6790, 6791, 6817, 6824, 6839,
+ 6843, 6845, 6856, 6857, 6860, 6867, 6875, 6919, 6920, 6942, 6947, 6955,
+ 6966, 6968, 6974, 6980, 6995, 7008, 7009, 7029
* Unified lookup for getaddrinfo: IPv4 and IPv6 addresses are now looked
up at the same time. Implemented by Ulrich Drepper.
latest files released from Berkeley.
\f
----------------------------------------------------------------------
-Copyright information:
-
-Copyright (C) 1992-2020 Free Software Foundation, Inc.
+Copying conditions:
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the