Robusitfy compiler version checks
PATCH 1/1 Robusitfy compiler version checks
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 :-)
---
toolchain/dependencies/dependencies.sh +4 -2
@@ -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"
PATCH 1/1 Robusitfy compiler version checks
On Wed, 2008-08-06 at 08:18 +0200, Hans-Christian Egtvedt wrote:
Bump
Quoted 52 lines
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 <[email protected]>---
toolchain/dependencies/dependencies.sh +4
-2@@ -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"_______________________________________________
buildroot mailing list
buildroot at uclibc.org
http://busybox.net/mailman/listinfo/buildroot
Signature · 2 lines
With kind regards, Hans-Christian Egtvedt, Applications Engineer