47 lines · plain
1// REQUIRES: x862 3// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-openbsd %s -o %t.o4// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-openbsd %p/Inputs/shared.s -o %t2.o5// RUN: ld.lld -shared %t2.o -o %t2.so6 7// RUN: ld.lld %t.o %t2.so -z now -z norelro -z relro -o %t8// RUN: llvm-readelf -l %t | FileCheck --check-prefix=CHECK --check-prefix=FULLRELRO %s9 10// RUN: ld.lld %t.o %t2.so -z norelro -z relro -o %t11// RUN: llvm-readelf -l %t | FileCheck --check-prefix=CHECK --check-prefix=PARTRELRO %s12 13// RUN: ld.lld %t.o %t2.so -z norelro -o %t14// RUN: llvm-readelf -l %t | FileCheck --check-prefix=NORELRO %s15 16// CHECK: Program Headers:17// CHECK-NEXT: Type18// CHECK-NEXT: PHDR19// CHECK-NEXT: LOAD20// CHECK-NEXT: LOAD21// CHECK-NEXT: LOAD22// CHECK-NEXT: LOAD23// CHECK-NEXT: DYNAMIC24// CHECK-NEXT: GNU_RELRO25// CHECK: Section to Segment mapping:26 27// FULLRELRO: 03 .openbsd.randomdata .dynamic .got .got.plt .relro_padding {{$}}28// PARTRELRO: 03 .openbsd.randomdata .dynamic .got .relro_padding {{$}}29 30 31// NORELRO-NOT: GNU_RELRO32 33.global _start34_start:35 .long bar36 jmp *bar2@GOTPCREL(%rip)37 38.section .data,"aw"39.quad 040 41.zero 442.section .foo,"aw"43.section .bss,"",@nobits44 45.section .openbsd.randomdata, "aw"46.quad 047