From 15605b2f82629b2fa8e46ed01640aba524ca13b1 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Wed, 8 Feb 2017 11:26:07 -0800 Subject: [PATCH] Don't use "_gp" on RISC-V, use "_global_pointer$" instead "_gp" could conflict with ABI-complient code. While it's probably OK because MIPS uses this name, we figured it'd be good to clean this up before a release with RISC-V in it. ld/ChangeLog: 2017-02-08 Palmer Dabbelt * emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Change _gp to __global_pointer$. bfd/ChangeLog: 2017-02-08 Palmer Dabbelt * elfnn-riscv.c (riscv_global_pointer_value): Change _gp to __global_pointer$. --- bfd/elfnn-riscv.c | 2 +- ld/emulparams/elf32lriscv-defs.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index b8dd1f23aa6d..6c14313310ac 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -1463,7 +1463,7 @@ riscv_global_pointer_value (struct bfd_link_info *info) { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE); + h = bfd_link_hash_lookup (info->hash, "__global_pointer$", FALSE, FALSE, TRUE); if (h == NULL || h->type != bfd_link_hash_defined) return 0; diff --git a/ld/emulparams/elf32lriscv-defs.sh b/ld/emulparams/elf32lriscv-defs.sh index 0eba0d1a0cb3..ab803332898b 100644 --- a/ld/emulparams/elf32lriscv-defs.sh +++ b/ld/emulparams/elf32lriscv-defs.sh @@ -23,7 +23,7 @@ TEXT_START_ADDR=0x10000 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" -SDATA_START_SYMBOLS="_gp = . + 0x800; +SDATA_START_SYMBOLS="__global_pointer$ = . + 0x800; *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)" INITIAL_READONLY_SECTIONS=".interp : { *(.interp) } ${CREATE_PIE-${INITIAL_READONLY_SECTIONS}}"