Embedded systems often have limited amounts of available memory, thus encouraging the development of compact programs. This paper presents a link-time program compactor for the embedded MIPS architecture. The application of several important data flow and control flow analyses and the related program transformations at link-time are discussed and evaluated for a collection of typical embedded applications compiled against the uClibc library targeted at the embedded market. With the presented link-time compactor, code size reductions of up to 27% are obtained, and speedups of up to 17%.