 e6aa3d7e6b
			
		
	
	e6aa3d7e6b
	
	
	
		
			
			git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16081 ec53bebd-3082-4978-b11e-865c3cabbd6b
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| # check library exported symbols
 | |
| # $Id$
 | |
| 
 | |
| LANG=C
 | |
| export LANG
 | |
| 
 | |
| esym="__i686.get_pc_thunk"
 | |
| symbols=
 | |
| 
 | |
| # AIX has different default output format
 | |
| nmargs=""
 | |
| if [ "`uname`" = AIX ]; then
 | |
| 	nmargs="-B"
 | |
| fi
 | |
| 
 | |
| while test $# != 0 ;do 
 | |
|   case "$1" in
 | |
|     -lib) lib="$2" ; shift;;
 | |
|     -com_err)
 | |
|        esym="${esym} com_right\$ free_error_table\$ initialize_error_table_r\$"
 | |
|        esym="${esym} com_err error_message\$ error_table_name\$"
 | |
|        esym="${esym} init_error_table\$ add_to_error_table\$"
 | |
|        esym="${esym} reset_com_err_hook\$ set_com_err_hook\$ _et_list\$"
 | |
|        esym="${esym} et_[A-Za-z0-9]*_error_table"
 | |
|        esym="${esym} initialize_[A-Za-z0-9]*_error_table et_*_error_table" ;;
 | |
|     -version)
 | |
|        esym="${esym} print_version\$" ;;
 | |
|     -asn1compile)
 | |
|        esym="${esym} copy_ free_ length_ decode_ encode_ length_ "
 | |
|        esym="${esym} *.2int\$ int2 asn1_[A-Za-z0-9]*_units\$" ;;
 | |
|     -*) echo "unknown option $1" ; exit 1 ;;
 | |
|     *) break ;;
 | |
|   esac
 | |
|   shift
 | |
| done
 | |
| 
 | |
| for a in "$@" $esym; do
 | |
|     symbols="\$3 !~ /^[_\.]?${a}/ ${symbols:+&&} ${symbols}"
 | |
| done
 | |
| 
 | |
| # F filename, N debugsymbols, W weak symbols, U undefined
 | |
| 
 | |
| (nm $nmargs .libs/lib${lib}.a || nm $nmargs .libs/lib${lib}.so*)  |
 | |
| awk "BEGIN { stat = 0 }
 | |
| NF == 3 && \$2 ~ /[A-EG-MO-TVX-Z]/ && $symbols { printf \"%s should not be exported (type %s)\\n\", \$3, \$2; ++stat } END { exit stat }"
 | |
| 
 |