summaryrefslogtreecommitdiffstats
path: root/external/meta-virtualization/recipes-extended/ipxe/files/ipxe-fix-hostcc-nopie-cflags.patch
blob: da154a6f2a49f9a5eadb77289810287820e608a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Fix detection of host compiler "no-pie"/"nopie" and link flags.

Detection of the "no-pie" vs "nopie" flag needs to be performed for both
the host and target compilers; cannot assume that one works for the other.

Use EXTRA_HOST_CFLAGS and EXTRA_HOST_LDFLAGS variables for passing
host tool parameters if required. Removes previous hardcoded "-O2 -g".

Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
diff --git a/Makefile.housekeeping b/Makefile.housekeeping
index f833492..5451c39 100644
--- a/Makefile.housekeeping
+++ b/Makefile.housekeeping
@@ -133,6 +133,7 @@ eval :
 WORKAROUND_CFLAGS :=
 WORKAROUND_ASFLAGS :=
 WORKAROUND_LDFLAGS :=
+WORKAROUND_HOST_CFLAGS :=
 
 # Make syntax does not allow use of comma or space in certain places.
 # This ugly workaround is suggested in the manual.
@@ -445,7 +446,7 @@ endif
 CFLAGS		+= $(WORKAROUND_CFLAGS) $(EXTRA_CFLAGS)
 ASFLAGS		+= $(WORKAROUND_ASFLAGS) $(EXTRA_ASFLAGS)
 LDFLAGS		+= $(WORKAROUND_LDFLAGS) $(EXTRA_LDFLAGS)
-HOST_CFLAGS	+= $(WORKAROUND_CFLAGS) -O2 -g
+HOST_CFLAGS	+= $(WORKAROUND_HOST_CFLAGS) $(EXTRA_HOST_CFLAGS)
 
 # Inhibit -Werror if NO_WERROR is specified on make command line
 #
@@ -1375,7 +1376,7 @@ endif # defined(BIN)
 # The compression utilities
 #
 
-ZBIN_LDFLAGS := -llzma
+ZBIN_LDFLAGS := -llzma $(EXTRA_HOST_LDFLAGS)
 
 $(ZBIN) : util/zbin.c $(MAKEDEPS)
 	$(QM)$(ECHO) "  [HOSTCC] $@"
diff --git a/arch/i386/Makefile b/arch/i386/Makefile
index b7c2792..4a637ad 100644
--- a/arch/i386/Makefile
+++ b/arch/i386/Makefile
@@ -78,11 +78,20 @@ CFLAGS			+= -Ui386
 # -nopie.  We therefore test for both.
 #
 ifeq ($(CCTYPE),gcc)
-PIE_TEST = [ -z "`$(CC) -fno-PIE -no-pie -x c -c /dev/null -o /dev/null 2>&1`" ]
-PIE_FLAGS := $(shell $(PIE_TEST) && $(ECHO) '-fno-PIE -no-pie')
-PIE_TEST2 = [ -z "`$(CC) -fno-PIE -nopie -x c -c /dev/null -o /dev/null 2>&1`" ]
+PIE_TEST1_FLAGS = "-fno-PIE -no-pie -x c -c /dev/null -o /dev/null 2>&1"
+PIE_TEST2_FLAGS = "-fno-PIE -nopie -x c -c /dev/null -o /dev/null 2>&1"
+
+PIE_TEST1 = [ -z "`$(CC) "$(PIE_TEST1_FLAGS)"`" ]
+PIE_TEST2 = [ -z "`$(CC) "$(PIE_TEST2_FLAGS)"`" ]
+PIE_FLAGS1 := $(shell $(PIE_TEST1) && $(ECHO) '-fno-PIE -no-pie')
 PIE_FLAGS2 := $(shell $(PIE_TEST2) && $(ECHO) '-fno-PIE -nopie')
-WORKAROUND_CFLAGS += $(PIE_FLAGS) $(PIE_FLAGS2)
+WORKAROUND_CFLAGS += $(PIE_FLAGS1) $(PIE_FLAGS2)
+
+HOST_PIE_TEST1 = [ -z "`$(HOSTCC) "$(PIE_TEST1_FLAGS)"`" ]
+HOST_PIE_TEST2 = [ -z "`$(HOSTCC) "$(PIE_TEST2_FLAGS)"`" ]
+HOST_PIE_FLAGS1 := $(shell $(HOST_PIE_TEST1) && $(ECHO) '-fno-PIE -no-pie')
+HOST_PIE_FLAGS2 := $(shell $(HOST_PIE_TEST2) && $(ECHO) '-fno-PIE -nopie')
+WORKAROUND_HOST_CFLAGS += $(HOST_PIE_FLAGS1) $(HOST_PIE_FLAGS2)
 endif
 
 # i386-specific directories containing source files