aboutsummaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2016-09-19 05:19:14 -0700
committerJose E. Marchesi <jose.marchesi@oracle.com>2016-09-19 05:19:14 -0700
commitb19753ce31da347605dfa903c6fd2158e2444f0d (patch)
tree750a5c9a267cf7bc7967b10ca87e5cae66ad99db /libiberty
parent2387dd904938566f5d1d6df6670b5dec9dd3f463 (diff)
downloadgdb-b19753ce31da347605dfa903c6fd2158e2444f0d.zip
gdb-b19753ce31da347605dfa903c6fd2158e2444f0d.tar.gz
gdb-b19753ce31da347605dfa903c6fd2158e2444f0d.tar.bz2
bfd: allow negative offsets to _GLOBAL_OFFSET_TABLE_ in elf64 SPARC
The code compiled with the -fpic model in SPARC uses 13-bit signed immediate PC-relative loads to fetch entries from the GOT table. In theory this would allow using a GOT table (.got section) containing up to 1024 entries in elf32 or 512 entries in elf64. However, in elf64 sparc GNU targets _GLOBAL_OFFSET_TABLE_ is always placed at the beginning of the .got section, making it impossible to use negative offsets. This limits the usage of -fpic to GOT tables containing a maximum of 257 entries in elf64. This patch activates an optimization that is already used in sparc-elf32 also in sparc-elf64, that sets _GLOBAL_OFFSET_TABLE_ to point 0x1000 into the .got section if the section size is bigger than 0x1000. 2016-09-19 Jose E. Marchesi <jose.marchesi@oracle.com> * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Allow negative offsets to _GLOBAL_OFFSET_TABLE_ if the .got section is bigger than 0x1000 bytes.
Diffstat (limited to 'libiberty')
0 files changed, 0 insertions, 0 deletions