diff --git a/lld/COFF/DLL.cpp b/lld/COFF/DLL.cpp index 9d5eb817220a..d44dd4b4a0b6 100644 --- a/lld/COFF/DLL.cpp +++ b/lld/COFF/DLL.cpp @@ -326,6 +326,10 @@ public: write64le(Buf + FileOff, Thunk->getRVA() + Config->ImageBase); } + void getBaserels(std::vector *Res, Defined *ImageBase) override { + Res->push_back(RVA); + } + Chunk *Thunk; }; diff --git a/lld/test/COFF/delayimports.test b/lld/test/COFF/delayimports.test index 782f2f1ce2c5..1e862d7aa989 100644 --- a/lld/test/COFF/delayimports.test +++ b/lld/test/COFF/delayimports.test @@ -1,26 +1,41 @@ # RUN: lld -flavor link2 /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 %s +# RUN: llvm-readobj -coff-imports %t.exe | FileCheck -check-prefix=IMPORT %s +# RUN: llvm-readobj -coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s -CHECK: DelayImport { -CHECK-NEXT: Name: std64.dll -CHECK-NEXT: Attributes: 0x1 -CHECK-NEXT: ModuleHandle: 0x1018 -CHECK-NEXT: ImportAddressTable: 0x1020 -CHECK-NEXT: ImportNameTable: 0x3040 -CHECK-NEXT: BoundDelayImportTable: 0x0 -CHECK-NEXT: UnloadDelayImportTable: 0x0 -CHECK-NEXT: Import { -CHECK-NEXT: Symbol: ExitProcess (0) -CHECK-NEXT: Address: 0x140002066 -CHECK-NEXT: } -CHECK-NEXT: Import { -CHECK-NEXT: Symbol: (50) -CHECK-NEXT: Address: 0x1400020BD -CHECK-NEXT: } -CHECK-NEXT: Import { -CHECK-NEXT: Symbol: MessageBoxA (1) -CHECK-NEXT: Address: 0x140002114 -CHECK-NEXT: } -CHECK-NEXT: } +IMPORT: DelayImport { +IMPORT-NEXT: Name: std64.dll +IMPORT-NEXT: Attributes: 0x1 +IMPORT-NEXT: ModuleHandle: 0x1018 +IMPORT-NEXT: ImportAddressTable: 0x1020 +IMPORT-NEXT: ImportNameTable: 0x3040 +IMPORT-NEXT: BoundDelayImportTable: 0x0 +IMPORT-NEXT: UnloadDelayImportTable: 0x0 +IMPORT-NEXT: Import { +IMPORT-NEXT: Symbol: ExitProcess (0) +IMPORT-NEXT: Address: 0x140002066 +IMPORT-NEXT: } +IMPORT-NEXT: Import { +IMPORT-NEXT: Symbol: (50) +IMPORT-NEXT: Address: 0x1400020BD +IMPORT-NEXT: } +IMPORT-NEXT: Import { +IMPORT-NEXT: Symbol: MessageBoxA (1) +IMPORT-NEXT: Address: 0x140002114 +IMPORT-NEXT: } +IMPORT-NEXT: } + +BASEREL: BaseReloc [ +BASEREL-NEXT: Entry { +BASEREL-NEXT: Type: DIR64 +BASEREL-NEXT: Address: 0x1020 +BASEREL-NEXT: } +BASEREL-NEXT: Entry { +BASEREL-NEXT: Type: DIR64 +BASEREL-NEXT: Address: 0x1028 +BASEREL-NEXT: } +BASEREL-NEXT: Entry { +BASEREL-NEXT: Type: DIR64 +BASEREL-NEXT: Address: 0x1030 +BASEREL-NEXT: }