Home | History | Annotate | Download | only in src
      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
     45