85 lines · yaml
1## Test that ECSYMBOLS section is created when ARM64EC is used.2 3# RUN: yaml2obj %s -o %t.arm64ec.obj -DMACHINE=IMAGE_FILE_MACHINE_ARM64EC4# RUN: yaml2obj %s -o %t.arm64.obj -DMACHINE=IMAGE_FILE_MACHINE_ARM645# RUN: yaml2obj %s -o %t.amd64.obj -DMACHINE=IMAGE_FILE_MACHINE_AMD646 7## Create ARM64EC archive.8# RUN: rm -f %t*.a9# RUN: llvm-ar cr %t1.a %t.arm64ec.obj10# RUN: llvm-nm --print-armap %t1.a | FileCheck --check-prefixes=NOMAP,ECMAP %s11 12## Add ARM64 object to the archive.13# RUN: llvm-ar r %t1.a %t.arm64.obj14# RUN: llvm-nm --print-armap %t1.a | FileCheck --check-prefixes=MAP,ECMAP %s15 16## Create ARM64 archive.17# RUN: llvm-ar cr %t2.a %t.arm64.obj18# RUN: llvm-nm --print-armap %t2.a | FileCheck --check-prefixes=MAP,NOECMAP %s19 20## Add ARM64EC object to the archive.21# RUN: llvm-ar r %t2.a %t.arm64ec.obj22# RUN: llvm-nm --print-armap %t2.a | FileCheck --check-prefixes=MAP,ECMAP %s23 24## Create mixed archive with ARM64 and ARM64EC members.25# RUN: llvm-ar cr %t3.a %t.arm64ec.obj %t.arm64.obj26# RUN: llvm-nm --print-armap %t3.a | FileCheck --check-prefixes=MAP,ECMAP %s27 28## Create mixed archive with ARM64 and AMD64 members.29# RUN: llvm-ar cr %t4.a %t.amd64.obj %t.arm64.obj30# RUN: llvm-nm --print-armap %t4.a | FileCheck --check-prefixes=MAP,AMDECMAP %s31 32## Create an archive with no symbol table.33# RUN: llvm-ar crS %t5.a %t.amd64.obj %t.arm64.obj34# RUN: llvm-nm --print-armap %t5.a | FileCheck --check-prefixes=NOMAP,NOECMAP %s35 36# MAP: Archive map37# MAP-NEXT: a in ecsymbols.yaml.tmp.arm64.obj38# MAP-NEXT: b in ecsymbols.yaml.tmp.arm64.obj39# MAP-NEXT: c in ecsymbols.yaml.tmp.arm64.obj40# MAP-EMPTY:41# NOMAP-NOT: Archive map42 43# ECMAP: Archive EC map44# ECMAP-NEXT: a in ecsymbols.yaml.tmp.arm64ec.obj45# ECMAP-NEXT: b in ecsymbols.yaml.tmp.arm64ec.obj46# ECMAP-NEXT: c in ecsymbols.yaml.tmp.arm64ec.obj47# ECMAP-EMPTY:48# NOECMAP-NOT: Archive EC map49 50# AMDECMAP: Archive EC map51# AMDECMAP-NEXT: a in ecsymbols.yaml.tmp.amd64.obj52# AMDECMAP-NEXT: b in ecsymbols.yaml.tmp.amd64.obj53# AMDECMAP-NEXT: c in ecsymbols.yaml.tmp.amd64.obj54# AMDECMAP-EMPTY:55 56--- !COFF57header:58 Machine: [[MACHINE]]59 Characteristics: [ ]60sections:61 - Name: .text62 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]63 Alignment: 464 SectionData: ''65symbols:66 - Name: b67 Value: 068 SectionNumber: 169 SimpleType: IMAGE_SYM_TYPE_NULL70 ComplexType: IMAGE_SYM_DTYPE_FUNCTION71 StorageClass: IMAGE_SYM_CLASS_EXTERNAL72 - Name: c73 Value: 074 SectionNumber: 175 SimpleType: IMAGE_SYM_TYPE_NULL76 ComplexType: IMAGE_SYM_DTYPE_FUNCTION77 StorageClass: IMAGE_SYM_CLASS_EXTERNAL78 - Name: a79 Value: 080 SectionNumber: 181 SimpleType: IMAGE_SYM_TYPE_NULL82 ComplexType: IMAGE_SYM_DTYPE_FUNCTION83 StorageClass: IMAGE_SYM_CLASS_EXTERNAL84...85