From bec0b9f6f2e74c799e382bcf5154ecab6bd77c74 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 22 Oct 2020 06:11:34 -0700 Subject: [PATCH] gold: Skip bootstrap-test/bootstrap-test-r for LTO build 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/ChangeLog | 5 +++++ gold/Makefile.am | 16 ++++++++++++++-- gold/Makefile.in | 15 +++++++++++++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index 6f1abcca39..fccf734139 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2020-10-22 H.J. Lu + + * Makefile.am (bootstrap-test): Skip for LTO build. + (bootstrap-test-r): Likewise. + 2020-10-13 H.J. Lu PR gold/23539 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.34.1