| ## Check how we dump arch specific ELF section flags. |
| |
| # RUN: yaml2obj --docnum 1 %s -o %t-hex.o |
| # RUN: llvm-readobj -S %t-hex.o | FileCheck --check-prefix=HEX-LLVM %s |
| # RUN: llvm-readelf -S %t-hex.o | FileCheck --check-prefix=HEX-GNU %s |
| |
| # HEX-LLVM: Flags [ (0x10000000) |
| # HEX-LLVM-NEXT: SHF_HEX_GPREL (0x10000000) |
| # HEX-LLVM-NEXT: ] |
| |
| # HEX-GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al |
| # HEX-GNU: [ 1] .hex PROGBITS 00000000 000034 000000 00 p 0 0 0 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_HEXAGON |
| Sections: |
| - Name: .hex |
| Type: SHT_PROGBITS |
| Flags: [ SHF_HEX_GPREL ] |
| |
| # RUN: yaml2obj --docnum 2 %s -o %t-mips.o |
| # RUN: llvm-readobj -S %t-mips.o | FileCheck --check-prefix=MIPS-LLVM %s |
| # RUN: llvm-readelf -S %t-mips.o | FileCheck --check-prefix=MIPS-GNU %s |
| |
| # MIPS-GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al |
| # MIPS-GNU: [ 1] .mips PROGBITS 00000000 000034 000000 00 op 0 0 0 |
| |
| # MIPS-LLVM: Flags [ (0xFF000000) |
| # MIPS-LLVM-NEXT: SHF_EXCLUDE (0x80000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_ADDR (0x40000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_GPREL (0x10000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_LOCAL (0x4000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_MERGE (0x20000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_NAMES (0x2000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_NODUPES (0x1000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_NOSTRIP (0x8000000) |
| # MIPS-LLVM-NEXT: SHF_MIPS_STRING (0x80000000) |
| # MIPS-LLVM-NEXT: ] |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_MIPS |
| Sections: |
| - Name: .mips |
| Type: SHT_PROGBITS |
| Flags: [ SHF_MIPS_NODUPES, SHF_MIPS_NAMES, SHF_MIPS_LOCAL, SHF_MIPS_NOSTRIP, |
| SHF_MIPS_GPREL, SHF_MIPS_MERGE, SHF_MIPS_ADDR, SHF_MIPS_STRING ] |
| |
| ## Test what we print when a MIPS object has the SHF_MIPS_STRING flag. |
| ## SHF_MIPS_STRING has a value of 0x80000000, which matches the value of SHF_EXCLUDE. |
| |
| # RUN: yaml2obj --docnum 3 %s -o %t-mips-exclude.o |
| # RUN: llvm-readobj -S %t-mips-exclude.o | FileCheck --check-prefix=MIPS-EXCLUDE-LLVM %s |
| # RUN: llvm-readelf -S %t-mips-exclude.o | FileCheck --check-prefix=MIPS-EXCLUDE-GNU %s |
| |
| # MIPS-EXCLUDE-LLVM: Name: .mips |
| # MIPS-EXCLUDE-LLVM-NEXT: Type: SHT_PROGBITS |
| # MIPS-EXCLUDE-LLVM-NEXT: Flags [ (0x80000000) |
| # MIPS-EXCLUDE-LLVM-NEXT: SHF_EXCLUDE (0x80000000) |
| # MIPS-EXCLUDE-LLVM-NEXT: SHF_MIPS_STRING (0x80000000) |
| # MIPS-EXCLUDE-LLVM-NEXT: ] |
| |
| # MIPS-EXCLUDE-GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al |
| # MIPS-EXCLUDE-GNU: [ 1] .mips PROGBITS 00000000 000034 000000 00 E 0 0 0 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_MIPS |
| Sections: |
| - Name: .mips |
| Type: SHT_PROGBITS |
| Flags: [ SHF_MIPS_STRING ] |
| |
| # RUN: yaml2obj --docnum 4 %s -o %t-x86_64.o |
| # RUN: llvm-readobj -S %t-x86_64.o | FileCheck --check-prefix=X86_64-LLVM %s |
| # RUN: llvm-readelf -S %t-x86_64.o | FileCheck --check-prefix=X86_64-GNU %s |
| |
| # X86_64-LLVM: Name: .x86_64 |
| # X86_64-LLVM-NEXT: Type: SHT_PROGBITS |
| # X86_64-LLVM-NEXT: Flags [ (0x10000000) |
| # X86_64-LLVM-NEXT: SHF_X86_64_LARGE (0x10000000) |
| # X86_64-LLVM-NEXT: ] |
| |
| # X86_64-LLVM: Name: .with.exclude |
| # X86_64-LLVM-NEXT: Type: SHT_PROGBITS |
| # X86_64-LLVM-NEXT: Flags [ (0x90000000) |
| # X86_64-LLVM-NEXT: SHF_EXCLUDE (0x80000000) |
| # X86_64-LLVM-NEXT: SHF_X86_64_LARGE (0x10000000) |
| # X86_64-LLVM-NEXT: ] |
| |
| ## GNU prints 'l' before 'E', despite otherwise printing upper-case letters first. |
| # X86_64-GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al |
| # X86_64-GNU: [ 1] .x86_64 PROGBITS 0000000000000000 000040 000000 00 l 0 0 0 |
| # X86_64-GNU: [ 2] .with.exclude PROGBITS 0000000000000000 000040 000000 00 lE 0 0 0 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .x86_64 |
| Type: SHT_PROGBITS |
| Flags: [ SHF_X86_64_LARGE ] |
| - Name: .with.exclude |
| Type: SHT_PROGBITS |
| Flags: [ SHF_X86_64_LARGE, SHF_EXCLUDE ] |
| |
| # RUN: yaml2obj --docnum 5 %s -o %t-arm.o |
| # RUN: llvm-readobj -S %t-arm.o | FileCheck --check-prefix=ARM-LLVM %s |
| # RUN: llvm-readelf -S %t-arm.o | FileCheck --check-prefix=ARM-GNU %s |
| |
| # ARM-LLVM: Flags [ (0x20000000) |
| # ARM-LLVM-NEXT: SHF_ARM_PURECODE (0x20000000) |
| # ARM-LLVM-NEXT: ] |
| |
| # ARM-GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al |
| # ARM-GNU: [ 1] foo PROGBITS 0000000000000000 000040 000000 00 y 0 0 0 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_ARM |
| Sections: |
| - Name: foo |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ARM_PURECODE ] |