## Test the p_align field of a program header can be set explicitly or inferred | |
## from the maximum alignment of contained sections. | |
## Explicit Align has priority over section alignments. | |
# RUN: yaml2obj --docnum=1 %s -o %t | |
# RUN: llvm-readobj -l %t | FileCheck %s | |
# CHECK: ProgramHeader { | |
# CHECK-NOT: ProgramHeader { | |
# CHECK: Alignment: 16 | |
# CHECK-NEXT: } | |
--- !ELF | |
FileHeader: | |
Class: ELFCLASS64 | |
Data: ELFDATA2LSB | |
Type: ET_EXEC | |
Sections: | |
- Name: .tdata | |
Type: SHT_PROGBITS | |
AddressAlign: 4 | |
- Name: .tbss | |
Type: SHT_NOBITS | |
AddressAlign: 64 | |
ProgramHeaders: | |
- Type: PT_TLS | |
Align: 16 | |
FirstSec: .tdata | |
LastSec: .tbss | |
## If Align is not specified, p_align is inferred from the maximum alignment | |
## of contained sections. | |
# RUN: yaml2obj --docnum=2 %s -o %t | |
# RUN: llvm-readobj -l %t | FileCheck %s | |
--- !ELF | |
FileHeader: | |
Class: ELFCLASS64 | |
Data: ELFDATA2LSB | |
Type: ET_EXEC | |
Sections: | |
- Name: .text | |
Type: SHT_PROGBITS | |
AddressAlign: 4 | |
- Name: .text.hot | |
Type: SHT_PROGBITS | |
AddressAlign: 16 | |
ProgramHeaders: | |
- Type: PT_LOAD | |
FirstSec: .text | |
LastSec: .text.hot |