getExportName implementation is based on lld-link. In its current form, it's mostly about convenience, but it will be more useful for EXPORTAS support, for which export name is not possible to deduce from other printed properties.
38 lines
1.1 KiB
ArmAsm
38 lines
1.1 KiB
ArmAsm
# REQUIRES: x86
|
|
# RUN: split-file %s %t
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-windows-msvc %t/dllmain.s -o %t/dllmain.obj
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-windows-msvc %t/path.s -o %t/path.obj
|
|
# RUN: lld-link -lib %t/dllmain.obj -out:%t/archive.lib
|
|
# RUN: echo -e "LIBRARY foo\nEXPORTS\n GetPathOnDisk" > %t.def
|
|
# RUN: lld-link -entry:dllmain -dll -def:%t.def %t/path.obj %t/archive.lib -out:%t/foo.dll -implib:%t/foo.lib
|
|
# RUN: llvm-readobj %t/foo.lib | FileCheck -check-prefix IMPLIB %s
|
|
# RUN: llvm-readobj --coff-exports %t/foo.dll | FileCheck -check-prefix EXPORTS %s
|
|
|
|
# IMPLIB: File: foo.dll
|
|
# IMPLIB: Name type: undecorate
|
|
# IMPLIB-NEXT: Export name: GetPathOnDisk
|
|
# IMPLIB-NEXT: Symbol: __imp_?GetPathOnDisk@@YA_NPEA_W@Z
|
|
# IMPLIB-NEXT: Symbol: ?GetPathOnDisk@@YA_NPEA_W@Z
|
|
|
|
# EXPORTS: Name: GetPathOnDisk
|
|
|
|
#--- path.s
|
|
|
|
.def "?GetPathOnDisk@@YA_NPEA_W@Z";
|
|
.scl 2;
|
|
.type 32;
|
|
.endef
|
|
.globl "?GetPathOnDisk@@YA_NPEA_W@Z"
|
|
"?GetPathOnDisk@@YA_NPEA_W@Z":
|
|
retq
|
|
|
|
#--- dllmain.s
|
|
|
|
.def dllmain;
|
|
.scl 2;
|
|
.type 32;
|
|
.endef
|
|
.globl dllmain
|
|
dllmain:
|
|
retq
|