Compacting Arm Binaries with the Diablo Framework
Dominique Chanet, Ludo Van Put · Ghent University Academic Bibliography (Ghent University) · 2003
On most embedded systems, memory space and power resources are limited. As a consequence, significant effort is spent in creating resource-efficient programs for embedded systems. Compilers for embedded systems usually try to generate the most compact code possible, and libraries for embedded systems are usually quite a lot smaller than those for general purpose computer systems. One area of improvement that has in general been overlooked, is the linking process. Recent research [2] has shown that it is possible to achieve considerable program compaction at link time, as the linker has a view of the complete program, including libraries, and therefore it is not bound to a number of the conservative assumptions a compiler has to make. These techniques were however developed for general-purpose architectures, and have not yet been evaluated in the context of an actual embedded platform, using actual embedded toolchains. Our aim is to evaluate these techniques for the ARM platform, which is widely used in cell phones, PDAs and other embedded devices. We use Diablo, a retargetable framework for binary rewriting at link time, that has recently been developed at the ELIS research group of Ghent University.