bug-binutils
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]