|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U l
Length: 1914 (0x77a)
Types: TextFile
Notes: UNIX file
Names: »lorder«
└─⟦12e2d81bc⟧ Bits:30004155/disk1.imd SW95713I 386/ix Software Development System Rel. 2.0
└─⟦12e2d81bc⟧ UNIX Filesystem
└─⟦this⟧ »sd/new/bin/lorder«
#ident "@(#)lorder 11.3 - 88/05/27"
# COMMON LORDER
#
#
if [ -z "$TMPDIR" ]
then
TDIR="/tmp"
else
TDIR=$TMPDIR
fi
trap "rm -f $TDIR/$$sym?ef $TDIR/$$tmp; exit" 1 2 13 15
case $# in
0) echo usage: lorder file ...
exit 1;;
1) case $1 in
*.o) set $1 $1
esac
esac
# The following sed script is commented here.
# The first two expressions in the sed script
# insures that we only have lines
# that contain file names and the external
# declarations associated with each file.
# The next two parts of the sed script put the pattern
# (in this case the file name) into the hold space
# and creates the "filename filename" lines and
# writes them out. The first part is for .o files,
# the second is for .o's in archives.
# The last 2 sections of code are exactly alike but
# they handle different external symbols, namely the
# symbols that are defined in the text section, data section, bss
# section or common symbols and symbols
# that are referenced but not defined in this file.
# A line containing the symbol (from the pattern space) and
# the file it is referenced in (from the hold space) is
# put into the pattern space.
# If its text, data, bss or common it is written out to the
# symbol definition (symdef) file, otherwise it was referenced
# but not declared in this file so it is written out to the
# symbol referenced (symref) file.
#
#
nm -ep $* 2>$TDIR/$$tmp | sed -e '/^[ ]*$/d' -e '
/ [a-zS] /d
/[^]]:$/{
s/://
h
s/.*/& &/
p
d
}
/]:$/{
s/]://
s/^.*\[//
h
s/.*/& &/
p
d
}
/ [TDBCA] /{
s/^.* [TDBCA] //
G
s/\n/ /
w '$TDIR/$$symdef'
d
}
/ U /{
s/^.* U //
G
s/\n/ /
w '$TDIR/$$symref'
d
}
'
if [ -s $TDIR/$$tmp ]
then
cat $TDIR/$$tmp
rm -f $TDIR/$$sym?ef $TDIR/$$tmp
exit 1
fi
sort $TDIR/$$symdef -o $TDIR/$$symdef
sort $TDIR/$$symref -o $TDIR/$$symref
join $TDIR/$$symref $TDIR/$$symdef | sed 's/[^ ]* *//'
rm -f $TDIR/$$sym?ef $TDIR/$$tmp