binutils-gdb/ld/testsuite/ld-xtensa/relax-undef-weak-pie-export-dynamic.d
Max Filippov 2487ef07c2 bfd: xtensa: fix shrink_dynamic_reloc_sections for export-dynamic
shrink_dynamic_reloc_sections must remove PLT entry that was created for
an undefined weak symbol in the presence of --export-dynamic option when
relaxation coalesces literals pointing to that symbol. This fixes the
following assertion:

  ld: BFD (GNU Binutils) 2.31.1 internal error, aborting at
  elf32-xtensa.c:3292 in elf_xtensa_finish_dynamic_sections

2019-03-29  Max Filippov  <jcmvbkbc@gmail.com>
bfd/
	* elf32-xtensa.c (shrink_dynamic_reloc_sections): Add
	info->export_dynamic to the conditional.

ld/
	* testsuite/ld-xtensa/relax-undef-weak-pie-export-dynamic.d: New
	test definition.
	* testsuite/ld-xtensa/xtensa.exp
	(relax-undef-weak-pie-export-dynamic): Add new test.
2019-03-29 10:02:10 -07:00

15 lines
263 B
Makefile

#source: relax-undef-weak.s
#ld: -pie --export-dynamic
#readelf: -r
#...
Relocation section '\.rela\.dyn' .* 3 .*
#...
.*R_XTENSA_RTLD.*
.*R_XTENSA_RTLD.*
.*R_XTENSA_GLOB_DAT.*fd.*
#...
Relocation section '\.rela\.plt' .* 1 .*
#...
.*R_XTENSA_JMP_SLOT.*fd.*
#...