aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
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 /scripts
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>
Diffstat (limited to 'scripts')
-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
6 files changed, 13 insertions, 13 deletions
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