Many tests specify -Ttext, -Tdata, or --section-start without SECTIONS commands. When the specified address is lower than the image base, * In the default --ro-segment case, there will be a read-only PT_LOAD segment covering ELF header/program headers, which may cover no section (as many tests omit .rodata). This appears unusual and has non-ascending p_vaddr. * In the --no-rosegment case, an `error: output file too large` occurs. We will add a diagnostic (#140187) and possibly change layout. Add --image-base to make these tests less sensitive.
27 lines
549 B
Plaintext
27 lines
549 B
Plaintext
REQUIRES: x86
|
|
|
|
## Check that we respect MEMORY commands in linker scripts without
|
|
## SECTIONS commands.
|
|
|
|
RUN: split-file %s %ts
|
|
RUN: llvm-mc -filetype=obj -triple=x86_64 %ts/asm.s -o %t.o
|
|
RUN: ld.lld -o %t --image-base=0 -T %ts/script %t.o
|
|
RUN: llvm-readelf -S %t | FileCheck %s
|
|
|
|
CHECK: .text PROGBITS 0000000000001000
|
|
CHECK: .data PROGBITS 0000000010000000
|
|
|
|
#--- script
|
|
|
|
MEMORY {
|
|
flash (rx!w): org = 0x1000, len = 0x3000
|
|
ram (rwx): org = 0x10000000, len = 0x1000
|
|
}
|
|
|
|
#--- asm.s
|
|
|
|
.text
|
|
.byte 1
|
|
.data
|
|
.byte 2
|