mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-29 11:17:28 +00:00
6bd26db06a
E.g. for x86_64, previously each symbol's thunk was 87 bytes. Now there's a 12 byte thunk per symbol, plus a shared 83 byte tail function. This is similar to what both MS link.exe and GNU tools do for delay imports. Differential Revision: https://reviews.llvm.org/D64288 llvm-svn: 365823
42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
# RUN: lld-link /out:%t.exe /entry:main /subsystem:console \
|
|
# RUN: %p/Inputs/hello64.obj %p/Inputs/std64.lib /delayload:STD64.DLL \
|
|
# RUN: /alternatename:__delayLoadHelper2=main
|
|
# RUN: llvm-readobj --coff-imports %t.exe | FileCheck -check-prefix=IMPORT %s
|
|
# RUN: llvm-readobj --coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s
|
|
|
|
IMPORT: DelayImport {
|
|
IMPORT-NEXT: Name: std64.dll
|
|
IMPORT-NEXT: Attributes: 0x1
|
|
IMPORT-NEXT: ModuleHandle: 0x3018
|
|
IMPORT-NEXT: ImportAddressTable: 0x3020
|
|
IMPORT-NEXT: ImportNameTable: 0x2040
|
|
IMPORT-NEXT: BoundDelayImportTable: 0x0
|
|
IMPORT-NEXT: UnloadDelayImportTable: 0x0
|
|
IMPORT-NEXT: Import {
|
|
IMPORT-NEXT: Symbol: ExitProcess (0)
|
|
IMPORT-NEXT: Address: 0x140001066
|
|
IMPORT-NEXT: }
|
|
IMPORT-NEXT: Import {
|
|
IMPORT-NEXT: Symbol: (50)
|
|
IMPORT-NEXT: Address: 0x140001072
|
|
IMPORT-NEXT: }
|
|
IMPORT-NEXT: Import {
|
|
IMPORT-NEXT: Symbol: MessageBoxA (0)
|
|
IMPORT-NEXT: Address: 0x14000107E
|
|
IMPORT-NEXT: }
|
|
IMPORT-NEXT: }
|
|
|
|
BASEREL: BaseReloc [
|
|
BASEREL-NEXT: Entry {
|
|
BASEREL-NEXT: Type: DIR64
|
|
BASEREL-NEXT: Address: 0x3020
|
|
BASEREL-NEXT: }
|
|
BASEREL-NEXT: Entry {
|
|
BASEREL-NEXT: Type: DIR64
|
|
BASEREL-NEXT: Address: 0x3028
|
|
BASEREL-NEXT: }
|
|
BASEREL-NEXT: Entry {
|
|
BASEREL-NEXT: Type: DIR64
|
|
BASEREL-NEXT: Address: 0x3030
|
|
BASEREL-NEXT: }
|