[PATCH] Makerules: Generate shlib.lds with -fuse-ld=bfd

Florian Weimer fweimer@redhat.com
Mon Nov 7 08:31:04 GMT 2022


* Fangrui Song:

> lld does not dump a linker script with --verbose (it does not use a
> linker script driven design and lots of linker processing is not
> serializable as a linker script anyway).  With the default
> --with-default-link=no build, $@T is empty and makes `test -s $@T` fail.
>
> Just dump the linker script with -fuse-ld=bfd.  lld since 15
> (https://reviews.llvm.org/D124656) supports custom RELRO sections in the
> GNU ld dumped linker script.
> ---
>  Makerules | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Makerules b/Makerules
> index 09c0cf8357..2edc6ee4e1 100644
> --- a/Makerules
> +++ b/Makerules
> @@ -553,7 +553,7 @@ else
>  # not for shared objects
>  $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
>  	$(LINK.o) -shared -Wl,-O1 \
> -		  -nostdlib -nostartfiles \
> +		  -nostdlib -nostartfiles -fuse-ld=bfd \
>  		  $(sysdep-LDFLAGS) $(rtld-LDFLAGS) $(LDFLAGS.so) \
>  		  -Wl,--verbose 2>/dev/null | \
>  	  sed > $@T \

Would you please add the comment?

I'm not sure if a configure check is required.  We have a path towards
removal of the custom linker script; the vfprintf refactor I posted is a
first step.

Thanks,
Florian



More information about the Libc-alpha mailing list