This is an archive of the discontinued LLVM Phabricator instance.

Build LLVM-C.dll by default on windows and enable in release package
ClosedPublic

Authored by Wallbraker on Jan 16 2019, 1:29 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

Wallbraker created this revision.Jan 16 2019, 1:29 AM
hans accepted this revision.Jan 16 2019, 1:49 AM

Looks good to me. Do you have commit access, or would you like me to commit it for you?

utils/release/build_llvm_package.bat
55 ↗(On Diff #181992)

Thanks, this is much easier to read. I hadn't seen the ^ trick before.

This revision is now accepted and ready to land.Jan 16 2019, 1:49 AM
Wallbraker marked 2 inline comments as done.Jan 16 2019, 3:30 AM
Wallbraker added a subscriber: bhelyer.

No I don't have commit access, so please feel free to commit. Will this land before the branch point and also make it out in that release?

utils/release/build_llvm_package.bat
55 ↗(On Diff #181992)

Credit goes to @bhelyer for teaching me that trick, I'm very much a Linux guy. :)

Wallbraker marked an inline comment as done.Jan 16 2019, 3:41 AM
hans added a comment.Jan 16 2019, 3:51 AM

I've committed in r351324. That's just after the branch point, but if no problems show up, I'll merge it to the release branch.

This revision was automatically updated to reflect the committed changes.
hans added a comment.Jan 16 2019, 4:40 AM

I just tried to build a package, and it failed like this:

[5343/5480] Generating export list for LLVM-C
FAILED: libllvm-c.exports
cmd.exe /C "cd /D C:\src\llvm_package_351324\build32_stage0\tools\llvm-shlib && C:\python_27_amd64\files\python.exe C:/src/llvm_package_351324/llvm/tools/llvm-shlib/gen-msvc-exports.py C:/src/llvm_package_351324/build32_stage0/./lib/LLVMDemangle.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSupport.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMTableGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMCore.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMFuzzMutate.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMIRReader.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSelectionDAG.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMIRParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMGlobalISel.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBinaryFormat.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBitReader.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBitWriter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMTransformUtils.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMInstrumentation.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAggressiveInstCombine.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMInstCombine.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMScalarOpts.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMipo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMVectorize.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMObjCARCOpts.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMCoroutines.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLinker.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAnalysis.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLTO.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMC.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMCParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMCDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMCA.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMObject.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMObjectYAML.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMOption.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMOptRemarks.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMDebugInfoDWARF.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMDebugInfoMSF.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMDebugInfoCodeView.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMDebugInfoPDB.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSymbolize.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMExecutionEngine.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMInterpreter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMCJIT.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMOrcJIT.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMRuntimeDyld.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMTarget.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAArch64CodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAArch64AsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAArch64Disassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAArch64AsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAArch64Desc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAArch64Info.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAArch64Utils.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAMDGPUCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAMDGPUAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAMDGPUDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAMDGPUAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAMDGPUDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAMDGPUInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAMDGPUUtils.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMARMCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMARMAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMARMDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMARMAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMARMDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMARMInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMARMUtils.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBPFCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBPFAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBPFDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBPFAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBPFDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMBPFInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMHexagonCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMHexagonAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMHexagonDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMHexagonDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMHexagonInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLanaiCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLanaiAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLanaiDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLanaiAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLanaiDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLanaiInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMipsCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMipsAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMipsDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMipsAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMipsDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMipsInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMSP430CodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMSP430AsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMSP430Desc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMSP430Info.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMSP430AsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMMSP430Disassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMNVPTXCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMNVPTXAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMNVPTXDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMNVPTXInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMPowerPCCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMPowerPCAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMPowerPCDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMPowerPCAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMPowerPCDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMPowerPCInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSparcCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSparcAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSparcDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSparcAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSparcDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSparcInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSystemZCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSystemZAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSystemZDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSystemZAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSystemZDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMSystemZInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMWebAssemblyCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMWebAssemblyAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMWebAssemblyDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMWebAssemblyAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMWebAssemblyDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMWebAssemblyInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMX86CodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMX86AsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMX86Disassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMX86AsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMX86Desc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMX86Info.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMX86Utils.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMXCoreCodeGen.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMXCoreDisassembler.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMXCoreAsmPrinter.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMXCoreDesc.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMXCoreInfo.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMAsmParser.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLineEditor.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMProfileData.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMCoverage.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMPasses.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMTextAPI.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMDlltoolDriver.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMLibDriver.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMXRay.lib C:/src/llvm_package_351324/build32_stage0/./lib/LLVMWindowsManifest.lib C:/src/llvm_package_351324/build32_stage0/./lib/LTO.lib --nm C:/src/llvm_package_351324/build32_stage0/./bin/llvm-nm -o C:/src/llvm_package_351324/build32_stage0/./libllvm-c.exports"
The command line is too long.

Maybe it can be made to use a response file somehow?

I've reverted in r351329 for now.

Wallbraker reopened this revision.Jan 24 2019, 5:09 AM
Wallbraker updated this revision to Diff 183287.
Wallbraker edited the summary of this revision. (Show Details)
Wallbraker added a subscriber: serge-sans-paille.

@hans @serge-sans-paille I'm re-opening this again as the fixes have landed. Build tested the latest master with the change on.

This revision is now accepted and ready to land.Jan 24 2019, 5:11 AM
CMakeLists.txt
537 ↗(On Diff #183287)

out of curiosity: does it make sense to have this turned ON by default, while it's OFF for darwin?

Wallbraker marked an inline comment as done.Jan 24 2019, 5:48 AM
Wallbraker added inline comments.
CMakeLists.txt
537 ↗(On Diff #183287)

Due to the way c-runtimes and different compiler works (or doesn't work) getting a usable DLL is more valuable on Windows then on Mac. It doesn't add much build time and makes sure that the building of the LLVM-C.dll is better tested.

serge-sans-paille added inline comments.
CMakeLists.txt
537 ↗(On Diff #183287)

ok, LGTM then.

hans accepted this revision.Jan 24 2019, 3:30 PM

lgtm, I'll try building a snapshot with this when it's landed.

Wallbraker marked 2 inline comments as done.Jan 25 2019, 4:49 AM

Thanks! As I don't have commit access I will need somebody to land this, thanks!

Cheers, Jakob.

This revision was automatically updated to reflect the committed changes.
Forest added a subscriber: Forest.Oct 6 2019, 12:19 PM

I was hoping to use the LLVM-C bindings in Windows (hopefully without building LLVM from scratch). Is that possible with this DLL? Are there header files that ship for this DLL?

Herald added a project: Restricted Project. · View Herald TranscriptOct 6 2019, 12:19 PM