lorder(1)lorder(1)NAMElorder - Finds the best order for member files in an object library
The lorder command is essentially obsolete. Use the following command
in its place: % ar -ts file.a
The lorder command reads one or more object or library archive files,
looks for external references, and writes a list of paired filenames to
standard output. The first of each pair of files contains references
to identifiers that are defined in the second file. You can send this
list to the tsort command to find an ordering of a library member file
suitable for 1-pass access by ld.
If object files do not end with lorder overlooks them and attributes
their global symbols and references to some other file.
To create a subroutine library, enter: lorder charin.o scanfld.o scan.o
scanln.o | tsort | xargs ar qv libsubs.a
(Enter this command entirely on one line, not on two lines as shown
This creates a subroutine library named libsubs.a that contains
charin.o, scanfld.o, scan.o, and scanln.o. The ordering of the object
modules in the library is important. The lorder and tsort commands
together add the subroutines to the library in the proper order.
Suppose that scan.o calls entry points in scanfld.o and scanln.o.
scanfld.o also calls entry points in charin.o. First, the lorder com‐
mand creates a list of pairs that shows these dependencies: charin.o
charin.o scanfld.o scanfld.o scan.o scan.o scanln.o scanln.o scanfld.o
charin.o scanln.o charin.o scan.o scanfld.o
This list is piped to the tsort command, which converts the list into
the ordering that is needed:
scan.o scanfld.o scanln.o charin.o
Note that each module precedes the module it calls. charin.o, which
does not call another module, is last. The second list is then piped to
xargs, which constructs and runs the following ar command: ar qv lib‐
subs.a scan.o scanfld.o scanln.o charin.o
This ar command creates the properly ordered library.
Commands: ar(1), as(1), cc(1), ld(1), make(1), nm(1), size(1),
strip(1), tsort(1), xargs(1)
Files: a.out(4), ar(4)lorder(1)