[Buildroot] [PATCH] Robusitfy compiler version checks

Hans-Christian Egtvedt hans-christian.egtvedt at atmel.com
Tue Aug 12 11:19:25 UTC 2008


On Wed, 2008-08-06 at 08:18 +0200, Hans-Christian Egtvedt wrote:

Bump

> 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"
> 
> 
> 
> _______________________________________________
> buildroot mailing list
> buildroot at uclibc.org
> http://busybox.net/mailman/listinfo/buildroot
-- 
With kind regards,
Hans-Christian Egtvedt, Applications Engineer




More information about the buildroot mailing list