You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.1 KiB
113 lines
3.1 KiB
4 months ago
|
# 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: ]
|