Commit: Do not pass sanitization flags to linker testsuite
Nick Clifton
nickc@redhat.com
Tue Sep 6 16:34:00 GMT 2016
Hi Guys,
Building the binutils with address sanitization now mostly works,
except for the linker testsuite. The problem here is that the
testsuite uses CFLAGS and CXXFLAGS to compile test binaries. Since we
do not want to sanitize linker tests, I am applying the patch below to
fix the problem.
It creates two new variables in the linker Makefile, CFLAGS_FOR_TARGET
and CXXFLAGS_FOR_TARGET (although really these ought to be called
xxx_FOR_TESTING, but I am sticking with the already established naming
convention). These variables are copies of CFLAGS and CXXFLAGS, but
with the sanitization options stripped out.
Tested with a wide variety of different toolchains and no regressions.
Cheers
Nick
ld/ChangeLog
2016-09-06 Nick Clifton <nickc@redhat.com>
* Makefile.am (CFLAGS_FOR_TARGET): Define as a copy of CFLAGS but
without any sanitization options.
(CXXFLAGS_FOR_TARGET): Define as a copy of CXXFLAGS but without
any sanitization options.
(check-DEJAGNU): Pass CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET
as CFLAGS and CXXFLAGS respectively.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 16d95bc..1a7fc3f 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -136,6 +136,10 @@ CXX_FOR_TARGET = ` \
fi; \
fi`
+# Strip out sanitization options as we want to test building binaries without any extra paraphernalia
+CFLAGS_FOR_TARGET = `echo $(CFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
+CXXFLAGS_FOR_TARGET = `echo $(CXXFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
+
transform = s/^ld-new$$/$(installed_linker)/;@program_transform_name@
bin_PROGRAMS = ld-new
info_TEXINFOS = ld.texinfo
@@ -2075,8 +2079,8 @@ check-DEJAGNU: site.exp
runtest=$(RUNTEST); \
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
$$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \
- CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \
- CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \
+ CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS_FOR_TARGET)" \
+ CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \
OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \
LIBIBERTY="$(LIBIBERTY) $(LIBINTL)" LIBS="$(LIBS)" \
More information about the Binutils
mailing list