brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · dc1b490 Raw
137 lines · plain
1# REQUIRES: x862# RUN: rm -rf %t && split-file %s %t && cd %t3# RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o4 5## .jcr is a relro section and should be placed before other RW sections.6## .bss is SHT_NOBITS section and should be last RW section, so some space7## in ELF file could be saved.8# RUN: ld.lld a.o -T text-rw.lds -o text-rw9# RUN: llvm-readelf -S text-rw | FileCheck %s --check-prefix=TEXT-RW10# TEXT-RW:      .interp   PROGBITS 00000000000002{{..}} 011# TEXT-RW-NEXT: .note.my  NOTE     00000000000002{{..}} 012# TEXT-RW-NEXT: .text     PROGBITS 00000000000002{{..}} 013# TEXT-RW-NEXT: .mytext   PROGBITS 00000000000002{{..}} 014# TEXT-RW-NEXT: .jcr      PROGBITS 00000000000002{{..}} 015# TEXT-RW-NEXT: .rw1      PROGBITS 0000000000001{{...}} 016# TEXT-RW-NEXT: .rw2      PROGBITS 0000000000001{{...}} 017# TEXT-RW-NEXT: .rw3      PROGBITS 0000000000001{{...}} 018# TEXT-RW-NEXT: .bss      NOBITS   0000000000001{{...}} 019 20# RUN: ld.lld a.o -T only-text.lds -o only-text21# RUN: llvm-readelf -S only-text | FileCheck %s --check-prefix=ONLY-TEXT22# ONLY-TEXT:      .interp   PROGBITS 00000000000002{{..}} 023# ONLY-TEXT-NEXT: .note.my  NOTE     00000000000002{{..}} 024# ONLY-TEXT-NEXT: .text     PROGBITS 00000000000002{{..}} 025# ONLY-TEXT-NEXT: .mytext   PROGBITS 00000000000002{{..}} 026# ONLY-TEXT-NEXT: .jcr      PROGBITS 00000000000002{{..}} 027# ONLY-TEXT-NEXT: .rw1      PROGBITS 00000000000002{{..}} 028# ONLY-TEXT-NEXT: .rw2      PROGBITS 00000000000002{{..}} 029# ONLY-TEXT-NEXT: .rw3      PROGBITS 00000000000002{{..}} 030# ONLY-TEXT-NEXT: .bss      NOBITS   00000000000002{{..}} 031 32# RUN: ld.lld a.o -T text-align.lds -o text-align33# RUN: llvm-readelf -S text-align | FileCheck %s --check-prefix=TEXT-ALIGN34# TEXT-ALIGN:      .interp   PROGBITS 00000000000002{{..}} 035# TEXT-ALIGN-NEXT: .note.my  NOTE     00000000000002{{..}} 036# TEXT-ALIGN-NEXT: .text     PROGBITS 00000000000002{{..}} 037# TEXT-ALIGN-NEXT: .mytext   PROGBITS 0000000000001000     038# TEXT-ALIGN-NEXT: .jcr      PROGBITS 0000000000001{{...}} 039# TEXT-ALIGN-NEXT: .rw1      PROGBITS 0000000000001{{...}} 040# TEXT-ALIGN-NEXT: .rw2      PROGBITS 0000000000001{{...}} 041# TEXT-ALIGN-NEXT: .rw3      PROGBITS 0000000000001{{...}} 042# TEXT-ALIGN-NEXT: .bss      NOBITS   0000000000001{{...}} 043 44# RUN: ld.lld a.o -T only-rw.lds -o only-rw45# RUN: llvm-readelf -S only-rw | FileCheck %s --check-prefix=ONLY-RW46# ONLY-RW:         .interp   PROGBITS 00000000000002{{..}} 047# ONLY-RW-NEXT:    .note.my  NOTE     00000000000002{{..}} 048# ONLY-RW-NEXT:    .text     PROGBITS 00000000000002{{..}} 049# ONLY-RW-NEXT:    .mytext   PROGBITS 00000000000002{{..}} 050# ONLY-RW-NEXT:    .jcr      PROGBITS 00000000000002{{..}} 051# ONLY-RW-NEXT:    .rw1      PROGBITS 00000000000002{{..}} 052# ONLY-RW-NEXT:    .rw2      PROGBITS 0000000000001{{...}} 053# ONLY-RW-NEXT:    .rw3      PROGBITS 0000000000001{{...}} 054# ONLY-RW-NEXT:    .bss      NOBITS   0000000000001{{...}} 055 56# RUN: ld.lld a.o -T rw-text.lds -o rw-text57# RUN: llvm-readelf -S rw-text | FileCheck %s --check-prefix=RW-TEXT58# RW-TEXT:      .jcr      PROGBITS 00000000000002{{..}} 059# RW-TEXT-NEXT: .rw1      PROGBITS 00000000000002{{..}} 060# RW-TEXT-NEXT: .rw2      PROGBITS 00000000000002{{..}} 061# RW-TEXT-NEXT: .rw3      PROGBITS 00000000000002{{..}} 062# RW-TEXT-NEXT: .bss      NOBITS   00000000000002{{..}} 063# RW-TEXT-NEXT: .interp   PROGBITS 00000000000002{{..}} 064# RW-TEXT-NEXT: .note.my  NOTE     00000000000002{{..}} 065# RW-TEXT-NEXT: .text     PROGBITS 0000000000001{{...}} 066# RW-TEXT-NEXT: .mytext   PROGBITS 0000000000001{{...}} 067 68# RUN: ld.lld a.o -T rw-text-rw.lds -o rw-text-rw69# RUN: llvm-readelf -S rw-text-rw | FileCheck %s --check-prefix=RW-TEXT-RW70# RW-TEXT-RW:      .jcr      PROGBITS 00000000000002{{..}} 071# RW-TEXT-RW-NEXT: .rw1      PROGBITS 00000000000002{{..}} 072# RW-TEXT-RW-NEXT: .interp   PROGBITS 00000000000002{{..}} 073# RW-TEXT-RW-NEXT: .note.my  NOTE     00000000000002{{..}} 074# RW-TEXT-RW-NEXT: .text     PROGBITS 0000000000001{{...}} 075# RW-TEXT-RW-NEXT: .mytext   PROGBITS 0000000000001{{...}} 076# RW-TEXT-RW-NEXT: .rw2      PROGBITS 0000000000002{{...}} 077# RW-TEXT-RW-NEXT: .rw3      PROGBITS 0000000000002{{...}} 078# RW-TEXT-RW-NEXT: .bss      NOBITS   0000000000002{{...}} 079 80#--- a.s81.section .rw1, "aw"; .byte 082.section .rw2, "aw"; .byte 083.section .rw3, "aw"; .byte 084.section .jcr, "aw"; .byte 085.section .bss, "aw",@nobits; .byte 086.section .note.my, "a", @note; .byte 087.section .interp, "a", @progbits; .byte 088.text; nop89.section .mytext,"ax"; nop90 91#--- text-rw.lds92SECTIONS {93  . = SIZEOF_HEADERS;94  .text : { *(.text) }95  . = ALIGN(CONSTANT(MAXPAGESIZE));96  .rw1 : { *(.rw1) }97  .rw2 : { *(.rw2) }98}99 100#--- only-text.lds101SECTIONS {102  . = SIZEOF_HEADERS;103  .text : { *(.text) }104}105 106#--- text-align.lds107SECTIONS {108  . = SIZEOF_HEADERS;109  .text : { *(.text) }110  . = ALIGN(CONSTANT(MAXPAGESIZE));111}112 113#--- only-rw.lds114SECTIONS {115  . = SIZEOF_HEADERS;116  .rw1 : { *(.rw1) }117  . = ALIGN(CONSTANT(MAXPAGESIZE));118}119 120#--- rw-text.lds121SECTIONS {122  . = SIZEOF_HEADERS;123  .rw1 : { *(.rw1) }124  . = ALIGN(CONSTANT(MAXPAGESIZE));125  .text : { *(.text) }126}127 128#--- rw-text-rw.lds129SECTIONS {130  . = SIZEOF_HEADERS;131  .rw1 : { *(.rw1) }132  . = ALIGN(CONSTANT(MAXPAGESIZE));133  .text : { *(.text) }134  . = ALIGN(CONSTANT(MAXPAGESIZE));135  .rw2 : { *(.rw2) }136}137