Linker Script
.gnu.linkonce.XXX
When the GNU linker sees two input sections with the same name, and the name starts with “.gnu.linkonce.”, the linker will only keep one copy and discard the other.
Ref: https://gcc-help.gcc.gnu.narkive.com/QHfS11NY/gnu-linkonce-and-gcc-except-table
PROVIDE
Define a symbol only if it is referenced and is not defined by any object included in the link
Ref: https://sourceware.org/binutils/docs/ld/PROVIDE.html#PROVIDE