Imported Upstream version 0.9.40
[platform/upstream/harfbuzz.git] / src / check-defs.sh
1 #!/bin/sh
2
3 LC_ALL=C
4 export LC_ALL
5
6 test -z "$srcdir" && srcdir=.
7 test -z "$MAKE" && MAKE=make
8 stat=0
9
10 if which nm 2>/dev/null >/dev/null; then
11         :
12 else
13         echo "check-defs.sh: 'nm' not found; skipping test"
14         exit 77
15 fi
16
17 defs="harfbuzz.def"
18 $MAKE $defs > /dev/null
19 tested=false
20 for def in $defs; do
21         lib=`echo "$def" | sed 's/[.]def$//;s@.*/@@'`
22         so=.libs/lib${lib}.so
23
24         EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' _fini\>\| _init\>\| _fdata\>\| _ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>\| __gcov_flush\>\| llvm_' | cut -d' ' -f3`"
25
26         if test -f "$so"; then
27
28                 echo "Checking that $so has the same symbol list as $def"
29                 {
30                         echo EXPORTS
31                         echo "$EXPORTED_SYMBOLS"
32                         # cheat: copy the last line from the def file!
33                         tail -n1 "$def"
34                 } | diff "$def" - >&2 || stat=1
35
36                 tested=true
37         fi
38 done
39 if ! $tested; then
40         echo "check-defs.sh: libharfbuzz shared library not found; skipping test"
41         exit 77
42 fi
43
44 exit $stat