[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/23428] ld does not put program headers in a code-only load segme
From: |
cvs-commit at gcc dot gnu.org |
Subject: |
[Bug ld/23428] ld does not put program headers in a code-only load segment |
Date: |
Mon, 23 Jul 2018 21:25:47 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=23428
--- Comment #5 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot
gnu.org> ---
The binutils-2_31-branch branch has been updated by H.J. Lu
<address@hidden>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6737a6b34f4823deb7142f27b4074831a37ac1e1
commit 6737a6b34f4823deb7142f27b4074831a37ac1e1
Author: H.J. Lu <address@hidden>
Date: Fri Jul 20 09:18:47 2018 -0700
x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed
When -z separate-code, which is enabled by default for Linux/x86, is
used to create executable, ld won't place any data in the code-only
PT_LOAD segment. If there are no data sections placed before the
code-only PT_LOAD segment, the program headers won't be mapped into
any PT_LOAD segment. When the executable tries to access it (based
on the program header address passed in AT_PHDR), it will lead to
segfault. This patch inserts a GNU_PROPERTY_X86_ISA_1_USED note if
there may be no data sections before the text section so that the
first PT_LOAD segment won't be code-only and will contain the program
header.
Testcases are adjusted to either pass "-z noseparate-code" to ld or
discard the .note.gnu.property section. A Linux/x86 run-time test is
added.
bfd/
PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
separate code program header is needed, make sure that the first
read-only PT_LOAD segment has no code by adding a
GNU_PROPERTY_X86_ISA_1_USED note.
ld/
PR ld/23428
* testsuite/ld-elf/linux-x86.S: New file.
* testsuite/ld-elf/linux-x86.exp: Likewise.
* testsuite/ld-elf/pr23428.c: Likewise.
* testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
for Linux/x86 targets.
* testsuite/ld-i386/abs-iamcu.d: Likewise.
* testsuite/ld-i386/abs.d: Likewise.
* testsuite/ld-i386/pr12718.d: Likewise.
* testsuite/ld-i386/pr12921.d: Likewise.
* testsuite/ld-x86-64/abs-k1om.d: Likewise.
* testsuite/ld-x86-64/abs-l1om.d: Likewise.
* testsuite/ld-x86-64/abs.d: Likewise.
* testsuite/ld-x86-64/pr12718.d: Likewise.
* testsuite/ld-x86-64/pr12921.d: Likewise.
* testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
section.
* testsuite/ld-scripts/print-memory-usage.t: Likewise.
* testsuite/ld-scripts/size-2.t: Likewise.
* testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld
to create executable if language is "asm".
(cherry picked from commit 241e64e3b42cd9eba514b8e0ad2ef39a337f10a5)
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/23428] New: ld does not put program headers in a load segment when static linking an executable, nszabolcs at gmail dot com, 2018/07/18
- [Bug ld/23428] ld does not put program headers in a load segment when static linking an executable, sourceware at wdtz dot org, 2018/07/18
- [Bug ld/23428] ld does not put program headers in a load segment when static linking an executable, bugdal at aerifal dot cx, 2018/07/18
- [Bug ld/23428] ld does not put program headers in a load segment when static linking an executable, hjl.tools at gmail dot com, 2018/07/18
- [Bug ld/23428] ld does not put program headers in a code-only load segment, hjl.tools at gmail dot com, 2018/07/18
- [Bug ld/23428] ld does not put program headers in a code-only load segment, fweimer at redhat dot com, 2018/07/19
- [Bug ld/23428] ld does not put program headers in a code-only load segment, hjl.tools at gmail dot com, 2018/07/19
- [Bug ld/23428] ld does not put program headers in a code-only load segment, bugdal at aerifal dot cx, 2018/07/19
- [Bug ld/23428] ld does not put program headers in a code-only load segment, cvs-commit at gcc dot gnu.org, 2018/07/20
- [Bug ld/23428] ld does not put program headers in a code-only load segment,
cvs-commit at gcc dot gnu.org <=
- [Bug ld/23428] ld does not put program headers in a code-only load segment, hjl.tools at gmail dot com, 2018/07/23