aboutsummaryrefslogtreecommitdiff
path: root/sys/conf/ldscript.ia64
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2004-06-20 22:32:19 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2004-06-20 22:32:19 +0000
commit5526395941661215d1915a3559d8d6ce2dca669f (patch)
tree6c0e13747deb38610eb40059e7874e7af554cc89 /sys/conf/ldscript.ia64
parentce1affa2acfa0151ae3312f09a1a5e89647afe7a (diff)
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.
Notes
Notes: svn path=/head/; revision=130829
Diffstat (limited to 'sys/conf/ldscript.ia64')
-rw-r--r--sys/conf/ldscript.ia642
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/conf/ldscript.ia64 b/sys/conf/ldscript.ia64
index a06798b0150d..cc78ee1397ad 100644
--- a/sys/conf/ldscript.ia64
+++ b/sys/conf/ldscript.ia64
@@ -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