[Buildroot] [PATCH] Robusitfy compiler version checks
Hans-Christian Egtvedt
hans-christian.egtvedt at atmel.com
Wed Aug 6 06:18:02 UTC 2008
The output of "gcc --version" (and equivalently for g++) is somewhat
volatile. Specifically, the output from GCC 4.3.1 prerelease which
ships with OpenSUSE 11.0 doesn't come close to matching the required
pattern in the dependency check script.
The output of gcc -v however is standard between releases and across
platforms. It contains a line of the form
gcc version <version> <spoodge>
We can match this reliably and safely, so let's do that instead.
This has been tested across all the systems I have to hand - openSUSE
10.3, 11.0, Xandros, Debian and Cygwin.
Someone with a black belt in sed-fu might be able to simplify this a
bit :-)
Signed-off-by: Ben Nizette <bn at niasdigital.com>
---
diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh
index 6b026fd..0d67e3a 100755
--- a/toolchain/dependencies/dependencies.sh
+++ b/toolchain/dependencies/dependencies.sh
@@ -194,7 +194,8 @@ if [ -z "$COMPILER" ]; then
exit 1
fi
-COMPILER_VERSION=$($COMPILER --version 2>&1 | $XSED -e 's/^.*(.CC) \([0-9\.]\)/\1/g' -e "s/[-\ ].*//g" -e '1q')
+COMPILER_VERSION=$($COMPILER -v 2>&1 | $XSED -n '/^gcc version/p' |
+ $XSED -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q')
if [ -z "$COMPILER_VERSION" ]; then
echo "gcc installed: FALSE"
/bin/echo -e "\n\nYou must install 'gcc' on your build machine\n"
@@ -224,7 +225,8 @@ if [ -z "$CXXCOMPILER" ]; then
/bin/echo -e "\nYou may have to install 'g++' on your build machine\n"
#exit 1
else
- CXXCOMPILER_VERSION=$($CXXCOMPILER --version 2>&1 | $XSED -e 's/^.*(.CC) \([0-9\.]\)/\1/g' -e "s/[-\ ].*//g" -e '1q')
+ CXXCOMPILER_VERSION=$($CXXCOMPILER -v 2>&1 | $XSED -n '/^gcc version/p' |
+ $XSED -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q')
if [ -z "$CXXCOMPILER_VERSION" ]; then
echo "c++ installed: FALSE"
/bin/echo -e "\nYou may have to install 'g++' on your build machine\n"
More information about the buildroot
mailing list