41 lines
1.7 KiB
ArmAsm
41 lines
1.7 KiB
ArmAsm
# REQUIRES: x86
|
|
# RUN: rm -rf %t && split-file %s %t && cd %t
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64 randomdata.s -o randomdata.o
|
|
# RUN: ld.lld randomdata.o -o randomdata
|
|
# RUN: llvm-readelf -S -l randomdata | FileCheck %s --check-prefix=RANDOMDATA
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64 /dev/null -o wxneeded.o
|
|
# RUN: ld.lld -z wxneeded wxneeded.o -o wxneeded
|
|
# RUN: llvm-readelf -l wxneeded | FileCheck %s --check-prefix=WXNEEDED
|
|
|
|
# RUN: ld.lld -T lds randomdata.o -o out
|
|
# RUN: llvm-readelf -S -l out | FileCheck %s --check-prefixes=RANDOMDATA,CHECK
|
|
|
|
# RANDOMDATA: Name Type Address Off Size ES Flg Lk Inf Al
|
|
# RANDOMDATA: .openbsd.randomdata PROGBITS [[ADDR:[0-9a-f]+]] [[O:[0-9a-f]+]] 000008 00 A 0 0 1
|
|
|
|
# WXNEEDED: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
|
|
# WXNEEDED: OPENBSD_WXNEEDED 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 E 0
|
|
|
|
# RANDOMDATA: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
|
|
# RANDOMDATA: OPENBSD_RANDOMIZE 0x[[O]] 0x[[ADDR]] 0x[[ADDR]] 0x000008 0x000008 R 0x1
|
|
# CHECK-NEXT: OPENBSD_BOOTDATA 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 R 0
|
|
# CHECK-NEXT: OPENBSD_WXNEEDED 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 R 0
|
|
|
|
#--- randomdata.s
|
|
.section .openbsd.randomdata, "a"
|
|
.quad 0
|
|
|
|
#--- lds
|
|
PHDRS {
|
|
text PT_LOAD FILEHDR PHDRS;
|
|
rand PT_OPENBSD_RANDOMIZE;
|
|
boot PT_OPENBSD_BOOTDATA;
|
|
wxneeded PT_OPENBSD_WXNEEDED;
|
|
}
|
|
SECTIONS {
|
|
. = SIZEOF_HEADERS;
|
|
.text : { *(.text) }
|
|
.openbsd.randomdata : { *(.openbsd.randomdata) } : rand
|
|
}
|