## Check we are able to produce a valid SHT_GNU_versym ## section from its description. # RUN: yaml2obj --docnum=1 %s -o %t1 # RUN: llvm-readobj -V %t1 | FileCheck %s # CHECK: VersionSymbols [ # CHECK-NEXT: Symbol { # CHECK-NEXT: Version: 0 # CHECK-NEXT: Name: # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Version: 3 # CHECK-NEXT: Name: f1@v1 # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Version: 4 # CHECK-NEXT: Name: f2@v2 # CHECK-NEXT: } # CHECK-NEXT: ] # CHECK-NEXT: VersionDefinitions [ # CHECK-NEXT: ] # CHECK-NEXT: VersionRequirements [ # CHECK-NEXT: Dependency { # CHECK-NEXT: Version: 1 # CHECK-NEXT: Count: 2 # CHECK-NEXT: FileName: dso.so.0 # CHECK-NEXT: Entries [ # CHECK-NEXT: Entry { # CHECK-NEXT: Hash: 1937 # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Index: 3 # CHECK-NEXT: Name: v1 # CHECK-NEXT: } # CHECK-NEXT: Entry { # CHECK-NEXT: Hash: 1938 # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Index: 4 # CHECK-NEXT: Name: v2 # CHECK-NEXT: } # CHECK-NEXT: ] # CHECK-NEXT: } # CHECK-NEXT: ] --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 Entry: 0x0000000000201000 Sections: - Name: .gnu.version Type: SHT_GNU_versym Flags: [ SHF_ALLOC ] Address: 0x0000000000200210 Link: .dynsym AddressAlign: 0x0000000000000002 EntSize: 0x0000000000000002 Entries: [ 0, 3, 4 ] - Name: .gnu.version_r Type: SHT_GNU_verneed Flags: [ SHF_ALLOC ] Address: 0x0000000000200250 Link: .dynstr AddressAlign: 0x0000000000000004 Info: 0x0000000000000001 Dependencies: - Version: 1 File: dso.so.0 Entries: - Name: v1 Hash: 1937 Flags: 0 Other: 3 - Name: v2 Hash: 1938 Flags: 0 Other: 4 DynamicSymbols: - Name: f1 Binding: STB_GLOBAL - Name: f2 Binding: STB_GLOBAL ... ## Check we are able to set custom sh_entsize field for SHT_GNU_versym section. # RUN: yaml2obj --docnum=2 %s -o %t2 # RUN: llvm-readelf -S %t2 | FileCheck %s --check-prefix=ENTSIZE # ENTSIZE: Section Headers: # ENTSIZE: [Nr] Name Type Address Off Size ES # ENTSIZE: [ 1] .gnu.version VERSYM 0000000000000000 000040 000000 03 --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB OSABI: ELFOSABI_FREEBSD Type: ET_DYN Machine: EM_X86_64 Sections: - Name: .gnu.version Type: SHT_GNU_versym EntSize: 0x0000000000000003 Entries: [ ]