]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
PR ld/26288: Allow the use of `--just-symbols' with ET_EXEC input
authorMaciej W. Rozycki <macro@wdc.com>
Thu, 23 Jul 2020 19:24:58 +0000 (20:24 +0100)
committerMaciej W. Rozycki <macro@wdc.com>
Thu, 23 Jul 2020 19:24:58 +0000 (20:24 +0100)
commitfa3b131151d42e1284a447add8c0535ac92ec6e1
treea817c2700627f3bad469c491c1a06322e28fed4d
parent9b6165529df6a759d65fc786a44eb28e226b81ad
PR ld/26288: Allow the use of `--just-symbols' with ET_EXEC input

Fix a regression from commit a87e1817a435 ("Have the linker fail if any
attempt to link in an executable is made.") and do not reject ET_EXEC
input supplied with the `--just-symbols' option.  Such use is legitimate
as the file requested is not actually linked and only the symbols are
extracted. Furthermore it is often the most useful application, as
already observed in our documentation for the option, where it allows
"to refer symbolically to absolute locations of memory defined in other
programs."

Provide a set of tests for the use of ET_EXEC with `--just-symbols'.
These are excluded however for SH/PE targets because they complain if a
section's VMA is 0:

ld: zero vma section reloc detected: `.text' #0 f=32795
ld: zero vma section reloc detected: `.data' #1 f=291

and for x86_64/PE targets because they seem to hardwire the VMA:

 100000000 12000000 01000000 00000000 00000000  ................

ld/
PR ld/26288
* ldelf.c (ldelf_after_open): Do not reject ET_EXEC input
supplied with `--just-symbols'.
* testsuite/ld-misc/just-symbols.exp: New test script.
* testsuite/ld-misc/just-symbols-1.dd: New test dump.
* testsuite/ld-misc/just-symbols.ld: New test linker script.
* testsuite/ld-misc/just-symbols-0.s: New test source.
* testsuite/ld-misc/just-symbols-1.s: New test source.

(cherry picked from commit 97c79e2174fbb0dda16850fa5366592e93d31cb9)
ld/ChangeLog
ld/ldelf.c
ld/testsuite/ld-misc/just-symbols-0.s [new file with mode: 0644]
ld/testsuite/ld-misc/just-symbols-1.dd [new file with mode: 0644]
ld/testsuite/ld-misc/just-symbols-1.s [new file with mode: 0644]
ld/testsuite/ld-misc/just-symbols.exp [new file with mode: 0644]
ld/testsuite/ld-misc/just-symbols.ld [new file with mode: 0644]