blob: 0c98ca0ddef07226a8f45fcf833b0fe7f8f64efe [file] [log] [blame]
// REQUIRES: x86
// RUN: split-file %s %t.dir
// RUN: llvm-lib -machine:amd64 -out:%t.lib -def:%t.dir/lib.def
// RUN: llvm-mc -filetype=obj -triple=x86_64-windows %t.dir/main.s -o %t.main.obj
// RUN: lld-link -out:%t.exe %t.main.obj -wholearchive:%t.lib -entry:entry -subsystem:console
// RUN: llvm-readobj --coff-imports %t.exe | FileCheck %s
// As LLD usually doesn't use the header/trailer object files from import
// libraries, but instead synthesizes those structures, we end up with two
// import directory entries if we force those objects to be included.
// CHECK: Import {
// CHECK-NEXT: Name: lib.dll
// CHECK-NEXT: ImportLookupTableRVA: 0x2050
// CHECK-NEXT: ImportAddressTableRVA: 0x2068
// CHECK-NEXT: }
// CHECK-NEXT: Import {
// CHECK-NEXT: Name: lib.dll
// CHECK-NEXT: ImportLookupTableRVA: 0x2058
// CHECK-NEXT: ImportAddressTableRVA: 0x2070
// CHECK-NEXT: Symbol: func (0)
// CHECK-NEXT: }
#--- main.s
.global entry
entry:
call func
ret
#--- lib.def
LIBRARY lib.dll
EXPORTS
func