2024-05-14 11:33:16 +02:00
|
|
|
From ec4f0a28ed48c51165e3e72c7427efb0ae14a124 Mon Sep 17 00:00:00 2001
|
2023-05-25 11:15:20 +02:00
|
|
|
From: Giuliano Belinassi <gbelinassi@suse.de>
|
2024-05-14 11:33:16 +02:00
|
|
|
Date: Mon, 6 May 2024 20:09:55 -0300
|
2023-05-25 11:15:20 +02:00
|
|
|
Subject: [PATCH] Add Userspace Livepatch prologue into ASM functions
|
|
|
|
|
|
|
|
Userspace Live Patching (ULP) refers to the process of applying
|
|
|
|
patches to the libraries used by a running process, without
|
|
|
|
interrupting it. In order to archive this, functions must have
|
|
|
|
the NOP prologue. This prologue is included automatically when
|
|
|
|
compiled with -fpatchable-function-entry, but for ASM functions
|
|
|
|
this have to be included manually. This patch does this.
|
|
|
|
|
|
|
|
Signed-off-by: Giuliano Belinassi <gbelinassi@suse.de>
|
|
|
|
---
|
2024-05-14 11:33:16 +02:00
|
|
|
Makeconfig | 5 +++
|
|
|
|
config.h.in | 3 ++
|
2023-05-25 11:15:20 +02:00
|
|
|
config.make.in | 1 +
|
2024-05-14 11:33:16 +02:00
|
|
|
configure | 21 +++++++++
|
|
|
|
configure.ac | 13 ++++++
|
|
|
|
sysdeps/x86_64/multiarch/strcmp-avx2.S | 5 +--
|
|
|
|
sysdeps/x86_64/multiarch/strcmp-evex.S | 5 +--
|
|
|
|
sysdeps/x86_64/multiarch/strcmp-sse4_2.S | 5 +--
|
|
|
|
sysdeps/x86_64/sysdep.h | 54 ++++++++++++++++++++++--
|
|
|
|
9 files changed, 96 insertions(+), 16 deletions(-)
|
2023-05-25 11:15:20 +02:00
|
|
|
|
|
|
|
diff --git a/Makeconfig b/Makeconfig
|
2024-05-14 11:33:16 +02:00
|
|
|
index e583765712..b136e10224 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/Makeconfig
|
|
|
|
+++ b/Makeconfig
|
2024-05-14 11:33:16 +02:00
|
|
|
@@ -981,6 +981,11 @@ else
|
Accepting request 1102127 from home:Andreas_Schwab:Factory
- Update to glibc 2.38
* When C2X features are enabled and the base argument is 0 or 2, the
following functions support binary integers prefixed by 0b or 0B as
input
* PRIb*, PRIB* and SCNb* macros from C2X have been added to
<inttypes.h>.
* printf-family functions now support the wN format length modifiers for
arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t
and the wfN format
length modifiers for arguments of type int_fastN_t or uint_fastN_t, as
specified in draft ISO C2X
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create
* Vector math library libmvec support has been added to AArch64
* The strlcpy and strlcat functions have been added
* CVE-2023-25139: When the printf family of functions is called with a
format specifier that uses an <apostrophe> (enable grouping) and a
minimum width specifier, the resulting output could be larger than
reasonably expected by a caller that computed a tight bound on the
buffer size
- Enable build with _FORTIFY_SOURCE
- glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk
- iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized
encoding names (BZ #30694)
- printf-grouping.patch, strftime-time64.patch,
getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch,
gshadow-erange-rhandling.patch, system-sigchld-block.patch,
gmon-buffer-alloc.patch, check-pf-cancel-handler.patch,
powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch,
dl-find-object-return.patch; Removed
OBS-URL: https://build.opensuse.org/request/show/1102127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=657
2023-08-03 10:05:05 +02:00
|
|
|
+cflags += $(no-fortify-source)
|
|
|
|
endif
|
2023-05-25 11:15:20 +02:00
|
|
|
|
|
|
|
+# Add flags for Userspace Livepatching support.
|
|
|
|
+ifeq (yes,$(enable-userspace-livepatch))
|
|
|
|
++cflags += -fpatchable-function-entry=16,14
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
# Each sysdeps directory can contain header files that both will be
|
|
|
|
# used to compile and will be installed. Each can also contain an
|
|
|
|
# include/ subdirectory, whose header files will be used to compile
|
|
|
|
diff --git a/config.h.in b/config.h.in
|
2024-05-14 11:33:16 +02:00
|
|
|
index c4cc7d3b9a..dc70ed03d0 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/config.h.in
|
|
|
|
+++ b/config.h.in
|
2024-05-14 11:33:16 +02:00
|
|
|
@@ -205,6 +205,9 @@
|
2023-05-25 11:15:20 +02:00
|
|
|
/* Define to 1 if libpthread actually resides in libc. */
|
|
|
|
#define PTHREAD_IN_LIBC 0
|
|
|
|
|
|
|
|
+/* Define to 1 if support for userspace livepatching is enabled. */
|
|
|
|
+#define ENABLE_USERSPACE_LIVEPATCH 0
|
|
|
|
+
|
|
|
|
/* An integer used to scale the timeout of test programs. */
|
|
|
|
#define TIMEOUTFACTOR 1
|
|
|
|
|
|
|
|
diff --git a/config.make.in b/config.make.in
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
index 55e8b7563b..0f14c05d62 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/config.make.in
|
|
|
|
+++ b/config.make.in
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
@@ -81,6 +81,7 @@ mach-interface-list = @mach_interface_list@
|
|
|
|
memory-tagging = @memory_tagging@
|
2023-05-25 11:15:20 +02:00
|
|
|
|
|
|
|
# Configuration options.
|
|
|
|
+enable-userspace-livepatch = @enable_userspace_livepatch@
|
|
|
|
build-shared = @shared@
|
|
|
|
build-profile = @profile@
|
|
|
|
build-static-nss = @static_nss@
|
|
|
|
diff --git a/configure b/configure
|
2024-05-14 11:33:16 +02:00
|
|
|
index 432e40a592..eb6b203925 100755
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/configure
|
|
|
|
+++ b/configure
|
Accepting request 1102127 from home:Andreas_Schwab:Factory
- Update to glibc 2.38
* When C2X features are enabled and the base argument is 0 or 2, the
following functions support binary integers prefixed by 0b or 0B as
input
* PRIb*, PRIB* and SCNb* macros from C2X have been added to
<inttypes.h>.
* printf-family functions now support the wN format length modifiers for
arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t
and the wfN format
length modifiers for arguments of type int_fastN_t or uint_fastN_t, as
specified in draft ISO C2X
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create
* Vector math library libmvec support has been added to AArch64
* The strlcpy and strlcat functions have been added
* CVE-2023-25139: When the printf family of functions is called with a
format specifier that uses an <apostrophe> (enable grouping) and a
minimum width specifier, the resulting output could be larger than
reasonably expected by a caller that computed a tight bound on the
buffer size
- Enable build with _FORTIFY_SOURCE
- glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk
- iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized
encoding names (BZ #30694)
- printf-grouping.patch, strftime-time64.patch,
getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch,
gshadow-erange-rhandling.patch, system-sigchld-block.patch,
gmon-buffer-alloc.patch, check-pf-cancel-handler.patch,
powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch,
dl-find-object-return.patch; Removed
OBS-URL: https://build.opensuse.org/request/show/1102127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=657
2023-08-03 10:05:05 +02:00
|
|
|
@@ -622,6 +622,7 @@ LIBOBJS
|
2023-05-25 11:15:20 +02:00
|
|
|
pthread_in_libc
|
|
|
|
RELEASE
|
|
|
|
VERSION
|
|
|
|
+enable_userspace_livepatch
|
|
|
|
mach_interface_list
|
|
|
|
DEFINES
|
|
|
|
static_nss
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
@@ -812,6 +813,7 @@ enable_cet
|
2023-05-25 11:15:20 +02:00
|
|
|
enable_scv
|
Accepting request 1102127 from home:Andreas_Schwab:Factory
- Update to glibc 2.38
* When C2X features are enabled and the base argument is 0 or 2, the
following functions support binary integers prefixed by 0b or 0B as
input
* PRIb*, PRIB* and SCNb* macros from C2X have been added to
<inttypes.h>.
* printf-family functions now support the wN format length modifiers for
arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t
and the wfN format
length modifiers for arguments of type int_fastN_t or uint_fastN_t, as
specified in draft ISO C2X
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create
* Vector math library libmvec support has been added to AArch64
* The strlcpy and strlcat functions have been added
* CVE-2023-25139: When the printf family of functions is called with a
format specifier that uses an <apostrophe> (enable grouping) and a
minimum width specifier, the resulting output could be larger than
reasonably expected by a caller that computed a tight bound on the
buffer size
- Enable build with _FORTIFY_SOURCE
- glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk
- iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized
encoding names (BZ #30694)
- printf-grouping.patch, strftime-time64.patch,
getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch,
gshadow-erange-rhandling.patch, system-sigchld-block.patch,
gmon-buffer-alloc.patch, check-pf-cancel-handler.patch,
powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch,
dl-find-object-return.patch; Removed
OBS-URL: https://build.opensuse.org/request/show/1102127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=657
2023-08-03 10:05:05 +02:00
|
|
|
enable_fortify_source
|
2023-05-25 11:15:20 +02:00
|
|
|
with_cpu
|
|
|
|
+enable_userspace_livepatch
|
|
|
|
'
|
|
|
|
ac_precious_vars='build_alias
|
|
|
|
host_alias
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
@@ -1490,6 +1492,8 @@ Optional Features:
|
Accepting request 1102127 from home:Andreas_Schwab:Factory
- Update to glibc 2.38
* When C2X features are enabled and the base argument is 0 or 2, the
following functions support binary integers prefixed by 0b or 0B as
input
* PRIb*, PRIB* and SCNb* macros from C2X have been added to
<inttypes.h>.
* printf-family functions now support the wN format length modifiers for
arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t
and the wfN format
length modifiers for arguments of type int_fastN_t or uint_fastN_t, as
specified in draft ISO C2X
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create
* Vector math library libmvec support has been added to AArch64
* The strlcpy and strlcat functions have been added
* CVE-2023-25139: When the printf family of functions is called with a
format specifier that uses an <apostrophe> (enable grouping) and a
minimum width specifier, the resulting output could be larger than
reasonably expected by a caller that computed a tight bound on the
buffer size
- Enable build with _FORTIFY_SOURCE
- glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk
- iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized
encoding names (BZ #30694)
- printf-grouping.patch, strftime-time64.patch,
getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch,
gshadow-erange-rhandling.patch, system-sigchld-block.patch,
gmon-buffer-alloc.patch, check-pf-cancel-handler.patch,
powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch,
dl-find-object-return.patch; Removed
OBS-URL: https://build.opensuse.org/request/show/1102127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=657
2023-08-03 10:05:05 +02:00
|
|
|
Use -D_FORTIFY_SOURCE=[1|2|3] to control code
|
|
|
|
hardening, defaults to highest possible value
|
|
|
|
supported by the build compiler.
|
2023-05-25 11:15:20 +02:00
|
|
|
+ --enable-userspace-livepatch
|
|
|
|
+ build with userspace livepatch support [default=no]
|
|
|
|
|
|
|
|
Optional Packages:
|
|
|
|
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
2024-05-14 11:33:16 +02:00
|
|
|
@@ -7867,6 +7871,23 @@ libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
|
2023-05-25 11:15:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+# Check whether --enable-userspace-livepatch was given.
|
Accepting request 1102127 from home:Andreas_Schwab:Factory
- Update to glibc 2.38
* When C2X features are enabled and the base argument is 0 or 2, the
following functions support binary integers prefixed by 0b or 0B as
input
* PRIb*, PRIB* and SCNb* macros from C2X have been added to
<inttypes.h>.
* printf-family functions now support the wN format length modifiers for
arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t
and the wfN format
length modifiers for arguments of type int_fastN_t or uint_fastN_t, as
specified in draft ISO C2X
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create
* Vector math library libmvec support has been added to AArch64
* The strlcpy and strlcat functions have been added
* CVE-2023-25139: When the printf family of functions is called with a
format specifier that uses an <apostrophe> (enable grouping) and a
minimum width specifier, the resulting output could be larger than
reasonably expected by a caller that computed a tight bound on the
buffer size
- Enable build with _FORTIFY_SOURCE
- glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk
- iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized
encoding names (BZ #30694)
- printf-grouping.patch, strftime-time64.patch,
getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch,
gshadow-erange-rhandling.patch, system-sigchld-block.patch,
gmon-buffer-alloc.patch, check-pf-cancel-handler.patch,
powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch,
dl-find-object-return.patch; Removed
OBS-URL: https://build.opensuse.org/request/show/1102127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=657
2023-08-03 10:05:05 +02:00
|
|
|
+if test ${enable_userspace_livepatch+y}
|
|
|
|
+then :
|
2023-05-25 11:15:20 +02:00
|
|
|
+ enableval=$enable_userspace_livepatch; enable_userspace_livepatch=$enableval
|
Accepting request 1102127 from home:Andreas_Schwab:Factory
- Update to glibc 2.38
* When C2X features are enabled and the base argument is 0 or 2, the
following functions support binary integers prefixed by 0b or 0B as
input
* PRIb*, PRIB* and SCNb* macros from C2X have been added to
<inttypes.h>.
* printf-family functions now support the wN format length modifiers for
arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t
and the wfN format
length modifiers for arguments of type int_fastN_t or uint_fastN_t, as
specified in draft ISO C2X
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create
* Vector math library libmvec support has been added to AArch64
* The strlcpy and strlcat functions have been added
* CVE-2023-25139: When the printf family of functions is called with a
format specifier that uses an <apostrophe> (enable grouping) and a
minimum width specifier, the resulting output could be larger than
reasonably expected by a caller that computed a tight bound on the
buffer size
- Enable build with _FORTIFY_SOURCE
- glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk
- iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized
encoding names (BZ #30694)
- printf-grouping.patch, strftime-time64.patch,
getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch,
gshadow-erange-rhandling.patch, system-sigchld-block.patch,
gmon-buffer-alloc.patch, check-pf-cancel-handler.patch,
powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch,
dl-find-object-return.patch; Removed
OBS-URL: https://build.opensuse.org/request/show/1102127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=657
2023-08-03 10:05:05 +02:00
|
|
|
+else $as_nop
|
2023-05-25 11:15:20 +02:00
|
|
|
+ enable_userspace_livepatch=no
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+# Libpulp uses -fpatchable-function-entry to add padding NOPS to the
|
|
|
|
+# prologue of all functions.
|
|
|
|
+if test "x$enable_userspace_livepatch" = xyes; then
|
Accepting request 1102127 from home:Andreas_Schwab:Factory
- Update to glibc 2.38
* When C2X features are enabled and the base argument is 0 or 2, the
following functions support binary integers prefixed by 0b or 0B as
input
* PRIb*, PRIB* and SCNb* macros from C2X have been added to
<inttypes.h>.
* printf-family functions now support the wN format length modifiers for
arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t
and the wfN format
length modifiers for arguments of type int_fastN_t or uint_fastN_t, as
specified in draft ISO C2X
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create
* Vector math library libmvec support has been added to AArch64
* The strlcpy and strlcat functions have been added
* CVE-2023-25139: When the printf family of functions is called with a
format specifier that uses an <apostrophe> (enable grouping) and a
minimum width specifier, the resulting output could be larger than
reasonably expected by a caller that computed a tight bound on the
buffer size
- Enable build with _FORTIFY_SOURCE
- glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk
- iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized
encoding names (BZ #30694)
- printf-grouping.patch, strftime-time64.patch,
getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch,
gshadow-erange-rhandling.patch, system-sigchld-block.patch,
gmon-buffer-alloc.patch, check-pf-cancel-handler.patch,
powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch,
dl-find-object-return.patch; Removed
OBS-URL: https://build.opensuse.org/request/show/1102127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=657
2023-08-03 10:05:05 +02:00
|
|
|
+ printf "%s\n" "#define ENABLE_USERSPACE_LIVEPATCH 1" >>confdefs.h
|
2023-05-25 11:15:20 +02:00
|
|
|
+
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+
|
|
|
|
VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
|
|
|
|
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
|
|
|
|
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
2024-05-14 11:33:16 +02:00
|
|
|
index bdc385d03c..cb4d28b3d8 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/configure.ac
|
|
|
|
+++ b/configure.ac
|
2024-05-14 11:33:16 +02:00
|
|
|
@@ -1756,6 +1756,19 @@ AC_SUBST(DEFINES)
|
2023-05-25 11:15:20 +02:00
|
|
|
dnl See sysdeps/mach/configure.ac for this variable.
|
|
|
|
AC_SUBST(mach_interface_list)
|
|
|
|
|
|
|
|
+AC_ARG_ENABLE([userspace-livepatch],
|
|
|
|
+ AS_HELP_STRING([--enable-userspace-livepatch],
|
|
|
|
+ [build with userspace livepatch support @<:@default=no@:>@]),
|
|
|
|
+ [enable_userspace_livepatch=$enableval],
|
|
|
|
+ [enable_userspace_livepatch=no])
|
|
|
|
+
|
|
|
|
+# Libpulp uses -fpatchable-function-entry to add padding NOPS to the
|
|
|
|
+# prologue of all functions.
|
|
|
|
+if test "x$enable_userspace_livepatch" = xyes; then
|
|
|
|
+ AC_DEFINE(ENABLE_USERSPACE_LIVEPATCH)
|
|
|
|
+fi
|
|
|
|
+AC_SUBST(enable_userspace_livepatch)
|
|
|
|
+
|
|
|
|
VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
|
|
|
|
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
|
|
|
|
AC_SUBST(VERSION)
|
|
|
|
diff --git a/sysdeps/x86_64/multiarch/strcmp-avx2.S b/sysdeps/x86_64/multiarch/strcmp-avx2.S
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
index 5bc1d90078..3ea96c0aa3 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/sysdeps/x86_64/multiarch/strcmp-avx2.S
|
|
|
|
+++ b/sysdeps/x86_64/multiarch/strcmp-avx2.S
|
|
|
|
@@ -201,10 +201,7 @@ END (STRCASECMP)
|
|
|
|
# endif
|
|
|
|
|
|
|
|
.p2align 4
|
|
|
|
-STRCMP:
|
|
|
|
- cfi_startproc
|
|
|
|
- _CET_ENDBR
|
|
|
|
- CALL_MCOUNT
|
|
|
|
+FUNCTION_START(STRCMP)
|
|
|
|
|
|
|
|
# if defined USE_AS_STRCASECMP_L
|
|
|
|
/* We have to fall back on the C implementation for locales with
|
|
|
|
diff --git a/sysdeps/x86_64/multiarch/strcmp-evex.S b/sysdeps/x86_64/multiarch/strcmp-evex.S
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
index 06730ab2a1..d96b1c4824 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/sysdeps/x86_64/multiarch/strcmp-evex.S
|
|
|
|
+++ b/sysdeps/x86_64/multiarch/strcmp-evex.S
|
|
|
|
@@ -224,10 +224,7 @@ END (STRCASECMP)
|
|
|
|
# endif
|
|
|
|
|
|
|
|
.p2align 4
|
|
|
|
-STRCMP:
|
|
|
|
- cfi_startproc
|
|
|
|
- _CET_ENDBR
|
|
|
|
- CALL_MCOUNT
|
|
|
|
+FUNCTION_START(STRCMP)
|
|
|
|
|
|
|
|
# if defined USE_AS_STRCASECMP_L
|
|
|
|
/* We have to fall back on the C implementation for locales with
|
|
|
|
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse4_2.S b/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
index 4e98da0246..2a2280c65f 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
|
|
|
|
+++ b/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
|
|
|
|
@@ -103,10 +103,7 @@ END (STRCASECMP)
|
|
|
|
|
|
|
|
# define arg arg
|
|
|
|
|
|
|
|
-STRCMP:
|
|
|
|
- cfi_startproc
|
|
|
|
- _CET_ENDBR
|
|
|
|
- CALL_MCOUNT
|
|
|
|
+FUNCTION_START(STRCMP)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This implementation uses SSE to compare up to 16 bytes at a time.
|
|
|
|
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
|
2024-05-14 11:33:16 +02:00
|
|
|
index db6e36b2dd..86a5d1b2be 100644
|
2023-05-25 11:15:20 +02:00
|
|
|
--- a/sysdeps/x86_64/sysdep.h
|
|
|
|
+++ b/sysdeps/x86_64/sysdep.h
|
2024-05-14 11:33:16 +02:00
|
|
|
@@ -49,6 +49,46 @@ enum cf_protection_level
|
2023-05-25 11:15:20 +02:00
|
|
|
|
|
|
|
#ifdef __ASSEMBLER__
|
|
|
|
|
|
|
|
+/* Libpulp uses -fpatchable-function-entry to add padding NOPS to the
|
|
|
|
+ prologue of all functions. This works for C functions. For functions
|
|
|
|
+ written in ASM, the way we do this is by adding this prologue manually. */
|
|
|
|
+
|
2023-05-25 11:46:14 +02:00
|
|
|
+#if ENABLE_USERSPACE_LIVEPATCH
|
2024-05-14 11:33:16 +02:00
|
|
|
+
|
|
|
|
+/* Instructions to be inserted before the function label. */
|
|
|
|
+# define ULP_NOPS_PRE_PROLOGUE .rept 14; nop; .endr
|
|
|
|
+
|
|
|
|
+/* Instruction to be inserted after the function label. */
|
|
|
|
+# define ULP_NOPS_POST_PROLOGUE .rept 2; nop; .endr
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/* this macro expands according to the following condition:
|
|
|
|
+ * if name = _start, then the prologue is not inserted.
|
|
|
|
+ * if name = _dl_relocate_static_pie, then the prologue is not inserted.
|
|
|
|
+ * if name = anything else, then the prologue is inserted.
|
|
|
|
+ **/
|
|
|
|
+# define __ULP_POST_PROLOGUE_dl_relocate_static_pie ,
|
|
|
|
+# define __ULP_PRE_PROLOGUE_start ,
|
|
|
|
+# define __ULP_PRE_PROLOGUE(x, y,...) y
|
|
|
|
+# define _ULP_PRE_PROLOGUE(x, ...) __ULP_PRE_PROLOGUE(x, __VA_ARGS__)
|
|
|
|
+# define ULP_PRE_PROLOGUE(name) _ULP_PRE_PROLOGUE(__ULP_PRE_PROLOGUE##name, ULP_NOPS_PRE_PROLOGUE,)
|
|
|
|
+
|
|
|
|
+/* this macro expands according to the following condition:
|
|
|
|
+ * if name = _start, then the postlogue is not inserted.
|
|
|
|
+ * if name = _dl_relocate_static_pie, then the postlogue is not inserted.
|
|
|
|
+ * if name = anything else, then the postlogue is inserted.
|
|
|
|
+ **/
|
|
|
|
+# define __ULP_POST_PROLOGUE_dl_relocate_static_pie ,
|
|
|
|
+# define __ULP_POST_PROLOGUE_start ,
|
|
|
|
+# define __ULP_POST_PROLOGUE(x, y,...) y
|
|
|
|
+# define _ULP_POST_PROLOGUE(x, ...) __ULP_POST_PROLOGUE(x, __VA_ARGS__)
|
|
|
|
+# define ULP_POST_PROLOGUE(name) _ULP_POST_PROLOGUE(__ULP_POST_PROLOGUE##name, ULP_NOPS_POST_PROLOGUE,)
|
|
|
|
+
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
+#else
|
2024-05-14 11:33:16 +02:00
|
|
|
+# define ULP_PRE_PROLOGUE(name)
|
|
|
|
+# define ULP_POST_PROLOGUE(name)
|
2023-05-25 11:15:20 +02:00
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
/* Syntactic details of assembler. */
|
|
|
|
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
#ifdef _CET_ENDBR
|
2024-05-14 11:33:16 +02:00
|
|
|
@@ -58,15 +98,21 @@ enum cf_protection_level
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
# define _CET_NOTRACK
|
|
|
|
#endif
|
|
|
|
|
|
|
|
+/* Define the first instructions of a function. */
|
|
|
|
+#define FUNCTION_START(name) \
|
2024-05-14 11:33:16 +02:00
|
|
|
+ ULP_PRE_PROLOGUE(name); \
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
+ C_LABEL(name); \
|
|
|
|
+ cfi_startproc; \
|
|
|
|
+ _CET_ENDBR; \
|
2024-05-14 11:33:16 +02:00
|
|
|
+ ULP_POST_PROLOGUE(name); \
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
+ CALL_MCOUNT;
|
|
|
|
+
|
|
|
|
/* Define an entry point visible from C. */
|
|
|
|
#define ENTRY_P2ALIGN(name, alignment) \
|
|
|
|
.globl C_SYMBOL_NAME(name); \
|
|
|
|
.type C_SYMBOL_NAME(name),@function; \
|
|
|
|
.align ALIGNARG(alignment); \
|
|
|
|
- C_LABEL(name) \
|
|
|
|
- cfi_startproc; \
|
|
|
|
- _CET_ENDBR; \
|
|
|
|
- CALL_MCOUNT
|
|
|
|
+ FUNCTION_START(name)
|
|
|
|
|
2023-05-25 11:15:20 +02:00
|
|
|
/* This macro is for setting proper CFI with DW_CFA_expression describing
|
Accepting request 1143408 from home:Andreas_Schwab:Factory
- Update to glibc 2.39
* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
rewrite on x86-64
* Sync with Linux kernel 6.6 shadow stack interface
* struct statvfs now has an f_type member, equal to the f_type statfs
member
* On Linux, the functions posix_spawnattr_getcgroup_np and
posix_spawnattr_setcgroup_np have been added, along with the
POSIX_SPAWN_SETCGROUP flag
* On Linux, the pidfd_spawn and pidfd_spawp functions have been added
* On Linux, the pidfd_getpid function has been added
* scanf-family functions now support the wN format length modifiers for
arguments pointing to types intN_t, int_leastN_t, uintN_t or
uint_leastN_t
* A new tunable, glibc.mem.decorate_maps, can be used to add additional
information on underlying memory allocated by the glibc
* The <stdbit.h> header has been added from ISO C2X
* On AArch64 new symbols were added to libmvec
* The ldconfig program now skips file names containing ';' or ending in
".dpkg.tmp" or ".dpkg.new"
* The dynamic linker calls the malloc and free functions in more cases
during TLS access if a shared object with dynamic TLS is loaded and
unloaded
- aarch64-rawmemchr-unwind.patch, cache-amd-legacy.patch,
cache-intel-shared.patch, call-init-proxy-objects.patch,
fstat-implementation.patch, gb18030-2022.patch,
getaddrinfo-eai-memory.patch, getaddrinfo-memory-leak.patch,
getcanonname-use-after-free.patch, iconv-error-verbosity.patch,
intl-c-utf-8-like-c-locale.patch, ldconfig-process-elf-file.patch,
libio-io-vtables.patch, libio-wdo-write.patch,
OBS-URL: https://build.opensuse.org/request/show/1143408
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=692
2024-02-01 15:30:28 +01:00
|
|
|
the register as saved relative to %rsp instead of relative to the CFA.
|
2023-05-25 11:15:20 +02:00
|
|
|
--
|
2024-05-14 11:33:16 +02:00
|
|
|
2.44.0
|
2023-05-25 11:15:20 +02:00
|
|
|
|