| Test EXPORTAS in importlibs. |
| |
| RUN: split-file %s %t.dir && cd %t.dir |
| RUN: llvm-lib -machine:amd64 -def:test.def -out:test.lib |
| |
| RUN: llvm-nm --print-armap test.lib | FileCheck --check-prefix=ARMAP %s |
| |
| ARMAP: Archive map |
| ARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll |
| ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll |
| ARMAP-NEXT: __imp_func in test.dll |
| ARMAP-NEXT: __imp_func2 in test.dll |
| ARMAP-NEXT: __imp_func3 in test.dll |
| ARMAP-NEXT: __imp_mydata in test.dll |
| ARMAP-NEXT: func in test.dll |
| ARMAP-NEXT: func2 in test.dll |
| ARMAP-NEXT: func3 in test.dll |
| ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll |
| |
| RUN: llvm-readobj test.lib | FileCheck --check-prefix=READOBJ %s |
| |
| READOBJ: File: test.lib(test.dll) |
| READOBJ-NEXT: Format: COFF-x86-64 |
| READOBJ-NEXT: Arch: x86_64 |
| READOBJ-NEXT: AddressSize: 64bit |
| READOBJ-EMPTY: |
| READOBJ-NEXT: File: test.lib(test.dll) |
| READOBJ-NEXT: Format: COFF-x86-64 |
| READOBJ-NEXT: Arch: x86_64 |
| READOBJ-NEXT: AddressSize: 64bit |
| READOBJ-EMPTY: |
| READOBJ-NEXT: File: test.lib(test.dll) |
| READOBJ-NEXT: Format: COFF-x86-64 |
| READOBJ-NEXT: Arch: x86_64 |
| READOBJ-NEXT: AddressSize: 64bit |
| READOBJ-EMPTY: |
| READOBJ-NEXT: File: test.dll |
| READOBJ-NEXT: Format: COFF-import-file-x86-64 |
| READOBJ-NEXT: Type: code |
| READOBJ-NEXT: Name type: export as |
| READOBJ-NEXT: Export name: expfunc |
| READOBJ-NEXT: Symbol: __imp_func |
| READOBJ-NEXT: Symbol: func |
| READOBJ-EMPTY: |
| READOBJ-NEXT: File: test.dll |
| READOBJ-NEXT: Format: COFF-import-file-x86-64 |
| READOBJ-NEXT: Type: data |
| READOBJ-NEXT: Name type: export as |
| READOBJ-NEXT: Export name: expdata |
| READOBJ-NEXT: Symbol: __imp_mydata |
| READOBJ-EMPTY: |
| READOBJ-NEXT: File: test.dll |
| READOBJ-NEXT: Format: COFF-import-file-x86-64 |
| READOBJ-NEXT: Type: code |
| READOBJ-NEXT: Name type: export as |
| READOBJ-NEXT: Export name: expfunc2 |
| READOBJ-NEXT: Symbol: __imp_func2 |
| READOBJ-NEXT: Symbol: func2 |
| READOBJ-EMPTY: |
| READOBJ-NEXT: File: test.dll |
| READOBJ-NEXT: Format: COFF-import-file-x86-64 |
| READOBJ-NEXT: Type: code |
| READOBJ-NEXT: Name type: export as |
| READOBJ-NEXT: Export name: expfunc3 |
| READOBJ-NEXT: Symbol: __imp_func3 |
| READOBJ-NEXT: Symbol: func3 |
| |
| |
| EXPORTAS must be at the end of entry declaration. |
| RUN: not llvm-lib -machine:amd64 -def:test2.def -out:test2.lib 2>&1 \ |
| RUN: | FileCheck --check-prefix=ERROR %s |
| RUN: not llvm-lib -machine:amd64 -def:test3.def -out:test3.lib 2>&1 \ |
| RUN: | FileCheck --check-prefix=ERROR %s |
| ERROR: Invalid data was encountered while parsing the file |
| |
| |
| #--- test.def |
| LIBRARY test.dll |
| EXPORTS |
| func EXPORTAS expfunc |
| mydata DATA EXPORTAS expdata |
| func2 = myfunc2 EXPORTAS expfunc2 |
| func3 = otherdll.otherfunc3 EXPORTAS expfunc3 |
| |
| #--- test2.def |
| LIBRARY test.dll |
| EXPORTS |
| func EXPORTAS expfunc |
| mydata EXPORTAS expdata DATA |
| |
| #--- test3.def |
| LIBRARY test.dll |
| EXPORTS |
| mydata EXPORTAS |