binutils-gdb/ld/testsuite/ld-riscv-elf
Michael Matz 235f5ef4a6 elf/riscv: Fix relaxation with aliases [PR28021]
the fix for PR22756 only changed behaviour for hidden aliases,
but the same situation exists for non-hidden aliases: sym_hashes[]
can contain multiple entries pointing to the same symbol structure
leading to relaxation adjustment to be applied twice.

Fix this by testing for duplicates for everything that looks like it
has a version.

PR ld/28021

bfd/
	* elfnn-riscv.c (riscv_relax_delete_bytes): Check for any
	versioning.

ld/
	* testsuite/ld-riscv-elf/relax-twice.ver: New.
	* testsuite/ld-riscv-elf/relax-twice-1.s: New.
	* testsuite/ld-riscv-elf/relax-twice-2.s: New.
	* testsuite/ld-riscv-elf/ld-riscv-elf.exp
	(run_relax_twice_test): New, and call it.
2021-07-06 15:49:03 +02:00
..
attr-merge-arch-01.d
attr-merge-arch-01a.s
attr-merge-arch-01b.s
attr-merge-arch-02.d
attr-merge-arch-02a.s
attr-merge-arch-02b.s
attr-merge-arch-03.d
attr-merge-arch-03a.s
attr-merge-arch-03b.s
attr-merge-arch-failed-01.d
attr-merge-arch-failed-01a.s
attr-merge-arch-failed-01b.s
attr-merge-arch-failed-02.d
attr-merge-arch-failed-02a.s
attr-merge-arch-failed-02b.s
attr-merge-arch-failed-02c.s
attr-merge-arch-failed-02d.s
attr-merge-priv-spec-01.d
attr-merge-priv-spec-02.d
attr-merge-priv-spec-03.d
attr-merge-priv-spec-a.s
attr-merge-priv-spec-b.s
attr-merge-priv-spec-c.s
attr-merge-priv-spec-d.s
attr-merge-priv-spec-failed-01.d
attr-merge-priv-spec-failed-02.d
attr-merge-priv-spec-failed-03.d
attr-merge-priv-spec-failed-04.d
attr-merge-priv-spec-failed-05.d
attr-merge-priv-spec-failed-06.d
attr-merge-stack-align-a.s
attr-merge-stack-align-b.s
attr-merge-stack-align-failed-a.s
attr-merge-stack-align-failed-b.s
attr-merge-stack-align-failed.d
attr-merge-stack-align.d
attr-merge-strict-align-01.d
attr-merge-strict-align-01a.s
attr-merge-strict-align-01b.s
attr-merge-strict-align-02.d
attr-merge-strict-align-02a.s
attr-merge-strict-align-02b.s
attr-merge-strict-align-03.d
attr-merge-strict-align-03a.s
attr-merge-strict-align-03b.s
attr-merge-strict-align-04.d
attr-merge-strict-align-04a.s
attr-merge-strict-align-04b.s
attr-merge-strict-align-05.d
attr-merge-strict-align-05a.s
attr-merge-strict-align-05b.s
attr-phdr.d RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR. 2021-07-06 11:34:36 +08:00
attr-phdr.s RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR. 2021-07-06 11:34:36 +08:00
c-lui-2.d
c-lui-2.ld
c-lui-2.s
c-lui.d
c-lui.s
call-relax-0.s
call-relax-1.s
call-relax-2.s
call-relax-3.s
call-relax.d
disas-jalr.d
disas-jalr.s
gp-test-lib.sd
gp-test.s
gp-test.sd
ifunc-nonplt-exe.rd
ifunc-nonplt-pic.rd
ifunc-nonplt-pie.rd
ifunc-nonplt.d
ifunc-nonplt.s
ifunc-plt-01-exe.rd
ifunc-plt-01-pic.rd
ifunc-plt-01-pie.rd
ifunc-plt-01.d
ifunc-plt-01.s
ifunc-plt-02-exe.rd
ifunc-plt-02-pic.rd
ifunc-plt-02-pie.rd
ifunc-plt-02.d
ifunc-plt-02.s
ifunc-plt-got-overwrite-exe.rd
ifunc-plt-got-overwrite-pic.rd
ifunc-plt-got-overwrite-pie.rd
ifunc-plt-got-overwrite.d
ifunc-plt-got-overwrite.s
ifunc-reloc-call-01-exe.rd
ifunc-reloc-call-01-pic.rd
ifunc-reloc-call-01-pie.rd
ifunc-reloc-call-01.d
ifunc-reloc-call-01.s
ifunc-reloc-call-02-exe.rd
ifunc-reloc-call-02-pic.rd
ifunc-reloc-call-02-pie.rd
ifunc-reloc-call-02.d
ifunc-reloc-call-02.s
ifunc-reloc-data-exe.rd
ifunc-reloc-data-pic.rd
ifunc-reloc-data-pie.rd
ifunc-reloc-data.d
ifunc-reloc-data.s
ifunc-reloc-got-exe.rd
ifunc-reloc-got-pic.rd
ifunc-reloc-got-pie.rd
ifunc-reloc-got.d
ifunc-reloc-got.s
ifunc-reloc-pcrel-exe.rd
ifunc-reloc-pcrel-pic.rd
ifunc-reloc-pcrel-pie.rd
ifunc-reloc-pcrel.d
ifunc-reloc-pcrel.s
ifunc-seperate-caller-nonplt.s
ifunc-seperate-caller-pcrel.s
ifunc-seperate-caller-plt.s
ifunc-seperate-nonplt-exe.d
ifunc-seperate-nonplt-pic.d
ifunc-seperate-nonplt-pie.d
ifunc-seperate-pcrel-pic.d
ifunc-seperate-pcrel-pie.d
ifunc-seperate-plt-exe.d
ifunc-seperate-plt-pic.d
ifunc-seperate-plt-pie.d
ifunc-seperate-resolver.s
ld-riscv-elf.exp elf/riscv: Fix relaxation with aliases [PR28021] 2021-07-06 15:49:03 +02:00
lib-nopic-01a.s
lib-nopic-01b.d
lib-nopic-01b.s
pcgp-relax.d
pcgp-relax.s
pcrel-lo-addend-2a.d
pcrel-lo-addend-2a.s
pcrel-lo-addend-2b.d
pcrel-lo-addend-2b.s
pcrel-lo-addend-3.ld RISC-V: Clarify the addends of pc-relative access. 2021-06-22 17:14:55 +08:00
pcrel-lo-addend-3a.d RISC-V: Clarify the addends of pc-relative access. 2021-06-22 17:14:55 +08:00
pcrel-lo-addend-3a.s RISC-V: Clarify the addends of pc-relative access. 2021-06-22 17:14:55 +08:00
pcrel-lo-addend-3b.d RISC-V: Clarify the addends of pc-relative access. 2021-06-22 17:14:55 +08:00
pcrel-lo-addend-3b.s RISC-V: Clarify the addends of pc-relative access. 2021-06-22 17:14:55 +08:00
pcrel-lo-addend-3c.d RISC-V: Clarify the addends of pc-relative access. 2021-06-22 17:14:55 +08:00
pcrel-lo-addend-3c.s RISC-V: Clarify the addends of pc-relative access. 2021-06-22 17:14:55 +08:00
pcrel-lo-addend.d
pcrel-lo-addend.s
relax-twice-1.s elf/riscv: Fix relaxation with aliases [PR28021] 2021-07-06 15:49:03 +02:00
relax-twice-2.s elf/riscv: Fix relaxation with aliases [PR28021] 2021-07-06 15:49:03 +02:00
relax-twice.ver elf/riscv: Fix relaxation with aliases [PR28021] 2021-07-06 15:49:03 +02:00
relro-relax-lui.d
relro-relax-lui.s
relro-relax-pcrel.d
relro-relax-pcrel.s
restart-relax.d
restart-relax.s
weakref32.d
weakref32.s
weakref64.d
weakref64.s
weakref.ld