#!/bin/sh
#	$Id: externs,v 1.7 2022/10/01 14:00:38 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_PROG:-nm} -p "$@" | \
	sed	-e 's/^\(0x\)?[[:xdigit:]][[:xdigit:]]*//' \
		-e 's/^[[:blank:]][[:blank:]]*//' \
		-e '/^[ [:lower:][:digit:]] /d' \
		-e '/:$/d' \
		-e '/^$/d' |\
	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-grep -E} "\<$i\>" ${TMP}D >/dev/null
	then
		continue
	else
		echo "$i"
	fi
done
#
eval "$FIX"
