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>
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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)" \
 |