[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/13616] linker should pad executable sections with nops, not zero
From: |
cvs-commit at gcc dot gnu.org |
Subject: |
[Bug ld/13616] linker should pad executable sections with nops, not zeros |
Date: |
Wed, 16 Oct 2019 12:42:19 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=13616
--- Comment #7 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot
gnu.org> ---
The master branch has been updated by Alan Modra <address@hidden>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=22216541c1796e9e1331d6f4e16b03a6f02e7381
commit 22216541c1796e9e1331d6f4e16b03a6f02e7381
Author: Alan Modra <address@hidden>
Date: Wed Oct 16 21:23:29 2019 +1030
PR13616, linker should pad executable sections with nops, not zeros
This implements padding of orphan executable sections for PowerPC.
Of course, the simple implementation of bfd_arch_ppc_nop_fill and
removing the NOP definition didn't work, with powerpc64 hitting a
testsuite failure linking to S-records. That's because the srec
target is BFD_ENDIAN_UNKNOWN so the test of bfd_big_endian (abfd) in
default_data_link_order therefore returned false, resulting in a
little-endian nop pattern. The rest of the patch fixes that problem
by adding a new field to bfd_link_info that can be used to determine
actual endianness on targets like srec.
PR 13616
include/
* bfdlink.h (struct bfd_link_info <big_endian>): New field.
bfd/
* cpu-powerpc.c (bfd_arch_ppc_nop_fill): New function, use it
for all ppc arch info.
* linker.c (default_data_link_order): Pass info->big_endian to
arch_info->fill function.
ld/
* emulparams/elf64lppc.sh (NOP): Don't define.
* emulparams/elf64ppc.sh (NOP): Don't define.
* ldwrite.c (build_link_order): Use link_info.big_endian. Move
code determining endian to use for data_statement to..
* ldemul.c (after_open_default): ..here. Set link_info.big_endian.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/13616] linker should pad executable sections with nops, not zeros,
cvs-commit at gcc dot gnu.org <=