tdb: move the original abi_checks script to script/abi_checks_gcc.sh
[ira/wip.git] / lib / tdb / script / abi_checks_gcc.sh
1 #!/bin/bash
2
3 make clean
4
5 mkdir -p abi/common
6 mkdir -p abi/tools
7 ABI_CHECKS="-aux-info abi/\$@.X"
8 make ABI_CHECK="$ABI_CHECKS" CC="/usr/bin/gcc"
9
10 for i in abi/*/*.X; do cat $i | grep 'tdb\.h'; done | sort | uniq | awk -F "extern " '{ print $2 }' | sort > abi/signatures
11 grep '^extern' include/tdb.h | grep -v '"C"' | sort | uniq | awk -F "extern " '{ print $2 }' >> abi/signatures
12
13 cat > abi/exports << EOF
14 {
15     global:
16 EOF
17 #Functions
18 cat abi/signatures | grep "(" | awk -F '(' '{ print $1 }' | awk -F ' ' '{ print "           "$NF";" }' | tr -d '*' | sort >> abi/exports
19 #global vars
20 cat abi/signatures | grep -v "(" | awk -F ';' '{print $1 }' | awk -F ' ' '{ print "           "$NF";" }' | tr -d '*' | sort >> abi/exports
21 cat >> abi/exports << EOF
22
23     local: *;
24 };
25 EOF
26
27 diff -u tdb.signatures abi/signatures
28 if [ "$?" != "0" ]; then
29     echo "WARNING: Possible ABI Change!!"
30 fi
31
32 diff -u tdb.exports abi/exports
33 if [ "$?" != "0" ]; then
34     echo "WARNING: Export file may be outdated!!"
35 fi