diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2018-07-02 11:12:44 -0700 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2018-07-06 16:05:49 -0700 |
commit | c451bb34ae8bd2d0669bd563366883cfbcf0de9b (patch) | |
tree | 97de881e2081b7b1d734d18687b15dd27e26fa15 /gdb/opencl-lang.c | |
parent | ad1cc4e492e51ff334df81b5e8610f91b50e373a (diff) | |
download | gdb-c451bb34ae8bd2d0669bd563366883cfbcf0de9b.zip gdb-c451bb34ae8bd2d0669bd563366883cfbcf0de9b.tar.gz gdb-c451bb34ae8bd2d0669bd563366883cfbcf0de9b.tar.bz2 |
xtensa: don't emit dynamic relocation for weak undefined symbol
Resolved reference to a weak undefined symbol in PIE must not have
a dynamic relative relocation against itself, otherwise the value of a
reference will be changed from 0 to the base of executable, breaking
code like the following:
void weak_function (void);
if (weak_function)
weak_function ();
This fixes tests for PR ld/22269 and a number of PIE tests in xtensa gcc
testsuite.
bfd/
2018-07-06 Max Filippov <jcmvbkbc@gmail.com>
* elf32-xtensa.c (elf_xtensa_allocate_dynrelocs): Don't allocate
space for dynamic relocation for undefined weak symbol.
(elf_xtensa_relocate_section): Don't emit R_XTENSA_RELATIVE
relocation for undefined weak symbols.
(shrink_dynamic_reloc_sections): Don't shrink dynamic relocation
section for relocations against undefined weak symbols.
Diffstat (limited to 'gdb/opencl-lang.c')
0 files changed, 0 insertions, 0 deletions