[llvm-objdump] -r: print non-SHF_ALLOC relocations for non-ET_REL files
authorFangrui Song <i@maskray.me>
Fri, 1 Jul 2022 16:08:42 +0000 (09:08 -0700)
committerFangrui Song <i@maskray.me>
Fri, 1 Jul 2022 16:08:42 +0000 (09:08 -0700)
commitf80a4321ef1bafcd8041884bcb85d9ba24335adb
treec8a0e6b0e61883684a67acd03de5913637d1eeb6
parent38bcd483dd461e1e00d039700d16991a166183e6
[llvm-objdump] -r: print non-SHF_ALLOC relocations for non-ET_REL files

ET_EXEC and ET_DYN files may contain non-SHF_ALLOC relocation sections
(e.g. ld --emit-relocs). Match GNU objdump by dumping them.

* Remove Object/dynamic-reloc.test. Replace it with a -r RUN line in dynamic-relocs.test
* Update relocations-in-nonreloc.test to set sh_link/sh_info. GNU
  objdump seems to ignore a SHT_REL/SHT_RELA section not linking to SHT_SYMTAB.
  The test did not test what it intended to test.

Fix https://github.com/llvm/llvm-project/issues/41246

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D128959
llvm/test/Object/dynamic-reloc.test [deleted file]
llvm/test/tools/llvm-objdump/ELF/dynamic-relocs.test
llvm/test/tools/llvm-objdump/ELF/relocations-in-nonreloc.test [new file with mode: 0644]
llvm/test/tools/llvm-objdump/relocations-in-nonreloc.test [deleted file]
llvm/tools/llvm-objdump/llvm-objdump.cpp