+++ /dev/null
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux /dev/null -o %t.o
-# RUN: ld.lld --script %s %t.o -o %t
-# RUN: llvm-readobj --program-headers -S %t | FileCheck %s
-
-PHDRS { boot PT_OPENBSD_BOOTDATA; }
-
-# CHECK: ProgramHeader {
-# CHECK: Type: PT_OPENBSD_BOOTDATA (0x65A41BE6)
+++ /dev/null
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o
-# RUN: echo "PHDRS { text PT_LOAD FILEHDR PHDRS; rand PT_OPENBSD_RANDOMIZE; } \
-# RUN: SECTIONS { . = SIZEOF_HEADERS; \
-# RUN: .text : { *(.text) } \
-# RUN: .openbsd.randomdata : { *(.openbsd.randomdata) } : rand }" > %t.script
-# RUN: ld.lld --script %t.script %t.o -o %t
-# RUN: llvm-readobj --program-headers -S %t | FileCheck %s
-
-# CHECK: ProgramHeader {
-# CHECK: Type: PT_OPENBSD_RANDOMIZE (0x65A3DBE6)
-# CHECK-NEXT: Offset: 0x74
-# CHECK-NEXT: VirtualAddress: 0x74
-# CHECK-NEXT: PhysicalAddress: 0x74
-# CHECK-NEXT: FileSize: 8
-# CHECK-NEXT: MemSize: 8
-# CHECK-NEXT: Flags [ (0x4)
-# CHECK-NEXT: PF_R (0x4)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 1
-# CHECK-NEXT: }
-
-.section .openbsd.randomdata, "a"
-.quad 0
+++ /dev/null
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux /dev/null -o %t.o
-# RUN: ld.lld -z wxneeded --script %s %t.o -o %t
-# RUN: llvm-readobj --program-headers %t | FileCheck %s
-
-PHDRS { text PT_LOAD FILEHDR PHDRS; wxneeded PT_OPENBSD_WXNEEDED; }
-
-# CHECK: ProgramHeader {
-# CHECK: Type: PT_OPENBSD_WXNEEDED (0x65A3DBE7)
-# CHECK-NEXT: Offset: 0x0
-# CHECK-NEXT: VirtualAddress: 0x0
-# CHECK-NEXT: PhysicalAddress: 0x0
-# CHECK-NEXT: FileSize: 0
-# CHECK-NEXT: MemSize: 0
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: PF_R
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 0
-# CHECK-NEXT: }
--- /dev/null
+# 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
+}
+++ /dev/null
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
-# RUN: ld.lld %t -o %t.out
-# RUN: llvm-readobj --program-headers %t.out | FileCheck %s
-
-# CHECK: ProgramHeader {
-# CHECK: Type: PT_OPENBSD_RANDOMIZE (0x65A3DBE6)
-# CHECK-NEXT: Offset:
-# CHECK-NEXT: VirtualAddress:
-# CHECK-NEXT: PhysicalAddress:
-# CHECK-NEXT: FileSize: 8
-# CHECK-NEXT: MemSize: 8
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: PF_R (0x4)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 1
-# CHECK-NEXT: }
-
-.section .openbsd.randomdata, "a"
-.quad 0
+++ /dev/null
-# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
-# RUN: ld.lld -z wxneeded %t -o %t.out
-# RUN: llvm-readobj --program-headers %t.out | FileCheck %s
-
-# CHECK: ProgramHeader {
-# CHECK: Type: PT_OPENBSD_WXNEEDED (0x65A3DBE7)
-# CHECK-NEXT: Offset: 0x0
-# CHECK-NEXT: VirtualAddress: 0x0
-# CHECK-NEXT: PhysicalAddress: 0x0
-# CHECK-NEXT: FileSize: 0
-# CHECK-NEXT: MemSize: 0
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: PF_X
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 0
-# CHECK-NEXT: }