gold: Skip bootstrap-test/bootstrap-test-r for LTO build
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 22 Oct 2020 13:11:34 +0000 (06:11 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 22 Oct 2020 14:03:59 +0000 (07:03 -0700)
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
gold/Makefile.am
gold/Makefile.in

index 6f1abcca392d544242d3157b29f0a63527bdc08c..fccf73413910836e4c5e001cd704541597b4231e 100644 (file)
@@ -1,3 +1,8 @@
+2020-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.am (bootstrap-test): Skip for LTO build.
+       (bootstrap-test-r): Likewise.
+
 2020-10-13  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR gold/23539
index 3860e7981069a5be64ae6ea3078dc36c2e06d964..679f07d353d7d3c880c5c055387eb2279570f113 100644 (file)
@@ -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
index f2906ede8b693cd1d97d437804da57828e454464..28991b2ecb910d5c950b8746820509cc279d42bb 100644 (file)
@@ -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