Compiler projects using llvm
# Here we use yaml from ihex-elf-sections.yaml, but add single load
# segment containing all exported sections. In such case we should 
# use physical address of a section intead of virtual address. Physical
# addresses start from 0x100000, so we create two additional 'ExtenededAddr'
# (03) record in the beginning of IHex file with that physical address
!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_EXEC
  Machine:         EM_X86_64
  Entry:           0x100000
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x0
    AddressAlign:    0x8
    Content:         "000102030405060708090A0B0C0D0E0F1011121314"
  - Name:            .data1
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC ]
    Content:         "3031323334353637383940"
    Address:         0xFFF8
    AddressAlign:    0x8
  - Name:            .data2
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC ]
    Content:         "40414243"
    Address:         0x10100
    AddressAlign:    0x8
  - Name:            .data3
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC ]
    Content:         "5051525354555657585960"
    Address:         0x10FFF8
    AddressAlign:    0x8
  - Name:            .bss
    Type:            SHT_NOBITS
    Flags:           [ SHF_ALLOC ]
    Address:         0x10100
    Size:            0x1000
    AddressAlign:    0x8
  - Name:            .dummy
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC ]
    Address:         0x20FFF8
    Size:            3
    AddressAlign:    0x8
  - Name:            .nonalloc
    Type:            SHT_PROGBITS
    Flags:           [ ]
    Address:         0x300000
    Size:            1
ProgramHeaders:
  - Type:     PT_LOAD
    Flags:    [ PF_X, PF_R ]
    VAddr:    0xF00000000
    PAddr:    0x100000
    FirstSec: .text
    LastSec:  .bss