ARM: How to Retain Data in Object File
Information in this article applies to:
How do I keep data in my output image regardless of whether they are referenced or not like a constant version number or checksum?
Append the USED attribute to your constant. Please refer to the example below:
unsigned const int checksum __attribute__((used)) = 0x12345678;
The same attribute can also be used for static functions to avoid removal from the object file.
Static variables marked as used are emitted to a single section, in the order they are declared. Please refer to the following example:
static char a1; /* at offset 0 */ static int b1; /* at offset 4 */ static char c1; /* this will be placed at offset 1 to exploit the gap */ /* these ones will not only be kept but also not reordered */ static char a2 __attribute__((used)); /* at offset 0 */ static int b2 __attribute__((used)); /* at offset 4 */ static char c2 __attribute__((used)); /* at offset 8 */
You can specify the section that variables are placed in using __attribute__((section)).
Last Reviewed: Tuesday, December 22, 2020
of your data.