aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2023-07-20 18:31:48 +0200
committerFlorian Weimer <fweimer@redhat.com>2023-07-21 16:37:42 +0200
commit23ee92deea4c99d0e6a5f48fa7b942909b123ec5 (patch)
treefbe8ef618962c963fcb6bb4eb6ecba23e77d9b45
parentcad3adf4ddeada37912c1c13b59a2ea5dd5d2832 (diff)
downloadglibc-23ee92deea4c99d0e6a5f48fa7b942909b123ec5.tar
glibc-23ee92deea4c99d0e6a5f48fa7b942909b123ec5.tar.gz
glibc-23ee92deea4c99d0e6a5f48fa7b942909b123ec5.tar.bz2
glibc-23ee92deea4c99d0e6a5f48fa7b942909b123ec5.zip
debug: Mark libSegFault.so as NODELETE
The signal handler installed in the ELF constructor cannot easily be removed again (because the program may have changed handlers in the meantime). Mark the object as NODELETE so that the registered handler function is never unloaded. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
-rw-r--r--debug/Makefile2
1 files changed, 2 insertions, 0 deletions
diff --git a/debug/Makefile b/debug/Makefile
index 71248e0d45..9fbc40dc69 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -213,6 +213,8 @@ extra-libs-others = $(extra-libs)
libSegFault-routines = segfault
libSegFault-inhibit-o = $(filter-out .os,$(object-suffixes))
+# libSegFault.so installs a signal handler in its ELF constructor.
+LDFLAGS-SegFault.so = -Wl,--enable-new-dtags,-z,nodelete
libpcprofile-routines = pcprofile
libpcprofile-inhibit-o = $(filter-out .os,$(object-suffixes))