The declaration of a weak variable is permitted, and acts
in a similar way to
in GNU mode:
extern int Variable_Attributes_weak_1 __attribute__((weak));
the equivalent in non-GNU mode is:
__weak int Variable_Attributes_weak_compare;
extern qualifier is required in GNU
mode. In non-GNU mode the compiler assumes that if the variable
extern then it is treated like any other
non weak variable.
This variable attribute is a GNU compiler extension that the ARM compiler supports.