blob: 2dbad7ab17bfaf8e0ed83364dccca7d676cbf072 [file] [log] [blame] [edit]
#!/bin/bash
# Verifies that a set of object files (or archives of object files) doesn't
# define any symbol twice. Used to check for ODR violation between files
# compiled with different compiler options.
#
# Usage: test_exports [object_files...]
if [ $# -eq 0 ]; then
echo "${0##*/}: list of object files expected"
fi
for f in "$@"; do
nm -g -P "$f" | awk '$2 ~ /[uvwA-Z]/ && $3 != "" { print $1 }' || exit 1
done | sort | uniq -d | grep '^'
if [ $? -eq 0 ]; then
echo The above-mentioned symbols are duplicates
echo FAIL
exit 1
fi
echo PASS