binutils: fix build with host gcc < 4.9
binutils 2.27 checks if the target compiler supports -Wstack- usage=262144, and also uses this setting for the host compiler. If the host compiler is gcc < 4.9 binutils build will fail. This backports 2 commits which are fixing this problem for binutils 2.28. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
d179aa8769
commit
d1a0fc3ec8
@ -0,0 +1,65 @@
|
|||||||
|
From 183eb37e25d903ccd68cc2d8f8a37e75872c03d2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nick Clifton <nickc@redhat.com>
|
||||||
|
Date: Tue, 6 Sep 2016 17:35:35 +0100
|
||||||
|
Subject: [PATCH 1/2] Do not pass host compiler sanitization flags on to linker
|
||||||
|
testsuite.
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
---
|
||||||
|
ld/Makefile.am | 8 ++++++--
|
||||||
|
ld/Makefile.in | 8 ++++++--
|
||||||
|
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- 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)" \
|
||||||
|
--- a/ld/Makefile.in
|
||||||
|
+++ b/ld/Makefile.in
|
||||||
|
@@ -507,6 +507,10 @@ CXX_FOR_TARGET = ` \
|
||||||
|
fi; \
|
||||||
|
fi`
|
||||||
|
|
||||||
|
+
|
||||||
|
+# Strip out sanitization options as they require special host libraries.
|
||||||
|
+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'`
|
||||||
|
info_TEXINFOS = ld.texinfo
|
||||||
|
ld_TEXINFOS = configdoc.texi
|
||||||
|
noinst_TEXINFOS = ldint.texinfo
|
||||||
|
@@ -3644,8 +3648,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)" \
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user