#!/bin/bash # Copyright (C) 2011 Karel Zak TS_TOPDIR="${0%/*}/../.." TS_DESC="config" # Don't execute this test by default, --force required TS_OPTIONAL="yes" . $TS_TOPDIR/functions.sh ts_init "$*" ts_check_prog "readelf" ts_check_prog "file" config_gen_dir="$top_srcdir/tools" . $config_gen_dir/config-gen-functions.sh [ -n "$CFLAGS" ] && export CFLAGS="$CFLAGS" ts_cd $top_builddir && make -j clean &> /dev/null for conf in $config_gen_dir/config-gen.d/*.conf; do ts_init_subtest $(basename $conf | sed 's/\.conf//') opts=$(ul_get_configuration $conf) olddir=$(pwd) ts_cd $top_builddir ./configure $opts &> /dev/null make -j &> /dev/null bins=$(find . -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \) | sort) for b in $bins; do libs=$(readelf --dynamic $b 2> /dev/null | \ awk '/NEEDED/ { print $5 }' | \ sed 's:\[::g; s:\..*::g; s:libc::g; s:ld\-.*::g' | \ sort -u | tr '\n' ' ') if [ -n "$libs" ]; then echo "$(basename $b): $libs" >> $TS_OUTPUT else fres=$(file $b) case $fres in *statically*) echo "$(basename $b): STATIC" >> $TS_OUTPUT ;; *) # ignore scripts, ...etc. ;; esac fi done # clean the tree, but exclude tests/{diff,output} dirs # [ -d tests/diff ] && mv tests/diff tests/diff.save [ -d tests/output ] && mv tests/output tests/output.save make -j clean &> /dev/null [ -d tests/diff.save ] && mv tests/diff.save tests/diff [ -d tests/output.save ] && mv tests/output.save tests/output ts_cd $olddir ts_finalize_subtest done ts_finalize