Makerules: Do not require startup files for format.lds probe object
Commit Message
During statically linked bootstrap, the compiler does not have
the required startup files, so do a smaller dummy link to obtain
the output format information.
Fixes commit 87d583c6e8cd0e49f64da76636ebeec033298b4d ("install:
Replace scripts/output-format.sed with objdump -f [BZ #26559]").
Testing is still in progress, but looks good so far.
---
Makerules | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
Comments
On 12/01/2021 09:02, Florian Weimer wrote:
> During statically linked bootstrap, the compiler does not have
> the required startup files, so do a smaller dummy link to obtain
> the output format information.
>
> Fixes commit 87d583c6e8cd0e49f64da76636ebeec033298b4d ("install:
> Replace scripts/output-format.sed with objdump -f [BZ #26559]").
>
> Testing is still in progress, but looks good so far.
>
LGTM, this does fix the bootstrap issue I am also seeing.
> ---
> Makerules | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/Makerules b/Makerules
> index 06c7c48310..ca9885436e 100644
> --- a/Makerules
> +++ b/Makerules
> @@ -1067,9 +1067,8 @@ install: $(inst_slibdir)/libc.so$(libc.so-version)
> # used by a link for a different format on a multi-architecture system.
> $(common-objpfx)format.lds: $(common-objpfx)config.make \
> $(common-objpfx)config.h $(..)Makerules
> - $(LINK.o) -shared $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \
> - $(LDFLAGS.so) $(LDFLAGS-lib.so) \
> - -x c /dev/null -o $@.so 2>/dev/null
> + $(LINK.o) -shared -nostdlib -nostartfiles \
> + -x assembler /dev/null -o $@.so
> $(OBJDUMP) -f $@.so | sed -n 's/.*file format \(.*\)/OUTPUT_FORMAT(\1)/;T;p' > $@
> rm -f $@.so
> common-generated += format.lds
>
@@ -1067,9 +1067,8 @@ install: $(inst_slibdir)/libc.so$(libc.so-version)
# used by a link for a different format on a multi-architecture system.
$(common-objpfx)format.lds: $(common-objpfx)config.make \
$(common-objpfx)config.h $(..)Makerules
- $(LINK.o) -shared $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \
- $(LDFLAGS.so) $(LDFLAGS-lib.so) \
- -x c /dev/null -o $@.so 2>/dev/null
+ $(LINK.o) -shared -nostdlib -nostartfiles \
+ -x assembler /dev/null -o $@.so
$(OBJDUMP) -f $@.so | sed -n 's/.*file format \(.*\)/OUTPUT_FORMAT(\1)/;T;p' > $@
rm -f $@.so
common-generated += format.lds