[PATCH] gold: Skip bootstrap-test/bootstrap-test-r for LTO build
H.J. Lu
hjl.tools@gmail.com
Thu Oct 22 12:28:50 GMT 2020
On Wed, Oct 21, 2020 at 9:18 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> Skip bootstrap-test and bootstrap-test-r for LTO build due to different
> build IDs.
>
> * Makefile.am (bootstrap-test): Skip for LTO build.
> (bootstrap-test-r): Likewise.
> ---
> gold/Makefile.am | 16 ++++++++++++++--
> gold/Makefile.in | 15 +++++++++++++--
> 2 files changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/gold/Makefile.am b/gold/Makefile.am
> index 3860e79810..679f07d353 100644
> --- a/gold/Makefile.am
> +++ b/gold/Makefile.am
> @@ -284,10 +284,17 @@ editcc2 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2\/\2/'
> ld2_LINK = `echo $(CXXLD) | sed $(editcc2)`\
> $(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_LDFLAGS) $(LDFLAGS) -o $@
>
> +TEST_READELF = $(top_builddir)/../binutils/readelf
> +
> +# Skip this for LTO build due to different build IDs.
> bootstrap-test: ld2
> rm -f $@
> echo "#!/bin/sh" > $@
> - echo "cmp ld1 ld2" >> $@
> + if $(TEST_READELF) -SW main.$(OBJEXT) | grep "gnu.lto" > /dev/null; then \
> + echo true >> $@; \
> + else \
> + echo "cmp ld1 ld2" >> $@; \
> + fi
> chmod +x $@
>
> libgold-1-r.o: gcctestdir1/ld libgold.a
> @@ -314,10 +321,15 @@ editcc2r = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2-r\/\2/'
> ld2_r_LINK = `echo $(CXXLD) | sed $(editcc2r)`\
> $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
>
> +# Skip this for LTO build due to different build IDs.
> bootstrap-test-r: ld2-r
> rm -f $@
> echo "#!/bin/sh" > $@
> - echo "cmp ld1-r ld2-r" >> $@
> + if $(TEST_READELF) -SW main.$(OBJEXT) | grep "gnu.lto" > /dev/null; then \
> + echo true >> $@; \
> + else \
> + echo "cmp ld1-r ld2-r" >> $@; \
> + fi
> chmod +x $@
>
> check_PROGRAMS = ld1 ld2 ld1-r ld2-r
> diff --git a/gold/Makefile.in b/gold/Makefile.in
> index f2906ede8b..28991b2ecb 100644
> --- a/gold/Makefile.in
> +++ b/gold/Makefile.in
> @@ -842,6 +842,7 @@ POTFILES = $(CCFILES) $(HFILES) $(TARGETSOURCES)
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_LINK = `echo $(CXXLD) | sed $(editcc2)`\
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_LDFLAGS) $(LDFLAGS) -o $@
>
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@TEST_READELF = $(top_builddir)/../binutils/readelf
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_SOURCES = $(sources_var)
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
> @@ -1625,10 +1626,15 @@ po/POTFILES.in: @MAINT@ Makefile
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ rm -f $@
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(LN_S) $(abs_top_builddir)/ld1 $@
>
> +# Skip this for LTO build due to different build IDs.
> @GCC_TRUE@@NATIVE_LINKER_TRUE@bootstrap-test: ld2
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ rm -f $@
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ echo "#!/bin/sh" > $@
> -@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo "cmp ld1 ld2" >> $@
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ if $(TEST_READELF) -SW main.$(OBJEXT) | grep "gnu.lto" > /dev/null; then \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo true >> $@; \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ else \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo "cmp ld1 ld2" >> $@; \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ fi
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ chmod +x $@
>
> @GCC_TRUE@@NATIVE_LINKER_TRUE@libgold-1-r.o: gcctestdir1/ld libgold.a
> @@ -1642,10 +1648,15 @@ po/POTFILES.in: @MAINT@ Makefile
> @GCC_TRUE@@NATIVE_LINKER_TRUE@libgold-2-r.o: gcctestdir2-r/ld libgold.a
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
>
> +# Skip this for LTO build due to different build IDs.
> @GCC_TRUE@@NATIVE_LINKER_TRUE@bootstrap-test-r: ld2-r
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ rm -f $@
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ echo "#!/bin/sh" > $@
> -@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo "cmp ld1-r ld2-r" >> $@
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ if $(TEST_READELF) -SW main.$(OBJEXT) | grep "gnu.lto" > /dev/null; then \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo true >> $@; \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ else \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo "cmp ld1-r ld2-r" >> $@; \
> +@GCC_TRUE@@NATIVE_LINKER_TRUE@ fi
> @GCC_TRUE@@NATIVE_LINKER_TRUE@ chmod +x $@
>
> @GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir3/ld gcctestdir3/collect-ld: ld-new
> --
> 2.26.2
>
I am checking in this.
--
H.J.
More information about the Binutils
mailing list