You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.7 KiB
61 lines
1.7 KiB
#!/bin/bash |
|
|
|
# This script is supposed to verify which compiler (GCC or clang) was |
|
# used to build the packages in a ChromeOS image. To use the script, |
|
# just pass the path to the tree containing the *.debug files for a |
|
# ChromeOS image. It then reads the debug info in each .debug file |
|
# it can find, checking the AT_producer field to determine whether |
|
# the package was built with clang or GCC. It counts the total |
|
# number of .debug files found as well as how many are built with |
|
# each compiler. It writes out these statistics when it is done. |
|
# |
|
# For a locally-built ChromeOS image, the debug directory is usually: |
|
# ${chromeos_root}/chroot/build/${board}/usr/lib/debug (from outside |
|
# chroot) |
|
# or |
|
# /build/${board}/usr/lib/debug (from inside chroot) |
|
# |
|
# For a buildbot-built image you can usually download the debug tree |
|
# (using 'gsutil cp') from |
|
# gs://chromeos-archive-image/<path-to-your-artifact-tree>/debug.tgz |
|
# After downloading it somewhere, you will need to uncompress and |
|
# untar it before running this script. |
|
# |
|
|
|
DEBUG_TREE=$1 |
|
|
|
clang_count=0 |
|
gcc_count=0 |
|
file_count=0 |
|
|
|
# Verify the argument. |
|
|
|
if [[ $# != 1 ]]; then |
|
echo "Usage error:" |
|
echo "compiler-test.sh <debug_directory>" |
|
exit 1 |
|
fi |
|
|
|
|
|
if [[ ! -d ${DEBUG_TREE} ]] ; then |
|
echo "Cannot find ${DEBUG_TREE}." |
|
exit 1 |
|
fi |
|
|
|
cd ${DEBUG_TREE} |
|
for f in `find . -name "*.debug" -type f` ; do |
|
at_producer=`readelf --debug-dump=info $f | head -25 | grep AT_producer `; |
|
if echo ${at_producer} | grep -q 'GNU C' ; then |
|
((gcc_count++)) |
|
elif echo ${at_producer} | grep -q 'clang'; then |
|
((clang_count++)); |
|
fi; |
|
((file_count++)) |
|
done |
|
|
|
echo "GCC count: ${gcc_count}" |
|
echo "Clang count: ${clang_count}" |
|
echo "Total file count: ${file_count}" |
|
|
|
|
|
exit 0
|
|
|