[LLVMdev] LLVM Shared DLL not supported reason

Alan Garny agarny at hellix.com
Wed Apr 1 12:00:21 PDT 2015


Independently of the technical details, etc., I personally wish there was an
official way to have an LLVM DLL. I need it for my project and the way I
currently do it is that I import/export every single class/function that I
need. This is really not ideal since I need to 'patch' LLVM every time a new
release is out. Also, if I need to use an extra class/function, then I need
to rebuild LLVM, etc. So, yes, I would for one certainly welcome an official
way to get an LLVM DLL...

Alan

> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of mats petersson
> Sent: 01 April 2015 19:31
> To: Mukul Sabharwal
> Cc: LLVM Developers Mailing List
> Subject: Re: [LLVMdev] LLVM Shared DLL not supported reason
> 
> As far as I understand, the issue is to "not exporting every function"
> (and also potentially exporting C++ functions, which is a lot harder,
because it
> may require "expanding" templates and name-mangiling). To actually support
> those features, it's necessary to have support from the compiler to say "I
want
> to export this function, I don't want to export this function".
> 
> For simple cases, then exporting everything may be fine. But for complex
> software projects, it's typically a bad idea to "export everything".
> 
> --
> Mats
> 
> On 1 April 2015 at 17:46, Mukul Sabharwal <mjsabby at gmail.com> wrote:
> > FWIW, I've got a powershell script that builds an exports.def file for
> > recognizable C functions.
> >
> > You could adapt it to Python and make it part of the official build if
> > the LLVM community thinks it will be beneficial to have libLLVM.dll
> >
> > The script is located here:
> >
> > https://github.com/mjsabby/LLVMSharp/blob/master/GenLLVMDLL.ps1
> >
> > On Wed, Apr 1, 2015 at 9:03 AM, Reid Kleckner <rnk at google.com> wrote:
> >>
> >> Windows DLLs generally require that you know what you want to export
> >> from them. LLVM has no export annotations or export lists, so we
> >> don't support building DLLs. If you are using mingw, then ld supports
> >> the --export-all-symbols flag which might work, but I don't think
> >> it's well tested.
> >>
> >> On Tue, Mar 31, 2015 at 11:33 AM, Hayden Livingston
> >> <halivingston at gmail.com> wrote:
> >>>
> >>> Upon reading http://llvm.org/docs/GettingStarted.html it says I can
> >>> build shared libs, but when going to the CMake doc
> >>> (http://llvm.org/docs/CMake.html) it says Shared libraries are not
> >>> supported on Windows and not recommended for other OSes.
> >>>
> >>> Is there a reason why? At least for on Windows.
> >>>
> >>> _______________________________________________
> >>> LLVM Developers mailing list
> >>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >>>
> >>
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list