# REQUIRES: aarch64
# RUN: yaml2obj %s -o %t.obj
# RUN: lld-link /out:%t.dll /dll %t.obj /export:exportfn1 /export:exportfn2 /implib:%t.lib
# RUN: llvm-objdump -p %t.dll | FileCheck %s
# RUN: llvm-objdump -r %t.lib | FileCheck %s --check-prefix=RELOCS
# CHECK: Export Table:
# CHECK: DLL name: export-arm64.yaml.tmp.dll
# CHECK: Ordinal RVA Name
# CHECK-NEXT: 1 0x1008 exportfn1
# CHECK-NEXT: 2 0x1010 exportfn2
# CHECK-NEXT: 3 0x1018 exportfn3
# RELOCS: IMAGE_REL_ARM64_ADDR32NB .idata$6
# RELOCS: IMAGE_REL_ARM64_ADDR32NB .idata$4
# RELOCS: IMAGE_REL_ARM64_ADDR32NB .idata$5
--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_ARM64
Characteristics: []
sections:
- Name: .text
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_PURGEABLE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
Alignment: 4
SectionData: e0031f2ac0035fd6e0031f2ac0035fd6e0031f2ac0035fd6e0031f2ac0035fd6
- Name: .drectve
Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
Alignment: 1
SectionData: 2f6578706f72743a6578706f7274666e3300 # /export:exportfn3
symbols:
- Name: .text
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_STATIC
SectionDefinition:
Length: 32
NumberOfRelocations: 0
NumberOfLinenumbers: 0
CheckSum: 0
Number: 1
- Name: _DllMainCRTStartup
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
- Name: exportfn1
Value: 8
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
- Name: exportfn2
Value: 16
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
- Name: exportfn3
Value: 24
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
...