# Test that cpu/processor-specific SHF_* flags are preserved. # ===== x86_64 ===== # RUN: yaml2obj --docnum=1 %s -o %t-x86_64.o # RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-x86_64.o # RUN: llvm-readobj --sections %t-x86_64.o | FileCheck %s --check-prefix=X86_64 --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .foo Type: SHT_PROGBITS Flags: [ SHF_X86_64_LARGE ] # X86_64: Name: .bar # X86_64-NEXT: Type: SHT_PROGBITS # X86_64-NEXT: Flags [ # X86_64-NEXT: SHF_ALLOC (0x2) # X86_64-NEXT: SHF_WRITE (0x1) # X86_64-NEXT: SHF_X86_64_LARGE (0x10000000) # X86_64-NEXT: ] # ===== hex ===== # RUN: yaml2obj --docnum=2 %s -o %t-hex.o # RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-hex.o # RUN: llvm-readobj --sections %t-hex.o | FileCheck %s --check-prefix=HEX --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_HEXAGON Sections: - Name: .foo Type: SHT_PROGBITS Flags: [ SHF_HEX_GPREL ] # HEX: Name: .bar # HEX-NEXT: Type: SHT_PROGBITS # HEX-NEXT: Flags [ # HEX-NEXT: SHF_ALLOC (0x2) # HEX-NEXT: SHF_HEX_GPREL (0x10000000) # HEX-NEXT: SHF_WRITE (0x1) # HEX-NEXT: ] # ===== mips ===== # RUN: yaml2obj --docnum=3 %s -o %t-mips.o # RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-mips.o # RUN: llvm-readobj --sections %t-mips.o | FileCheck %s --check-prefix=MIPS --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_MIPS Sections: - Name: .foo 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 ] # Note: llvm-readobj prints SHF_EXCLUDE/SHF_MASKPROC since specifying all # SHF_MIPS_* flags covers the same bitset. # MIPS: Name: .bar # MIPS-NEXT: Type: SHT_PROGBITS # MIPS-NEXT: Flags [ # MIPS-NEXT: SHF_ALLOC (0x2) # MIPS-NEXT: SHF_MIPS_ADDR (0x40000000) # MIPS-NEXT: SHF_MIPS_GPREL (0x10000000) # MIPS-NEXT: SHF_MIPS_LOCAL (0x4000000) # MIPS-NEXT: SHF_MIPS_MERGE (0x20000000) # MIPS-NEXT: SHF_MIPS_NAMES (0x2000000) # MIPS-NEXT: SHF_MIPS_NODUPES (0x1000000) # MIPS-NEXT: SHF_MIPS_NOSTRIP (0x8000000) # MIPS-NEXT: SHF_WRITE (0x1) # MIPS-NEXT: ] # ===== arm ===== # RUN: yaml2obj --docnum=4 %s -o %t-arm.o # RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t-arm.o # RUN: llvm-readobj --sections %t-arm.o | FileCheck %s --check-prefix=ARM --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_ARM Sections: - Name: .foo Type: SHT_PROGBITS Flags: [ SHF_ARM_PURECODE ] # ARM: Name: .bar # ARM-NEXT: Type: SHT_PROGBITS # ARM-NEXT: Flags [ # ARM-NEXT: SHF_ALLOC (0x2) # ARM-NEXT: SHF_ARM_PURECODE (0x20000000) # ARM-NEXT: SHF_WRITE (0x1) # ARM-NEXT: ]