From 2ae7990542e1955097aa21943e416dec70f867fa Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Tue, 8 Nov 2022 20:56:59 -0800 Subject: Makerules: Generate shlib.lds with -fuse-ld=bfd 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. Reviewed-by: Sam James --- Makerules | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Makerules') diff --git a/Makerules b/Makerules index 09c0cf8357..a41491429e 100644 --- a/Makerules +++ b/Makerules @@ -546,14 +546,16 @@ endef ifeq (yes,$(use-default-link)) # If the linker is good enough, we can let it use its default linker script. +# In the long term the custom linker script will be removed. shlib-lds = shlib-lds-flags = else # binutils only position loadable notes into the first page for binaries, # not for shared objects +# lld --verbose does not dump a linker script. Use -fuse-ld=bfd. $(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 \ -- cgit 1.4.1