Hi, switched to gcc 4.8.2, but the problem remains. It seems like .data.rel.ro.local contains pointers only and its entries are not covered by any entries in .fixup. All other .data.rel.ro.* sections contain arbitrary data - if there are any pointers, there is always a corresponding entry in .fixup. Therefore I put .data.rel.ro.local between .got2 and .got in the linker script file: KEEP(*(.got2)) KEEP(*(.data.rel.ro.local)) KEEP(*(.got)) which seems to solve the problem. Is the above assumption valid? Or may it break with some other code or with the next compiler version? It's quite hard to find documentation about the usage of .data.rel.ro.local. Thanks, Joerg