[llvm-bugs] [Bug 44339] New: [Improvement] Shared version of LLVM library for MSVC

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Dec 19 05:01:03 PST 2019


https://bugs.llvm.org/show_bug.cgi?id=44339

            Bug ID: 44339
           Summary: [Improvement] Shared version of LLVM library for MSVC
           Product: Build scripts
           Version: 9.0
          Hardware: PC
                OS: Windows XP
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: cmake
          Assignee: unassignedbugs at nondot.org
          Reporter: akornilov.82 at gmail.com
                CC: llvm-bugs at lists.llvm.org

For now, the LLVM build procedure is not to support DLL (shared library)
version for MSVC.
The reason is that LLVM classes don't have
__declspec(dllexport)/__declspec(dllimport) in declaration.
But there is another way to export class by Microsoft toolchain.
Microsoft linker supports /DEF:<def filename> option. Inside DEF-file in
'EXPORTS' section all required names for export can be described.
I have successfully used this approach for LLVM 9.0.0 in the plugin:
https://sourceforge.net/p/gradle-cpp/wiki/cpp-llvm.

In attachment, there is the file 'llvm-so.def'. It has been generated by the
special tool for LLVM 9.0.0 and MSVC 2019 and contains all required exports.

Linker options required to build DLL:
/DLL
/DEF:llvm-so.def
psapi.lib
shell32.lib
ole32.lib
uuid.lib
advapi32.lib
LLVMXRay.lib
LLVMWindowsManifest.lib
LLVMTextAPI.lib
LLVMTableGen.lib
LLVMSymbolize.lib
LLVMDebugInfoPDB.lib
LLVMOrcJIT.lib
LLVMJITLink.lib
LLVMObjectYAML.lib
LLVMMCA.lib
LLVMLTO.lib
LLVMPasses.lib
LLVMObjCARCOpts.lib
LLVMLineEditor.lib
LLVMLibDriver.lib
LLVMInterpreter.lib
LLVMFuzzMutate.lib
LLVMMCJIT.lib
LLVMExecutionEngine.lib
LLVMRuntimeDyld.lib
LLVMDlltoolDriver.lib
LLVMOption.lib
LLVMDebugInfoGSYM.lib
LLVMCoverage.lib
LLVMCoroutines.lib
LLVMXCoreDisassembler.lib
LLVMXCoreCodeGen.lib
LLVMXCoreDesc.lib
LLVMXCoreInfo.lib
LLVMX86Disassembler.lib
LLVMX86AsmParser.lib
LLVMX86CodeGen.lib
LLVMX86Desc.lib
LLVMX86Utils.lib
LLVMX86Info.lib
LLVMWebAssemblyDisassembler.lib
LLVMWebAssemblyCodeGen.lib
LLVMWebAssemblyDesc.lib
LLVMWebAssemblyAsmParser.lib
LLVMWebAssemblyInfo.lib
LLVMSystemZDisassembler.lib
LLVMSystemZCodeGen.lib
LLVMSystemZAsmParser.lib
LLVMSystemZDesc.lib
LLVMSystemZInfo.lib
LLVMSparcDisassembler.lib
LLVMSparcCodeGen.lib
LLVMSparcAsmParser.lib
LLVMSparcDesc.lib
LLVMSparcInfo.lib
LLVMRISCVDisassembler.lib
LLVMRISCVCodeGen.lib
LLVMRISCVAsmParser.lib
LLVMRISCVDesc.lib
LLVMRISCVUtils.lib
LLVMRISCVInfo.lib
LLVMPowerPCDisassembler.lib
LLVMPowerPCCodeGen.lib
LLVMPowerPCAsmParser.lib
LLVMPowerPCDesc.lib
LLVMPowerPCInfo.lib
LLVMNVPTXCodeGen.lib
LLVMNVPTXDesc.lib
LLVMNVPTXInfo.lib
LLVMMSP430Disassembler.lib
LLVMMSP430CodeGen.lib
LLVMMSP430AsmParser.lib
LLVMMSP430Desc.lib
LLVMMSP430Info.lib
LLVMMipsDisassembler.lib
LLVMMipsCodeGen.lib
LLVMMipsAsmParser.lib
LLVMMipsDesc.lib
LLVMMipsInfo.lib
LLVMLanaiDisassembler.lib
LLVMLanaiCodeGen.lib
LLVMLanaiAsmParser.lib
LLVMLanaiDesc.lib
LLVMLanaiInfo.lib
LLVMHexagonDisassembler.lib
LLVMHexagonCodeGen.lib
LLVMHexagonAsmParser.lib
LLVMHexagonDesc.lib
LLVMHexagonInfo.lib
LLVMBPFDisassembler.lib
LLVMBPFCodeGen.lib
LLVMBPFAsmParser.lib
LLVMBPFDesc.lib
LLVMBPFInfo.lib
LLVMARMDisassembler.lib
LLVMARMCodeGen.lib
LLVMARMAsmParser.lib
LLVMARMDesc.lib
LLVMARMUtils.lib
LLVMARMInfo.lib
LLVMAMDGPUDisassembler.lib
LLVMAMDGPUCodeGen.lib
LLVMMIRParser.lib
LLVMipo.lib
LLVMInstrumentation.lib
LLVMVectorize.lib
LLVMLinker.lib
LLVMIRReader.lib
LLVMAsmParser.lib
LLVMAMDGPUAsmParser.lib
LLVMAMDGPUDesc.lib
LLVMAMDGPUUtils.lib
LLVMAMDGPUInfo.lib
LLVMAArch64Disassembler.lib
LLVMMCDisassembler.lib
LLVMAArch64CodeGen.lib
LLVMGlobalISel.lib
LLVMSelectionDAG.lib
LLVMAsmPrinter.lib
LLVMDebugInfoDWARF.lib
LLVMCodeGen.lib
LLVMTarget.lib
LLVMScalarOpts.lib
LLVMInstCombine.lib
LLVMAggressiveInstCombine.lib
LLVMTransformUtils.lib
LLVMBitWriter.lib
LLVMAnalysis.lib
LLVMProfileData.lib
LLVMObject.lib
LLVMBitReader.lib
LLVMBitstreamReader.lib
LLVMCore.lib
LLVMRemarks.lib
LLVMAArch64AsmParser.lib
LLVMMCParser.lib
LLVMAArch64Desc.lib
LLVMMC.lib
LLVMDebugInfoCodeView.lib
LLVMDebugInfoMSF.lib
LLVMBinaryFormat.lib
LLVMAArch64Utils.lib
LLVMAArch64Info.lib
LLVMSupport.lib
LLVMDemangle.lib

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20191219/5c357f84/attachment.html>


More information about the llvm-bugs mailing list