#!/bin/sh
#	$Id: externs,v 1.5 2009/01/17 22:37:24 tom Exp $
#       @(#)dev externs 1.1@(#) 91/08/20 08:29:03 SPC UIS
#
# Lists all externals from the given set of object files
#
unset LANG
unset LANGUAGE
unset LC_ALL
unset LC_CTYPE
#
TMP=${TMPDIR-/tmp}/$$
FIX='rm -f ${TMP} ${TMP}U ${TMP}D'
trap 'rm -f ${TMP} ${TMP}U ${TMP}D;exit' 1 2 3 15
eval $FIX
#
nm -p $* | \
	sed -e 's/^0x[0-9a-fA-F][0-9a-fA-F]*//' |\
	sed -e 's/^[0-9][0-9]*//' |\
	sed -e 's/^ [ ]*//' |\
	grep -v '^[ a-z0-9] ' |\
	grep -v ':$' |\
	grep -v '^$' |\
	sort |uniq >$TMP
grep    '^[U?] ' $TMP | sed -e 's/^[U?] //'  >${TMP}U
grep -v '^[U?] ' $TMP | sed -e 's/^[A-Z] //' >${TMP}D
#
for i in `cat ${TMP}U`
do
	if egrep "\<$i\>" ${TMP}D >/dev/null
	then
		continue
	else
		echo $i
	fi
done
#
eval $FIX
