bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/18695] New: [x86-64] Missing relocation overflow check


From: hjl.tools at gmail dot com
Subject: [Bug gold/18695] New: [x86-64] Missing relocation overflow check
Date: Mon, 20 Jul 2015 14:56:10 +0000

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

            Bug ID: 18695
           Summary: [x86-64] Missing relocation overflow check
           Product: binutils
           Version: 2.26 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at gmail dot com
          Reporter: hjl.tools at gmail dot com
                CC: ian at airs dot com
  Target Milestone: ---

Bits<N>::has_overflow(x) in reloc.h isn't suitable for x86-64
relocation overflow check.  has_overflow_xxx in power.cc should
be used for relocation overflow check:

address@hidden gold-1]$ cat x.S
        .data
#if 1
        .space 0x8ff00000
#else
        .space 0x70000000
#endif
        .hidden foo
        .globl  foo
foo:
        .byte 20
local:
        .byte 20
        .text
        .globl  bar
        .type   bar, @function
bar:
        lea     foo(%rip), %rax
        lea     local(%rip), %rax
        .size   bar, .-bar
address@hidden gold-1]$ make LD=ld.bfd
gcc    -c -o x.o x.S
ld.bfd -z max-page-size=0x200000 -shared -o x.so x.o
x.o: In function `bar':
(.text+0x3): relocation truncated to fit: R_X86_64_PC32 against symbol `foo'
defined in .data section in x.o
x.o: In function `bar':
(.text+0xa): relocation truncated to fit: R_X86_64_PC32 against `.data'
Makefile:25: recipe for target 'x.so' failed
make: *** [x.so] Error 1
address@hidden gold-1]$ make
./ld -z max-page-size=0x200000 -shared -o x.so x.o
objdump -dw x.so

x.so:     file format elf64-x86-64


Disassembly of section .text:

00000000000001e0 <bar>:
 1e0:   48 8d 05 b9 00 10 90    lea    -0x6fefff47(%rip),%rax        #
ffffffff901002a0 <__bss_start+0xfffffffefffffffe>
 1e7:   48 8d 05 b3 00 10 90    lea    -0x6fefff4d(%rip),%rax        #
ffffffff901002a1 <__bss_start+0xfffffffeffffffff>
address@hidden gold-1]$

-- 
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]