Opened 2 years ago

Closed 2 years ago

#5084 closed enhancement (fixed)

glibc-2.36

Reported by: Xi Ruoyao Owned by: lfs-book
Priority: normal Milestone: 11.2
Component: Book Version: git
Severity: normal Keywords:
Cc:

Description

New minor version.

See https://sourceware.org/glibc/wiki/Release/2.36.

Libsanitizer (in LFS GCC pass2 & final, BLFS GCC, and BLFS LLVM) needs to be fixed: https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598184.html

Libgo (in BLFS GCC) needs to be fixed: https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598357.html

Change History (5)

comment:1 by Xi Ruoyao, 2 years ago

Systemd: https://github.com/systemd/systemd/pull/23992

It's said Efivar and Hdparm need a fix too.

comment:2 by Bruce Dubbs, 2 years ago

Summary: Glibc-2.36 (not released yet, early ticket for downstream fix document)glibc-2.36

Version 2.36

Major new features:

  • Support for DT_RELR relative relocation format has been added to glibc. This is a new ELF dynamic tag that improves the size of relative relocations in shared object files and position independent executables (PIE). DT_RELR generation requires linker support for -z pack-relative-relocs option, which is supported for some targets in recent binutils versions. Lazy binding doesn't apply to DT_RELR.
  • On Linux, the pidfd_open, pidfd_getfd, and pidfd_send_signal functions have been added. The pidfd functionality provides access to a process while avoiding the issue of PID reuse on tranditional Unix systems.
  • On Linux, the process_madvise function has been added. It has the same functionality as madvise but alters the target process identified by the pidfd.
  • On Linux, the process_mrelease function has been added. It allows a caller to release the memory of a dying process. The release of the memory is carried out in the context of the caller, using the caller's CPU affinity, and priority with CPU usage accounted to the caller.
  • The “no-aaaa” DNS stub resolver option has been added. System administrators can use it to suppress AAAA queries made by the stub resolver, including AAAA lookups triggered by NSS-based interfaces such as getaddrinfo. Only DNS lookups are affected: IPv6 data in /etc/hosts is still used, getaddrinfo with AI_PASSIVE will still produce IPv6 addresses, and configured IPv6 name servers are still used. To produce correct Name Error (NXDOMAIN) results, AAAA queries are translated to A queries. The new resolver option is intended primarily for diagnostic purposes, to rule out that AAAA DNS queries have adverse impact. It is incompatible with EDNS0 usage and DNSSEC validation by applications.
  • On Linux, the fsopen, fsmount, move_mount, fsconfig, fspick, open_tree, and mount_setattr have been added. They are part of the new Linux kernel mount APIs that allow applications to more flexibly configure and operate on filesystem mounts. The new mount APIs are specifically designed to work with namespaces.
  • localedef now accepts locale definition files encoded in UTF-8. Previously, input bytes not within the ASCII range resulted in unpredictable output.
  • Support for the mbrtoc8 and c8rtomb multibyte/UTF-8 character conversion functions has been added per the ISO C2X N2653 and C++20 P0482R6 proposals. Support for the char8_t typedef has been added per the ISO C2X N2653 proposal. The functions are declared in uchar.h in C2X mode or when the _GNU_SOURCE macro or C++20 cpp_char8_t feature test macro is defined. The char8_t typedef is declared in uchar.h in C2X mode or when the _GNU_SOURCE macro is defined and the C++20 cpp_char8_t feature test macro is not defined (if cpp_char8_t is defined, then char8_t is a builtin type).
  • The functions arc4random, arc4random_buf, and arc4random_uniform have been added. The functions wrap getrandom and/or /dev/urandom to return high- quality randomness from the kernel.
  • Support for LoongArch running on Linux has been added. This port requires as least binutils 2.38, GCC 12, and Linux 5.19. Currently only hard-float ABI is supported:
  • loongarch64-linux-gnu

The LoongArch ABI is 64-bit little-endian.

Deprecated and removed features, and other changes affecting compatibility:

  • Support for prelink will be removed in the next release; this includes removal of the LD_TRACE_PRELINKING, and LD_USE_LOAD_BIAS, environment variables and their functionality in the dynamic loader.
  • The Linux kernel version check has been removed along with the LD_ASSUME_KERNEL environment variable. The minimum kernel used to built glibc is still provided through NT_GNU_ABI_TAG ELF note and also printed when libc.so is issued directly.
  • On Linux, The LD_LIBRARY_VERSION environment variable has been removed.

In addition 62 documented bugs were fixed.

comment:3 by Xi Ruoyao, 2 years ago

A race condition in testsuite: https://sourceware.org/git/?p=glibc.git;a=commit;h=e03f5ccd6cc8f829416156eac75acee501626c1f

We can pull the patch in or document the test failure.

comment:4 by Xi Ruoyao, 2 years ago

Priority: lownormal

comment:5 by Bruce Dubbs, 2 years ago

Resolution: fixed
Status: newclosed

Fixed at commit 1b11115cd2bde70178f0b600de85f64a12cc36dc

Update to binutils-2.38.
Update to util-linux-2.38.1.
Update to Python3-3.10.6.
Update to glibc-2.36.
Note: See TracTickets for help on using tickets.