brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · f95a154 Raw
56 lines · plain
1// REQUIRES: aarch642// RUN: rm -rf %t && split-file %s %t && cd %t3 4// RUN: llvm-mc -filetype=obj -triple=aarch64 start.s -o start.o5// RUN: llvm-mc -filetype=obj -triple=aarch64 xo.s -o xo.o6// RUN: llvm-mc -filetype=obj -triple=aarch64 rx.s -o rx.o7// RUN: ld.lld start.o xo.o -o xo8// RUN: ld.lld start.o rx.o -o rx-default9// RUN: ld.lld --xosegment start.o rx.o -o rx-xosegment10// RUN: ld.lld --no-xosegment start.o rx.o -o rx-no-xosegment11// RUN: llvm-readelf -l xo | FileCheck --check-prefix=CHECK-XO %s12// RUN: llvm-readelf -l rx-default | FileCheck --check-prefix=CHECK-MERGED %s13// RUN: llvm-readelf -l rx-xosegment | FileCheck --check-prefix=CHECK-SEPARATE %s14// RUN: llvm-readelf -l rx-no-xosegment | FileCheck --check-prefix=CHECK-MERGED %s15 16// CHECK-XO:      PHDR17// CHECK-XO-NEXT: LOAD18// CHECK-XO-NEXT: LOAD 0x000120 0x0000000000210120 0x0000000000210120 0x00000c 0x00000c   E 0x1000019/// Index should match the index of the LOAD segment above.20// CHECK-XO:      02   .text .foo21 22// CHECK-MERGED:      PHDR23// CHECK-MERGED-NEXT: LOAD24// CHECK-MERGED-NEXT: LOAD 0x000120 0x0000000000210120 0x0000000000210120 0x00000c 0x00000c R E 0x1000025/// Index should match the index of the LOAD segment above.26// CHECK-MERGED:      02   .text .foo27 28// CHECK-SEPARATE:      PHDR29// CHECK-SEPARATE-NEXT: LOAD30// CHECK-SEPARATE-NEXT: LOAD 0x000158 0x0000000000210158 0x0000000000210158 0x000008 0x000008   E 0x1000031// CHECK-SEPARATE-NEXT: LOAD 0x000160 0x0000000000220160 0x0000000000220160 0x000004 0x000004 R E 0x1000032/// Index should match the index of the LOAD segment above.33// CHECK-SEPARATE:      02   .text34// CHECK-SEPARATE:      03   .foo35 36//--- start.s37.section .text,"axy",@progbits,unique,038.global _start39_start:40  bl foo41  ret42 43//--- xo.s44.section .foo,"axy",@progbits,unique,045.global foo46foo:47  ret48 49//--- rx.s50/// Ensure that the implicitly-created .text section has the SHF_AARCH64_PURECODE flag.51.section .text,"axy",@progbits,unique,052.section .foo,"ax",@progbits,unique,053.global foo54foo:55  ret56