mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
![Jean Delvare](/assets/img/avatar_default.png)
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>
32 lines
822 B
Bash
32 lines
822 B
Bash
#!/bin/sh
|
|
#
|
|
# gcc-version [-p] gcc-command
|
|
#
|
|
# Prints the gcc version of `gcc-command' in a canonical 4-digit form
|
|
# such as `0295' for gcc-2.95, `0303' for gcc-3.3, etc.
|
|
#
|
|
# With the -p option, prints the patchlevel as well, for example `029503' for
|
|
# gcc-2.95.3, `030301' for gcc-3.3.1, etc.
|
|
#
|
|
|
|
if [ "$1" = "-p" ] ; then
|
|
with_patchlevel=1;
|
|
shift;
|
|
fi
|
|
|
|
compiler="$*"
|
|
|
|
if [ ${#compiler} -eq 0 ]; then
|
|
echo "Error: No compiler specified."
|
|
printf "Usage:\n\t$0 <gcc-command>\n"
|
|
exit 1
|
|
fi
|
|
|
|
MAJOR=$(echo __GNUC__ | $compiler -E -x c - | tail -n 1)
|
|
MINOR=$(echo __GNUC_MINOR__ | $compiler -E -x c - | tail -n 1)
|
|
if [ "x$with_patchlevel" != "x" ] ; then
|
|
PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -x c - | tail -n 1)
|
|
printf "%02d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL
|
|
else
|
|
printf "%02d%02d\\n" $MAJOR $MINOR
|
|
fi
|