diff options
author | Jean Delvare <jdelvare@suse.de> | 2012-10-02 10:42:36 -0400 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2012-10-03 03:03:24 -0400 |
commit | b1e0d8b70fa31821ebca3965f2ef8619d7c5e316 (patch) | |
tree | 4df17a3e10de030701ccf0868da1a94c1063b07d | |
parent | fe04ddf7c2910362f3817c8156e41cbd6c0ee35d (diff) |
kbuild: Fix gcc -x syntax
The correct syntax for gcc -x is "gcc -x assembler", not
"gcc -xassembler". Even though the latter happens to work, the former
is what is documented in the manual page and thus what gcc wrappers
such as icecream do expect.
This isn't a cosmetic change. The missing space prevents icecream from
recognizing compilation tasks it can't handle, leading to silent kernel
miscompilations.
Besides me, credits go to Michael Matz and Dirk Mueller for
investigating the miscompilation issue and tracking it down to this
incorrect -x parameter syntax.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: stable@vger.kernel.org
Cc: Bernhard Walle <bernhard@bwalle.de>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
-rw-r--r-- | arch/mips/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/x86/Makefile | 2 | ||||
-rw-r--r-- | scripts/Kbuild.include | 12 | ||||
-rw-r--r-- | scripts/gcc-version.sh | 6 | ||||
-rw-r--r-- | scripts/gcc-x86_32-has-stack-protector.sh | 2 | ||||
-rw-r--r-- | scripts/gcc-x86_64-has-stack-protector.sh | 2 | ||||
-rwxr-xr-x | scripts/kconfig/check.sh | 2 | ||||
-rw-r--r-- | scripts/kconfig/lxdialog/check-lxdialog.sh | 2 | ||||
-rw-r--r-- | tools/perf/Makefile | 2 | ||||
-rw-r--r-- | tools/power/cpupower/Makefile | 2 |
11 files changed, 18 insertions, 18 deletions
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 764e37a9dbb3..654b1ad39f05 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -225,7 +225,7 @@ KBUILD_CPPFLAGS += -DDATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0) | |||
225 | LDFLAGS += -m $(ld-emul) | 225 | LDFLAGS += -m $(ld-emul) |
226 | 226 | ||
227 | ifdef CONFIG_MIPS | 227 | ifdef CONFIG_MIPS |
228 | CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -xc /dev/null | \ | 228 | CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ |
229 | egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ | 229 | egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ |
230 | sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/") | 230 | sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/") |
231 | ifdef CONFIG_64BIT | 231 | ifdef CONFIG_64BIT |
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index fdaf65e1a99d..c6136cb4cd40 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile | |||
@@ -104,7 +104,7 @@ obj-$(CONFIG_MIPS_MACHINE) += mips_machine.o | |||
104 | 104 | ||
105 | obj-$(CONFIG_OF) += prom.o | 105 | obj-$(CONFIG_OF) += prom.o |
106 | 106 | ||
107 | CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) | 107 | CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -x c /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) |
108 | 108 | ||
109 | obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o | 109 | obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o |
110 | 110 | ||
diff --git a/arch/x86/Makefile b/arch/x86/Makefile index b0c5276861ec..cb8ac935df82 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile | |||
@@ -88,7 +88,7 @@ endif | |||
88 | ifdef CONFIG_X86_X32 | 88 | ifdef CONFIG_X86_X32 |
89 | x32_ld_ok := $(call try-run,\ | 89 | x32_ld_ok := $(call try-run,\ |
90 | /bin/echo -e '1: .quad 1b' | \ | 90 | /bin/echo -e '1: .quad 1b' | \ |
91 | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" - && \ | 91 | $(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" - && \ |
92 | $(OBJCOPY) -O elf32-x86-64 "$$TMP" "$$TMPO" && \ | 92 | $(OBJCOPY) -O elf32-x86-64 "$$TMP" "$$TMPO" && \ |
93 | $(LD) -m elf32_x86_64 "$$TMPO" -o "$$TMP",y,n) | 93 | $(LD) -m elf32_x86_64 "$$TMPO" -o "$$TMP",y,n) |
94 | ifeq ($(x32_ld_ok),y) | 94 | ifeq ($(x32_ld_ok),y) |
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 6a3ee981931d..8bb8d3a9f01c 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include | |||
@@ -98,24 +98,24 @@ try-run = $(shell set -e; \ | |||
98 | # Usage: cflags-y += $(call as-option,-Wa$(comma)-isa=foo,) | 98 | # Usage: cflags-y += $(call as-option,-Wa$(comma)-isa=foo,) |
99 | 99 | ||
100 | as-option = $(call try-run,\ | 100 | as-option = $(call try-run,\ |
101 | $(CC) $(KBUILD_CFLAGS) $(1) -c -xassembler /dev/null -o "$$TMP",$(1),$(2)) | 101 | $(CC) $(KBUILD_CFLAGS) $(1) -c -x assembler /dev/null -o "$$TMP",$(1),$(2)) |
102 | 102 | ||
103 | # as-instr | 103 | # as-instr |
104 | # Usage: cflags-y += $(call as-instr,instr,option1,option2) | 104 | # Usage: cflags-y += $(call as-instr,instr,option1,option2) |
105 | 105 | ||
106 | as-instr = $(call try-run,\ | 106 | as-instr = $(call try-run,\ |
107 | printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3)) | 107 | printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" -,$(2),$(3)) |
108 | 108 | ||
109 | # cc-option | 109 | # cc-option |
110 | # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) | 110 | # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) |
111 | 111 | ||
112 | cc-option = $(call try-run,\ | 112 | cc-option = $(call try-run,\ |
113 | $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -xc /dev/null -o "$$TMP",$(1),$(2)) | 113 | $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) |
114 | 114 | ||
115 | # cc-option-yn | 115 | # cc-option-yn |
116 | # Usage: flag := $(call cc-option-yn,-march=winchip-c6) | 116 | # Usage: flag := $(call cc-option-yn,-march=winchip-c6) |
117 | cc-option-yn = $(call try-run,\ | 117 | cc-option-yn = $(call try-run,\ |
118 | $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -xc /dev/null -o "$$TMP",y,n) | 118 | $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n) |
119 | 119 | ||
120 | # cc-option-align | 120 | # cc-option-align |
121 | # Prefix align with either -falign or -malign | 121 | # Prefix align with either -falign or -malign |
@@ -125,7 +125,7 @@ cc-option-align = $(subst -functions=0,,\ | |||
125 | # cc-disable-warning | 125 | # cc-disable-warning |
126 | # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) | 126 | # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) |
127 | cc-disable-warning = $(call try-run,\ | 127 | cc-disable-warning = $(call try-run,\ |
128 | $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -xc /dev/null -o "$$TMP",-Wno-$(strip $(1))) | 128 | $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) |
129 | 129 | ||
130 | # cc-version | 130 | # cc-version |
131 | # Usage gcc-ver := $(call cc-version) | 131 | # Usage gcc-ver := $(call cc-version) |
@@ -143,7 +143,7 @@ cc-ifversion = $(shell [ $(call cc-version, $(CC)) $(1) $(2) ] && echo $(3)) | |||
143 | # cc-ldoption | 143 | # cc-ldoption |
144 | # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both) | 144 | # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both) |
145 | cc-ldoption = $(call try-run,\ | 145 | cc-ldoption = $(call try-run,\ |
146 | $(CC) $(1) -nostdlib -xc /dev/null -o "$$TMP",$(1),$(2)) | 146 | $(CC) $(1) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2)) |
147 | 147 | ||
148 | # ld-option | 148 | # ld-option |
149 | # Usage: LDFLAGS += $(call ld-option, -X) | 149 | # Usage: LDFLAGS += $(call ld-option, -X) |
diff --git a/scripts/gcc-version.sh b/scripts/gcc-version.sh index debecb5561c4..7f2126df91f2 100644 --- a/scripts/gcc-version.sh +++ b/scripts/gcc-version.sh | |||
@@ -22,10 +22,10 @@ if [ ${#compiler} -eq 0 ]; then | |||
22 | exit 1 | 22 | exit 1 |
23 | fi | 23 | fi |
24 | 24 | ||
25 | MAJOR=$(echo __GNUC__ | $compiler -E -xc - | tail -n 1) | 25 | MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1) |
26 | MINOR=$(echo __GNUC_MINOR__ | $compiler -E -xc - | tail -n 1) | 26 | MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1) |
27 | if [ "x$with_patchlevel" != "x" ] ; then | 27 | if [ "x$with_patchlevel" != "x" ] ; then |
28 | PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -xc - | tail -n 1) | 28 | PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -x c - | tail -n 1) |
29 | printf "%02d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL | 29 | printf "%02d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL |
30 | else | 30 | else |
31 | printf "%02d%02d\\n" $MAJOR $MINOR | 31 | printf "%02d%02d\\n" $MAJOR $MINOR |
diff --git a/scripts/gcc-x86_32-has-stack-protector.sh b/scripts/gcc-x86_32-has-stack-protector.sh index 29493dc4528d..12dbd0b11ea4 100644 --- a/scripts/gcc-x86_32-has-stack-protector.sh +++ b/scripts/gcc-x86_32-has-stack-protector.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | echo "int foo(void) { char X[200]; return 3; }" | $* -S -xc -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs" | 3 | echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs" |
4 | if [ "$?" -eq "0" ] ; then | 4 | if [ "$?" -eq "0" ] ; then |
5 | echo y | 5 | echo y |
6 | else | 6 | else |
diff --git a/scripts/gcc-x86_64-has-stack-protector.sh b/scripts/gcc-x86_64-has-stack-protector.sh index afaec618b395..973e8c141567 100644 --- a/scripts/gcc-x86_64-has-stack-protector.sh +++ b/scripts/gcc-x86_64-has-stack-protector.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | echo "int foo(void) { char X[200]; return 3; }" | $* -S -xc -c -O0 -mcmodel=kernel -fstack-protector - -o - 2> /dev/null | grep -q "%gs" | 3 | echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -mcmodel=kernel -fstack-protector - -o - 2> /dev/null | grep -q "%gs" |
4 | if [ "$?" -eq "0" ] ; then | 4 | if [ "$?" -eq "0" ] ; then |
5 | echo y | 5 | echo y |
6 | else | 6 | else |
diff --git a/scripts/kconfig/check.sh b/scripts/kconfig/check.sh index fa59cbf9d62c..854d9c7c675c 100755 --- a/scripts/kconfig/check.sh +++ b/scripts/kconfig/check.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | # Needed for systems without gettext | 2 | # Needed for systems without gettext |
3 | $* -xc -o /dev/null - > /dev/null 2>&1 << EOF | 3 | $* -x c -o /dev/null - > /dev/null 2>&1 << EOF |
4 | #include <libintl.h> | 4 | #include <libintl.h> |
5 | int main() | 5 | int main() |
6 | { | 6 | { |
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh index e3b12c010417..c8e8a7154753 100644 --- a/scripts/kconfig/lxdialog/check-lxdialog.sh +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh | |||
@@ -38,7 +38,7 @@ trap "rm -f $tmp" 0 1 2 3 15 | |||
38 | 38 | ||
39 | # Check if we can link to ncurses | 39 | # Check if we can link to ncurses |
40 | check() { | 40 | check() { |
41 | $cc -xc - -o $tmp 2>/dev/null <<'EOF' | 41 | $cc -x c - -o $tmp 2>/dev/null <<'EOF' |
42 | #include CURSES_LOC | 42 | #include CURSES_LOC |
43 | main() {} | 43 | main() {} |
44 | EOF | 44 | EOF |
diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 77f124fe57ad..d9776568e8cd 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile | |||
@@ -62,7 +62,7 @@ ifeq ($(ARCH),x86_64) | |||
62 | ARCH := x86 | 62 | ARCH := x86 |
63 | IS_X86_64 := 0 | 63 | IS_X86_64 := 0 |
64 | ifeq (, $(findstring m32,$(EXTRA_CFLAGS))) | 64 | ifeq (, $(findstring m32,$(EXTRA_CFLAGS))) |
65 | IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -xc - | tail -n 1) | 65 | IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -x c - | tail -n 1) |
66 | endif | 66 | endif |
67 | ifeq (${IS_X86_64}, 1) | 67 | ifeq (${IS_X86_64}, 1) |
68 | RAW_ARCH := x86_64 | 68 | RAW_ARCH := x86_64 |
diff --git a/tools/power/cpupower/Makefile b/tools/power/cpupower/Makefile index a93e06cfcc2a..cf397bd26d0c 100644 --- a/tools/power/cpupower/Makefile +++ b/tools/power/cpupower/Makefile | |||
@@ -111,7 +111,7 @@ GMO_FILES = ${shell for HLANG in ${LANGUAGES}; do echo $(OUTPUT)po/$$HLANG.gmo; | |||
111 | export CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS | 111 | export CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS |
112 | 112 | ||
113 | # check if compiler option is supported | 113 | # check if compiler option is supported |
114 | cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} | 114 | cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -x c /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} |
115 | 115 | ||
116 | # use '-Os' optimization if available, else use -O2 | 116 | # use '-Os' optimization if available, else use -O2 |
117 | OPTIMIZATION := $(call cc-supports,-Os,-O2) | 117 | OPTIMIZATION := $(call cc-supports,-Os,-O2) |