3.29 __attribute__((weak)) variable attribute
Generates a weak symbol for a variable, rather than the default strong symbol.
extern int foo __attribute__((weak));
At link time, strong symbols override weak symbols. This lets you replace a weak symbol with a strong symbol by choosing a particular combination of object files to link.
This variable attribute is a GNU compiler extension that the ARM compiler supports.