[llvm-dev] Shipping LLVM.dll for the C API with the Windows installer.

Jakob Bornecrantz via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 30 07:46:22 PDT 2017


Hello list!

So I'm wondering if there is a will to ship a DLL with the C API
exported? LLVM currently ships with LTO.dll which has some C api
functions exported, made from the export file tools/lto/lto.exports,
so it would not be the first DLL LLVM shipped.

Currently I (and the users of my project[1]) are building it ourselves
using this script[2] derived from the LLVMSharp script[3]. Which adds
a extra long step for all users of ours and other projects like
LLVMSharp in order to use them.

The resulting LLVM.dll exports 809 functions and weighs in at around
18mb, so it would make the installer larger. There is also the cost of
maintaining a lists of export for the DLL, but hopefully we can use
the llvm-echo to test it on the windows nodes so any failure to add
new exports gets detected early.

Now for the bike-shed questions, do we call it LLVM-c.dll or just
LLVM.dll? Annotate all functions with a LLVM_EXPORT define or use a
llvm-c.exports file?

Thoughts and feedback welcome.

Cheers, Jakob.

[1] http://volt-lang.org
[2] https://github.com/VoltLang/GenLLVMDLLPy/blob/master/GenLLVMDLL.py
[3] https://github.com/Microsoft/LLVMSharp/blob/master/tools/GenLLVMDLL.ps1


More information about the llvm-dev mailing list