]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
debug: Mark libSegFault.so as NODELETE
authorFlorian Weimer <fweimer@redhat.com>
Thu, 20 Jul 2023 16:31:48 +0000 (18:31 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 21 Jul 2023 14:37:42 +0000 (16:37 +0200)
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>
debug/Makefile

index 71248e0d457a5b123dc884ca2c63a780388d4603..9fbc40dc69b477ca5e6bdde47cc78a1112c398b1 100644 (file)
@@ -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))