[binutils-gdb/binutils-2_28-branch] Don't use "_gp" on RISC-V, use "_global_pointer$" instead

Palmer Dabbelt palmer@sourceware.org
Mon Feb 13 17:54:00 GMT 2017


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3877052c50b54e43d0667e77f69e99e656d6a1b9

commit 3877052c50b54e43d0667e77f69e99e656d6a1b9
Author: Palmer Dabbelt <palmer@dabbelt.com>
Date:   Wed Feb 8 11:26:07 2017 -0800

    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-13  Palmer Dabbelt  <palmer@dabbelt.com>
    
            * emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Change
            _gp to __global_pointer$.
    
    bfd/ChangeLog:
    
    2017-02-13  Palmer Dabbelt  <palmer@dabbelt.com>
    
            * elfnn-riscv.c (riscv_global_pointer_value): Change _gp to
            __global_pointer$.

Diff:
---
 bfd/ChangeLog                     | 5 +++++
 bfd/elfnn-riscv.c                 | 2 +-
 ld/ChangeLog                      | 5 +++++
 ld/emulparams/elf32lriscv-defs.sh | 2 +-
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8ceba71..d10fe8c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2017-02-13  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* elfnn-riscv.c (riscv_global_pointer_value): Change _gp to
+	__global_pointer$.
+
 2017-02-13  Maciej W. Rozycki  <macro@imgtec.com>
 
 	* elfxx-mips.c (mips_elf_hash_sort_data): Add
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index f414429..ab002b6 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/ChangeLog b/ld/ChangeLog
index 75ede4a..c9aef53 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2017-02-13  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Change
+	_gp to __global_pointer$
+
 2017-02-03  Alan Modra  <amodra@gmail.com>
 
 	PR ld/21000
diff --git a/ld/emulparams/elf32lriscv-defs.sh b/ld/emulparams/elf32lriscv-defs.sh
index 0eba0d1..ab80333 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}}"



More information about the Binutils-cvs mailing list