blob: bc48c509d07995eaaf4903700d54b9deee549461 [file] [log] [blame]
#!/bin/bash
# Copyright (C) 2011 Karel Zak <kzak@redhat.com>
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