]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - NEWS
Update automatically-generated copyright dates
[thirdparty/glibc.git] / NEWS
diff --git a/NEWS b/NEWS
index b39b1e5e3311046944a4c82ac3385dbaa3418836..9da2a740ecac354ca01e5117cb2eb720430bf6e7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
 GNU C Library NEWS -- history of user-visible changes.
-Copyright (C) 1992-2021 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/>
@@ -51,17 +51,67 @@ Major new features:
 
 * 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 '1' uses the current existing
-  algorithm, while a value of '2' selects the new DFS-based algorithm.
+* 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:
 
@@ -72,6 +122,10 @@ Deprecated and removed features, and other changes affecting compatibility:
 
 * 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]
@@ -176,6 +230,13 @@ Major new features:
   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