From 23ee92deea4c99d0e6a5f48fa7b942909b123ec5 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 20 Jul 2023 18:31:48 +0200 Subject: 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 --- debug/Makefile | 2 ++ 1 file changed, 2 insertions(+) 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)) -- cgit v1.2.3