[LLVMdev] Output to a DLL

Nicolas Capens nicolas at capens.net
Thu Jun 11 14:10:02 PDT 2009

Hi Eli,

Thanks a lot for the advise. The existing direct object code emission looks
very interesting and I might give it a try to create a basic DLL writer.

Generating an assembly file and compiling it to a DLL 'externally' sounds
like the most straightforward way for now so I'll try that first...



-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Eli Friedman
Sent: donderdag 11 juni 2009 21:11
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Output to a DLL

On Thu, Jun 11, 2009 at 7:34 AM, Nicolas Capens<nicolas at capens.net> wrote:
> I'd like to be able to write JIT-compiled code to a Windows DLL. I have no
> idea where to start though. Does LLVM already offer some support for this?

You can't use the JIT to compile code for a DLL; it simply isn't
designed for that.

> Or would it be straightforward to write my own DLL writer (no advanced
> features needed)? Or maybe I could use an external linker? All help highly
> appreciated!

You can write out an assembly (.s) file and use mingw as+ld to build a
DLL.  Essentially, this is just building a DLL the same way a
conventional compiler like llvm-gcc would.

Directly emitting a DLL would be a lot of work, although it doesn't
require any architectural changes to LLVM; you'd need something like
http://wiki.llvm.org/Direct_Object_Code_Emission plus some code to
handle linking.


LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu

More information about the llvm-dev mailing list