aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <jdelvare@suse.de>2012-10-02 10:42:36 -0400
committerMichal Marek <mmarek@suse.cz>2012-10-03 03:03:24 -0400
commitb1e0d8b70fa31821ebca3965f2ef8619d7c5e316 (patch)
tree4df17a3e10de030701ccf0868da1a94c1063b07d
parentfe04ddf7c2910362f3817c8156e41cbd6c0ee35d (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/Makefile2
-rw-r--r--arch/mips/kernel/Makefile2
-rw-r--r--arch/x86/Makefile2
-rw-r--r--scripts/Kbuild.include12
-rw-r--r--scripts/gcc-version.sh6
-rw-r--r--scripts/gcc-x86_32-has-stack-protector.sh2
-rw-r--r--scripts/gcc-x86_64-has-stack-protector.sh2
-rwxr-xr-xscripts/kconfig/check.sh2
-rw-r--r--scripts/kconfig/lxdialog/check-lxdialog.sh2
-rw-r--r--tools/perf/Makefile2
-rw-r--r--tools/power/cpupower/Makefile2
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)
225LDFLAGS += -m $(ld-emul) 225LDFLAGS += -m $(ld-emul)
226 226
227ifdef CONFIG_MIPS 227ifdef CONFIG_MIPS
228CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -xc /dev/null | \ 228CHECKFLAGS += $(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/$$/'/")
231ifdef CONFIG_64BIT 231ifdef 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
105obj-$(CONFIG_OF) += prom.o 105obj-$(CONFIG_OF) += prom.o
106 106
107CFLAGS_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) 107CFLAGS_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
109obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o 109obj-$(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
88ifdef CONFIG_X86_X32 88ifdef 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
100as-option = $(call try-run,\ 100as-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
106as-instr = $(call try-run,\ 106as-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
112cc-option = $(call try-run,\ 112cc-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)
117cc-option-yn = $(call try-run,\ 117cc-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)
127cc-disable-warning = $(call try-run,\ 127cc-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)
145cc-ldoption = $(call try-run,\ 145cc-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
23fi 23fi
24 24
25MAJOR=$(echo __GNUC__ | $compiler -E -xc - | tail -n 1) 25MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1)
26MINOR=$(echo __GNUC_MINOR__ | $compiler -E -xc - | tail -n 1) 26MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1)
27if [ "x$with_patchlevel" != "x" ] ; then 27if [ "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
30else 30else
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
3echo "int foo(void) { char X[200]; return 3; }" | $* -S -xc -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs" 3echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs"
4if [ "$?" -eq "0" ] ; then 4if [ "$?" -eq "0" ] ; then
5 echo y 5 echo y
6else 6else
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
3echo "int foo(void) { char X[200]; return 3; }" | $* -S -xc -c -O0 -mcmodel=kernel -fstack-protector - -o - 2> /dev/null | grep -q "%gs" 3echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -O0 -mcmodel=kernel -fstack-protector - -o - 2> /dev/null | grep -q "%gs"
4if [ "$?" -eq "0" ] ; then 4if [ "$?" -eq "0" ] ; then
5 echo y 5 echo y
6else 6else
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>
5int main() 5int 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
40check() { 40check() {
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
43main() {} 43main() {}
44EOF 44EOF
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;
111export CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS 111export 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
114cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} 114cc-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
117OPTIMIZATION := $(call cc-supports,-Os,-O2) 117OPTIMIZATION := $(call cc-supports,-Os,-O2)