brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · f546a37 Raw
152 lines · plain
1## Check how we dump arch specific ELF section flags.2 3# RUN: yaml2obj --docnum 1 %s -o %t-hex.o4# RUN: llvm-readobj -S %t-hex.o | FileCheck --check-prefix=HEX-LLVM %s5# RUN: llvm-readelf -S %t-hex.o | FileCheck --check-prefix=HEX-GNU %s6 7# HEX-LLVM:      Flags [ (0x10000000)8# HEX-LLVM-NEXT:   SHF_HEX_GPREL (0x10000000)9# HEX-LLVM-NEXT: ]10 11# HEX-GNU: [Nr] Name Type     Address  Off    Size   ES Flg Lk Inf Al12# HEX-GNU: [ 1] .hex PROGBITS 00000000 000034 000000 00   p  0   0  013 14--- !ELF15FileHeader:16  Class:   ELFCLASS3217  Data:    ELFDATA2LSB18  Type:    ET_REL19  Machine: EM_HEXAGON20Sections:21  - Name:  .hex22    Type:  SHT_PROGBITS23    Flags: [ SHF_HEX_GPREL ]24 25# RUN: yaml2obj --docnum 2 %s -o %t-mips.o26# RUN: llvm-readobj -S %t-mips.o | FileCheck --check-prefix=MIPS-LLVM %s27# RUN: llvm-readelf -S %t-mips.o | FileCheck --check-prefix=MIPS-GNU %s28 29# MIPS-GNU: [Nr] Name  Type     Address  Off    Size   ES Flg Lk Inf Al30# MIPS-GNU: [ 1] .mips PROGBITS 00000000 000034 000000 00  op  0   0  031 32# MIPS-LLVM:      Flags [ (0xFF000000)33# MIPS-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)34# MIPS-LLVM-NEXT:   SHF_MIPS_ADDR (0x40000000)35# MIPS-LLVM-NEXT:   SHF_MIPS_GPREL (0x10000000)36# MIPS-LLVM-NEXT:   SHF_MIPS_LOCAL (0x4000000)37# MIPS-LLVM-NEXT:   SHF_MIPS_MERGE (0x20000000)38# MIPS-LLVM-NEXT:   SHF_MIPS_NAMES (0x2000000)39# MIPS-LLVM-NEXT:   SHF_MIPS_NODUPES (0x1000000)40# MIPS-LLVM-NEXT:   SHF_MIPS_NOSTRIP (0x8000000)41# MIPS-LLVM-NEXT:   SHF_MIPS_STRING (0x80000000)42# MIPS-LLVM-NEXT: ]43 44--- !ELF45FileHeader:46  Class:   ELFCLASS3247  Data:    ELFDATA2LSB48  Type:    ET_REL49  Machine: EM_MIPS50Sections:51  - Name:  .mips52    Type:  SHT_PROGBITS53    Flags: [ SHF_MIPS_NODUPES, SHF_MIPS_NAMES, SHF_MIPS_LOCAL, SHF_MIPS_NOSTRIP,54              SHF_MIPS_GPREL, SHF_MIPS_MERGE, SHF_MIPS_ADDR, SHF_MIPS_STRING ]55 56## Test what we print when a MIPS object has the SHF_MIPS_STRING flag.57## SHF_MIPS_STRING has a value of 0x80000000, which matches the value of SHF_EXCLUDE.58 59# RUN: yaml2obj --docnum 3 %s -o %t-mips-exclude.o60# RUN: llvm-readobj -S %t-mips-exclude.o | FileCheck --check-prefix=MIPS-EXCLUDE-LLVM %s61# RUN: llvm-readelf -S %t-mips-exclude.o | FileCheck --check-prefix=MIPS-EXCLUDE-GNU %s62 63# MIPS-EXCLUDE-LLVM:      Name: .mips64# MIPS-EXCLUDE-LLVM-NEXT: Type: SHT_PROGBITS65# MIPS-EXCLUDE-LLVM-NEXT: Flags [ (0x80000000)66# MIPS-EXCLUDE-LLVM-NEXT:  SHF_EXCLUDE (0x80000000)67# MIPS-EXCLUDE-LLVM-NEXT:  SHF_MIPS_STRING (0x80000000)68# MIPS-EXCLUDE-LLVM-NEXT: ]69 70# MIPS-EXCLUDE-GNU: [Nr] Name  Type     Address  Off    Size   ES Flg Lk Inf Al71# MIPS-EXCLUDE-GNU: [ 1] .mips PROGBITS 00000000 000034 000000 00   E  0   0  072 73--- !ELF74FileHeader:75  Class:   ELFCLASS3276  Data:    ELFDATA2LSB77  Type:    ET_REL78  Machine: EM_MIPS79Sections:80  - Name:  .mips81    Type:  SHT_PROGBITS82    Flags: [ SHF_MIPS_STRING ]83 84# RUN: yaml2obj --docnum 4 %s -o %t-x86_64.o85# RUN: llvm-readobj -S %t-x86_64.o | FileCheck --check-prefix=X86_64-LLVM %s86# RUN: llvm-readelf -S %t-x86_64.o | FileCheck --check-prefix=X86_64-GNU %s87 88# X86_64-LLVM:      Name: .x86_6489# X86_64-LLVM-NEXT: Type: SHT_PROGBITS90# X86_64-LLVM-NEXT: Flags [ (0x10000000)91# X86_64-LLVM-NEXT:   SHF_X86_64_LARGE (0x10000000)92# X86_64-LLVM-NEXT: ]93 94# X86_64-LLVM:      Name: .with.exclude95# X86_64-LLVM-NEXT: Type: SHT_PROGBITS96# X86_64-LLVM-NEXT: Flags [ (0x90000000)97# X86_64-LLVM-NEXT:   SHF_EXCLUDE (0x80000000)98# X86_64-LLVM-NEXT:   SHF_X86_64_LARGE (0x10000000)99# X86_64-LLVM-NEXT: ]100 101## GNU prints 'l' before 'E', despite otherwise printing upper-case letters first.102# X86_64-GNU: [Nr] Name          Type     Address          Off    Size   ES Flg Lk Inf Al103# X86_64-GNU: [ 1] .x86_64       PROGBITS 0000000000000000 000040 000000 00   l 0   0  0104# X86_64-GNU: [ 2] .with.exclude PROGBITS 0000000000000000 000040 000000 00  lE 0   0  0105 106--- !ELF107FileHeader:108  Class:   ELFCLASS64109  Data:    ELFDATA2LSB110  Type:    ET_REL111  Machine: EM_X86_64112Sections:113  - Name:  .x86_64114    Type:  SHT_PROGBITS115    Flags: [ SHF_X86_64_LARGE ]116  - Name:  .with.exclude117    Type:  SHT_PROGBITS118    Flags: [ SHF_X86_64_LARGE, SHF_EXCLUDE ]119 120# RUN: yaml2obj --docnum 5 -DARCH=ARM %s -o %t-arm.o121# RUN: llvm-readobj -S %t-arm.o | FileCheck --check-prefix=ARM-LLVM %s122# RUN: llvm-readelf -S %t-arm.o | FileCheck --check-prefix=ARM-GNU %s123 124# ARM-LLVM:      Flags [ (0x20000000)125# ARM-LLVM-NEXT:   SHF_ARM_PURECODE (0x20000000)126# ARM-LLVM-NEXT: ]127 128# ARM-GNU: [Nr] Name Type     Address          Off    Size   ES Flg Lk Inf Al129# ARM-GNU: [ 1] foo  PROGBITS 0000000000000000 000040 000000 00   y 0   0  0130 131# RUN: yaml2obj --docnum 5 -DARCH=AARCH64 %s -o %t-aarch64.o132# RUN: llvm-readobj -S %t-aarch64.o | FileCheck --check-prefix=AARCH64-LLVM %s133# RUN: llvm-readelf -S %t-aarch64.o | FileCheck --check-prefix=AARCH64-GNU %s134 135# AARCH64-LLVM:      Flags [ (0x20000000)136# AARCH64-LLVM-NEXT:   SHF_AARCH64_PURECODE (0x20000000)137# AARCH64-LLVM-NEXT: ]138 139# AARCH64-GNU: [Nr] Name Type     Address          Off    Size   ES Flg Lk Inf Al140# AARCH64-GNU: [ 1] foo  PROGBITS 0000000000000000 000040 000000 00   y 0   0  0141 142--- !ELF143FileHeader:144  Class:   ELFCLASS64145  Data:    ELFDATA2LSB146  Type:    ET_REL147  Machine: EM_[[ARCH]]148Sections:149  - Name:  foo150    Type:  SHT_PROGBITS151    Flags: [ SHF_[[ARCH]]_PURECODE ]152