https://sourceware.org/bugzilla/show_bug.cgi?id=19567

--- Comment #12 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Cary Coutant <ccout...@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=19ef3f4d2eaac10e98c7ba3f9eace8609ab5278e

commit 19ef3f4d2eaac10e98c7ba3f9eace8609ab5278e
Author: Cary Coutant <ccout...@gmail.com>
Date:   Sat Feb 6 14:47:05 2016 -0800

    Fix overflow checking for 32-bit pc-relative relocations on x32.

    The problem here is that x32 is really using 64-bit addressing,
    while pretending to be 32-bit. Even though the object file format
    is 32-bit, we need to do the overflow checking with 64-bit
    arithmetic (because that's what the hardware will be using).
    This patch overrides the pcrela32_check functions in reloc.h
    with target-specific versions that do 64-bit checking.

    I've also updated the test case to use -Tdata instead of adding
    a huge .space directive, to reduce the size of the .o files.

    gold/
        PR gold/19567
        * reloc.h (Relocate_functions::Overflow_check): Add comments.
        * x86_64.cc (X86_64_relocate_functions): New class.
        (Target_x86_64::Relocate::relocate): Use the new class.
        * testsuite/Makefile.am (x86_64_overflow_pc32): Add -Tdata option.
        (x32_overflow_pc32): New test case.
        * testsuite/Makefile.in: Regenerate.
        * testsuite/x32_overflow_pc32.sh: New script.
        * testsuite/x86_64_overflow_pc32.s: Remove .space directive.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to