Skip to content

Commit 4d09ed9

Browse files
committed
[llvm-lib] Support adding short import library objects with llvm-lib
This fixes PR 42837. Differential Revision: https://reviews.llvm.org/D84465
1 parent 9bb6ce7 commit 4d09ed9

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,11 @@ static void appendFile(std::vector<NewArchiveMember> &Members,
191191
file_magic Magic = identify_magic(MB.getBuffer());
192192

193193
if (Magic != file_magic::coff_object && Magic != file_magic::bitcode &&
194-
Magic != file_magic::archive && Magic != file_magic::windows_resource) {
194+
Magic != file_magic::archive && Magic != file_magic::windows_resource &&
195+
Magic != file_magic::coff_import_library) {
195196
llvm::errs() << MB.getBufferIdentifier()
196-
<< ": not a COFF object, bitcode, archive or resource file\n";
197+
<< ": not a COFF object, bitcode, archive, import library or "
198+
"resource file\n";
197199
exit(1);
198200
}
199201

llvm/test/tools/llvm-lib/implibs.test

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Test that import libraries (and the members thereof) can be added to another
2+
static library.
3+
4+
RUN: rm -rf %t
5+
RUN: mkdir -p %t
6+
7+
RUN: echo -e "EXPORTS\nMyFunc" > %t/lib.def
8+
RUN: llvm-dlltool -m i386:x86-64 -l %t/lib.lib -d %t/lib.def -D lib.dll
9+
RUN: llvm-lib -out:%t/newlib.lib %t/lib.lib
10+
11+
RUN: llvm-ar t %t/newlib.lib | FileCheck %s
12+
CHECK: lib.dll

llvm/test/tools/llvm-lib/invalid.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
RUN: not llvm-lib %S/Inputs/cl-gl.obj 2>&1 | FileCheck %s
2-
CHECK: not a COFF object, bitcode, archive or resource file
2+
CHECK: not a COFF object, bitcode, archive, import library or resource file

0 commit comments

Comments
 (0)