[PATCH] D76995: [ELF] Propagate LMA offset to sections with neither AT() nor AT>
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 1 11:15:02 PDT 2020
MaskRay added a comment.
In D76995#1954314 <https://reviews.llvm.org/D76995#1954314>, @psmith wrote:
> LGTM thanks for the update. I think it would be good to fix the discrepancies between LLD and BFD in follow up patches if it is reasonable to do so.
Looks like our current behavior is close to GNU ld enough. Actually, GNU ld's behavior is different from the documentation
% cat a.s
SECTIONS {
. = 0x1000;
.a : { *(.a) }
.b : AT(0x2005) { *(.b) }
/* "If the section has a specific VMA address, then this is used as the LMA address as well." is not obeyed for .c */
.c 0x3006 : { *(.c) }
}
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x0000000000001000 0x0000000000001000 0x000002 0x000002 R E 0x1000
LOAD 0x001002 0x0000000000001002 0x0000000000002005 0x000001 0x000001 R 0x1000
LOAD 0x001006 0x0000000000003006 0x0000000000004009 0x000002 0x000002 R 0x1000
LOAD 0x001008 0x0000000000003008 0x0000000000004010 0x000001 0x000001 RW 0x1000
Section to Segment mapping:
Segment Sections...
00 .text .a
01 .b
02 .c .d
03 .data
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76995/new/
https://reviews.llvm.org/D76995
More information about the llvm-commits
mailing list