aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-03-21 14:03:00 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-03-21 14:03:00 +0000
commit3b17937e6437fe16e799e61d7e6ee99352741209 (patch)
tree2ba5f35ce55d7b8c2dd086337621d9ea4cef80df /elf
parent3e2be87832781a29ed67f38f87c1ce3dd4c1b866 (diff)
downloadglibc-azanella/cancel-wrappers-inline.tar.xz
glibc-azanella/cancel-wrappers-inline.zip
linux: Inline __syscall_internal_cancel and __syscall_cancelazanella/cancel-wrappers-inline
It improves some interception tools such as valgrind, however on multithread the __syscall_cancel_arch is called. The result libc.so has a slight larger code size: ABI master patched diff increase aarch64 1658673 1669121 10448 0.63% x86_64 1976656 1985744 9088 0.46% i686 2233622 2251130 17508 0.78% powerpc64le 2382448 2396768 14320 0.60% It mimics internally how cancellable entrypoints were implemented before 89b53077d2a58f00e7debdfe58afabe953dac60d, where cancellation handlign were done inline in the syscall wraper.
Diffstat (limited to 'elf')
-rw-r--r--elf/Makefile4
1 files changed, 3 insertions, 1 deletions
diff --git a/elf/Makefile b/elf/Makefile
index 3d60000ec9..47c235ccbb 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1457,7 +1457,9 @@ $(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os)
# when compiled for libc.
rtld-stubbed-symbols = \
__libc_assert_fail \
- __syscall_cancel \
+ __syscall_cancel_arch \
+ __libc_single_threaded_internal \
+ __syscall_do_cancel \
calloc \
free \
malloc \