bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/18692] New: AArch64: ld --emit-relocs corrupts section relative


From: ard.biesheuvel at linaro dot org
Subject: [Bug ld/18692] New: AArch64: ld --emit-relocs corrupts section relative relocations
Date: Sun, 19 Jul 2015 15:39:49 +0000

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

            Bug ID: 18692
           Summary: AArch64: ld --emit-relocs corrupts section relative
                    relocations
           Product: binutils
           Version: 2.24
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: ard.biesheuvel at linaro dot org
  Target Milestone: ---

When merging ELF sections together, section relative relocations emitted using
--emit-relocs do not have their addends recalculated, leading to corrupt
relocation data.

For instance, after assembling the following code:

        .text
        .skip   0x20
        .quad   sym1
        .section ".rodata"
sym1:
        .skip   0x38
        .word   0x0

using "aarch64-linux-gnu-as -o /tmp/rela.o /tmp/rela.s", the resulting
rela.text section contains:

Relocation section '.rela.text' at offset 0x3f0 contains 1 entries:
  Offset          Info           Type           Sym. Value    Sym. Name +
Addend
000000000020  000600000101 R_AARCH64_ABS64   0000000000000000 .rodata + 38


However, after linking it using the following script:

SECTIONS {
        .text : { *(.text .rodata) }
}

using "aarch64-linux-gnu-ld -e 0x0 -o /tmp/rela /tmp/rela.o --emit-relocs -T
/tmp/rela.lds", the resulting rela.text section contains the following
relocation:

Relocation section '.rela.text' at offset 0x10298 contains 1 entries:
  Offset          Info           Type           Sym. Value    Sym. Name +
Addend
000000000020  000100000101 R_AARCH64_ABS64   0000000000000000 .text + 38

Here, the RELA addend is unchanged, even though the original .rodata is placed
0x28 bytes into .text.

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