[PATCH] gold: Skip bootstrap-test/bootstrap-test-r for LTO build

H.J. Lu hjl.tools@gmail.com
Thu Oct 22 04:18:43 GMT 2020


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



More information about the Binutils mailing list