[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