* [PATCH 2.34] debug: Mark libSegFault.so as NODELETE
@ 2023-07-20 16:53 Florian Weimer
2023-07-21 14:33 ` Carlos O'Donell
0 siblings, 1 reply; 2+ messages in thread
From: Florian Weimer @ 2023-07-20 16:53 UTC (permalink / raw)
To: libc-alpha; +Cc: libc-stable
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.
Submitting this for 2.34 because libSegFault.so was removed in 2.35.
Verified using readelf -dW that NODELETE is now set on libSegFault.so.
(Note that there is no lib prefix on the LDFLAGS variable.)
---
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))
base-commit: cad3adf4ddeada37912c1c13b59a2ea5dd5d2832
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 2.34] debug: Mark libSegFault.so as NODELETE
2023-07-20 16:53 [PATCH 2.34] debug: Mark libSegFault.so as NODELETE Florian Weimer
@ 2023-07-21 14:33 ` Carlos O'Donell
0 siblings, 0 replies; 2+ messages in thread
From: Carlos O'Donell @ 2023-07-21 14:33 UTC (permalink / raw)
To: Florian Weimer, libc-alpha; +Cc: libc-stable
On 7/20/23 12:53, Florian Weimer via Libc-stable wrote:
> 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.
Agreed. This is a safe default to take given the usage of this DSO.
LGTM for backport into all stables branches with libSegFault.so.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> Submitting this for 2.34 because libSegFault.so was removed in 2.35.
> Verified using readelf -dW that NODELETE is now set on libSegFault.so.
> (Note that there is no lib prefix on the LDFLAGS variable.)
>
> ---
> 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))
>
> base-commit: cad3adf4ddeada37912c1c13b59a2ea5dd5d2832
>
--
Cheers,
Carlos.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-07-21 14:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-20 16:53 [PATCH 2.34] debug: Mark libSegFault.so as NODELETE Florian Weimer
2023-07-21 14:33 ` Carlos O'Donell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).