[PATCH] debug: Link tst-sprintf-fortify-rdonly-static with -Wl,-z,relro [BZ 33183]

Florian Weimer fweimer@redhat.com
Wed Jul 23 20:50:43 GMT 2025


* John David Anglin:

> Fixes tst-sprintf-fortify-rdonly-static on hppa-linux.
>
> Okay?
>
> Dave
> ---
>
> debug: Link tst-sprintf-fortify-rdonly-static with -Wl,-z,relro [BZ 33183]
>
> This test requires relro_format be placed in the PT_GNU_RELRO segment.
> The ELF linker enables -z relro support by default on all Linux targets
> except FRV, HPPA, IA64 and MIPS. On these targets, we need to explicitly
> link with -z relro to place relro_format in the PT_GNU_RELRO segment.
>
> Signed-off-by: John David Anglin <dave.anglin@bell.net>
>
> diff --git a/debug/Makefile b/debug/Makefile
> index 919bf91c42..6c857a56da 100644
> --- a/debug/Makefile
> +++ b/debug/Makefile
> @@ -187,6 +187,7 @@ CFLAGS-tst-sprintf-fortify-rdonly-dlopen.c += $(no-fortify-source) -D_FORTIFY_SO
>  CFLAGS-tst-sprintf-fortify-rdonly-static.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2
>  CFLAGS-tst-fortify-syslog.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2
>  CFLAGS-tst-fortify-wide.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2
> +LDFLAGS-tst-sprintf-fortify-rdonly-static += $(relro-LDFLAGS)
>  
>  $(objpfx)tst-sprintf-fortify-rdonly: $(objpfx)tst-sprintf-fortify-rdonly-mod.so
>  $(objpfx)tst-sprintf-fortify-rdonly.out: \

The issue here is that (at least without static PIE), there's no
relocation, and RELRO isn't active.  (Whether the program header exists
or not does not matter.)  So the RELRO region isn't actually read-only.

Therefore, I would prefer a different fix:

For !SHARED builds, _dl_readonly_area should not treat the RELRO area of
the main link map as read-only.

And then we build tst-sprintf-fortify-rdonly-static slightly
differently, adjusting the test expecation.

Thanks,
Florian



More information about the Libc-alpha mailing list