This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gold commit] PR gold/19567: Fix overflow checking for 32-bit pc-relative relocations on x32

[patch now attached...]

On Sat, Feb 6, 2016 at 2:49 PM, Cary Coutant <> wrote:
> One of the problems in PR 19567 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.
> -cary
> 2016-02-06  Cary Coutant  <>
> gold/
>         PR gold/19567
>         * reloc.h (Relocate_functions::Overflow_check): Add comments.
>         * (X86_64_relocate_functions): New class.
>         (Target_x86_64::Relocate::relocate): Use the new class.
>         * testsuite/ (x86_64_overflow_pc32): Add -Tdata option.
>         (x32_overflow_pc32): New test case.
>         * testsuite/ Regenerate.
>         * testsuite/ New script.
>         * testsuite/x86_64_overflow_pc32.s: Remove .space directive.

Attachment: pr19567-1.patch
Description: Binary data

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]