80 lines · plain
1# REQUIRES: ppc2# RUN: rm -rf %t && split-file %s %t3# RUN: llvm-mc -filetype=obj -triple=powerpc64le %t/a.s -o %t/a.o4# RUN: llvm-mc -filetype=obj -triple=powerpc64le %p/Inputs/shared.s -o %t/b.o5# RUN: ld.lld -shared -soname=b %t/b.o -o %t/b.so6 7# RUN: ld.lld -z max-page-size=65536 -z norelro %t/a.o %t/b.so -T %t/1.t -o %t/a18# RN: llvm-readelf -S -l %t/a1 | FileCheck %s --check-prefixes=CHECK19 10# RUN: ld.lld -z max-page-size=65536 -z relro %t/a.o %t/b.so -T %t/1.t -o %t/a211# RUN: llvm-readelf -S -l %t/a2 | FileCheck %s --check-prefixes=CHECK212 13## -z norelro suppresses the .relro_padding section.14# CHECK1: Name Type Address Off Size ES Flg15# CHECK1: .foo PROGBITS16# CHECK1-NEXT: .orphan.rw PROGBITS17# CHECK1-NEXT: .branch_lt PROGBITS18# CHECK1-NEXT: .got PROGBITS19# CHECK1-NEXT: .data PROGBITS20# CHECK1-NEXT: .bss NOBITS21 22# CHECK2: Name Type Address Off Size ES Flg23# CHECK2-NEXT: NULL {{.*}}24# CHECK2: .orphan.ro PROGBITS {{.*}} A25# CHECK2: .dynamic DYNAMIC {{.*}} WA26# CHECK2-NEXT: .branch_lt PROGBITS {{.*}} WA27# CHECK2-NEXT: .got PROGBITS {{.*}} WA28# CHECK2-NEXT: .relro_padding NOBITS 00000000000100f0 0100f0 000f10 00 WA29# CHECK2-NEXT: .data PROGBITS {{.*}} WA30# CHECK2-NEXT: .foo PROGBITS {{.*}} WA31# CHECK2-NEXT: .orphan.rw PROGBITS {{.*}} WA32# CHECK2-NEXT: .bss NOBITS {{.*}} WA33 34#--- a.s35.global _start36_start:37 addis 3, 2, bar2@toc@ha38 ld 12, bar2@toc@l(3)39 mtctr 1240 bctrl41 b bar42 nop43 44.section .data,"aw"45.quad 046 47.zero 448.section .foo,"aw"49.section .bss,"",@nobits50 51.section .orphan.ro,"a",@progbits52.dc.a 053 54.section .orphan.rw,"aw",@progbits55.dc.a .orphan.rw56 57#--- 1.t58SECTIONS {59 . = SIZEOF_HEADERS;60 61 .plt : { *(.plt) }62 .text : { *(.text) }63 64 . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));65 66 .dynamic : { *(.dynamic) }67 .branch_lt : { *(.branch_lt) }68 .got : { *(.got) }69 70 . = DATA_SEGMENT_RELRO_END (0, .);71 72 .plt : { *(.plt) }73 .data : { *(.data) }74 .bss : { *(.bss) }75 76 . = DATA_SEGMENT_END (.);77 78 .comment 0 : { *(.comment) }79}80