ld: Issue an error for GC on __patchable_function_entries section
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 7 Feb 2020 03:37:54 +0000 (19:37 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 7 Feb 2020 03:40:38 +0000 (19:40 -0800)
commit5242a0a000ad7d3f2fa1cd0023f692d53261b302
treed63d80ceaf397af290aadb5619a6a20299984ded
parentb7d072167715829eed0622616f6ae0182900de3e
ld: Issue an error for GC on __patchable_function_entries section

__patchable_function_entries section is generated by a compiler with
-fpatchable-function-entry=XX.  The assembly code looks like this:

---
.text
.globl _start
.type _start, %function
_start:
.section __patchable_function_entries,"aw",%progbits
.dc.a .LPFE1
.text
.LPFE1:
.byte 0
---

But --gc-sections will silently remove __patchable_function_entries
section and generate corrupt result.  This patch disallows garbage
collection on __patchable_function_entries section without linked-to
section.

bfd/

PR ld/25490
* elflink.c (_bfd_elf_gc_mark_extra_sections): Issue an error
for garbage collection on __patchable_function_entries section
without linked-to section.

ld/

PR ld/25490
* testsuite/ld-elf/pr25490-1.d: New file.
* testsuite/ld-elf/pr25490-1.s: Likewise.
bfd/ChangeLog
bfd/elflink.c
ld/ChangeLog
ld/testsuite/ld-elf/pr25490-1.d [new file with mode: 0644]
ld/testsuite/ld-elf/pr25490-1.s [new file with mode: 0644]