[PATCH 1/1] UBUNTU: record the compiler in the ABI and check for inconsistant builds

Stefan Bader stefan.bader at canonical.com
Fri Aug 19 12:44:18 UTC 2011


On 19.08.2011 13:26, Andy Whitcroft wrote:
> When pulling the compiled kernels to extract the ABI information also
> extract the compiler used for that build.  Record the result in the abi
> directory so it is also recorded historically.
> 
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
>  debian/scripts/misc/getabis |   19 +++++++++++++++++++
>  1 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/debian/scripts/misc/getabis b/debian/scripts/misc/getabis
> index 2a1fc55..0556f8e 100755
> --- a/debian/scripts/misc/getabis
> +++ b/debian/scripts/misc/getabis
> @@ -53,6 +53,20 @@ getall() {
>  			(cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \
>  				sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \
>  				$abidir/$arch/$sub.modules
> +			(
> +				cd tmp;
> +				ko=`find lib/modules/$verabi-$sub/kernel -name '*.ko' | head -1`
> +				readelf -p .comment "$ko" | awk '
> +					($1 == "[") {
> +						printf("%s", $3);
> +						for (n=4; n<=NF; n++) {
> +							printf(" %s", $n);
> +						}
> +						print ""
> +					}' | sort -u >$abidir/$arch/$sub.compiler
> +				version=`cat $abidir/$arch/$sub.compiler`
> +				echo -n "$version..."
> +			)
>  			rm -rf tmp $filename
>  			echo "done."
>  		else
> @@ -73,4 +87,9 @@ echo $abi > $abidir/abiname
>  
>  . $DEBIAN/etc/getabis
>  
> +compilers=`cat $abidir/*/*.compiler | sort -u | wc -l`
> +if [ "$compilers" != 1 ]; then
> +	echo "WARNING: inconsistant compiler versions detected" 1>&2
> +fi
> +
>  rmdir $tmpdir

Guess it should work. The elf output seems to contain multiple lines (which I am
not sure could be different) but there only should be one compiler possible per
binary.

Not sure this is really simpler but you could do the awk like:

awk '/CC:/{sub(/^ *\[[^\]]*\] */, ""); print}'

Overall ok though... so

Ack

-Stefan




More information about the kernel-team mailing list