Index: llvm/trunk/include/llvm/Object/COFFImportFile.h =================================================================== --- llvm/trunk/include/llvm/Object/COFFImportFile.h +++ llvm/trunk/include/llvm/Object/COFFImportFile.h @@ -99,7 +99,8 @@ std::error_code writeImportLibrary(StringRef ImportName, StringRef Path, ArrayRef Exports, - COFF::MachineTypes Machine); + COFF::MachineTypes Machine, + bool MakeWeakAliases); } // namespace object } // namespace llvm Index: llvm/trunk/lib/Object/COFFImportFile.cpp =================================================================== --- llvm/trunk/lib/Object/COFFImportFile.cpp +++ llvm/trunk/lib/Object/COFFImportFile.cpp @@ -560,7 +560,7 @@ std::error_code writeImportLibrary(StringRef ImportName, StringRef Path, ArrayRef Exports, - MachineTypes Machine) { + MachineTypes Machine, bool MakeWeakAliases) { std::vector Members; ObjectFactory OF(llvm::sys::path::filename(ImportName), Machine); @@ -578,7 +578,7 @@ if (E.Private) continue; - if (E.isWeak()) { + if (E.isWeak() && MakeWeakAliases) { Members.push_back(OF.createWeakExternal(E.Name, E.ExtName, false)); Members.push_back(OF.createWeakExternal(E.Name, E.ExtName, true)); continue; Index: llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp =================================================================== --- llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp +++ llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp @@ -171,7 +171,7 @@ } } - if (writeImportLibrary(Def->OutputFile, Path, Def->Exports, Machine)) + if (writeImportLibrary(Def->OutputFile, Path, Def->Exports, Machine, true)) return 1; return 0; }