Fix the following error:
ld: locore.o: non-pic code with imm relocation against dynamic symbol `__gp' With binutils 2.15, ld(1) defines the implicit/automatic symbol __gp as a dynamic symbol and thus will now complain when used in a non-PIC fashion (the immediate relocation used to set the GP register). Resolve this by defining __gp in the linker script. Make sure __gp is aligned on a 16-byte boundary. Note: the 0x200000 magic offset is due to having a 22-bit GP-relative relocation. The GOT will be accessed with negative offsets from GP.
This commit is contained in:
parent
28655618da
commit
4fbb57fff7
@ -74,6 +74,8 @@ SECTIONS
|
||||
*(.dtors)
|
||||
*(SORT(.dtors.*))
|
||||
}
|
||||
. = ALIGN(16);
|
||||
__gp = . + 0x200000;
|
||||
.got : { *(.got.plt) *(.got) }
|
||||
.IA_64.pltoff : { *(.IA_64.pltoff) }
|
||||
/* We want the small data sections together, so single-instruction offsets
|
||||
|
Loading…
Reference in New Issue
Block a user