Position-independent code and data
In this section:
Most applications are designed to be placed at a fixed position in memory. The exact placement of each function is decided at link time. However, sometimes it is useful to instead decide at runtime where to place the application, for example in certain systems where applications are loaded dynamically.
You can configure the compiler to generate read-only position-independent code and data.