---
name: "lorder"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/lorder"
---

# lorder(1)

list dependencies for object files

## NAME

**lorder** – list dependencies for object files

## SYNOPSIS

**lorder** *file ...*

## DESCRIPTION

The **lorder** utility uses [nm(1)](/nm/1.md) to determine interdependencies between object files and library archives listed on its command line. It then outputs a list of pairs of file names such that the first file in each pair references at least one symbol defined by the second.

The output is normally used with [tsort(1)](/tsort/1.md) when a library is created to determine the optimum ordering of the object modules so that all references may be resolved in a single pass of the loader.

Similarly, when linking static binaries, **lorder** and [tsort(1)](/tsort/1.md) can be used to sort libraries in order of dependency.

While contemporary linkers no longer require the use of **lorder**, it is provided for the benefit of legacy code bases and build systems which still insist on it.

## ENVIRONMENT

- NM

  Path to the [nm(1)](/nm/1.md) binary, defaults to “nm”.

- NMFLAGS

  Flags to pass to [nm(1)](/nm/1.md).

## EXAMPLES

```
ar cr library.a `lorder ${OBJS} | tsort`
cc -o foo ${OBJS} `lorder ${STATIC_LIBS} | tsort`
```

## SEE ALSO

[ar(1)](/ar/1.md), [ld(1)](/ld/1.md), [nm(1)](/nm/1.md), [ranlib(1)](/ranlib/1.md), [tsort(1)](/tsort/1.md)

## HISTORY

A **lorder** utility appeared in Version 7 AT&T UNIX.

## CAVEATS

The **lorder** utility will not work properly if given file names with spaces or newlines in them.
