[PATCH 2.34] debug: Mark libSegFault.so as NODELETE
Carlos O'Donell
carlos@redhat.com
Fri Jul 21 14:33:07 GMT 2023
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.
More information about the Libc-stable
mailing list