4.3. Disadvantages of dynamic linking

A dynamically linked system has some run-time overhead. For example, calling functions through a Procedure Linkage Table (described in Handling function calls between modules). There is also the complex task of creating a dynamic linker. This can be very time consuming, and a dynamic linker can typically require maintenance. Therefore, give serious consideration to whether implementing a full dynamic linking system is the appropriate solution.

In a lot of cases static linking is not possible, for example, because of limited memory, and a full dynamic linking system is also undesirable due to the complications mentioned previously. However, the requirements for a particular application can still be met. Such applications can use alterative features of the ARM Compiler toolchain, which lie somewhere between static linking and a full dynamically linked system.

There are a number of common approaches. These include using symbol definition files, jump tables and memory overlays.

Copyright © 2010 ARM. All rights reserved.ARM DAI 0242A