Compiling to Win32

Hello! I have previously posted this question on llvm-bugs, but I was redirected and asked to post to llvmdev, so I’m resending this message to this mailing list.

I am interested in LLVM, particularly for the implementation of a programming language, and have been looking at the LLVM documentation recently.

However, I was wondering what exactly do these two lines, extracted from the Portability and Supported Platforms (http://llvm.org/docs/ReleaseNotes.html#portability):

  • Intel and AMD machines running on Win32 using MinGW libraries (native)
  • Intel and AMD machines running on Win32 with the Cygwin libraries (limited support is available for native builds with Visual C++).
    Does this mean that LLVM cannot produce Win32 application independently? So that I can not use it (for example, from an IDE) without installing third-party libraries? Do these libraries need to be distributed along with the generated executables?

Please help me. I would like to understand exactly what I need to (i) compile a native, complete, optimized program executable (from source code to LLVM internal representation using my front-end, then optimizing, emitting machine code, and linking with LLVM), ready to be distributed to end users, (ii) compile to some custom bytecode, than make a runtime, on top on LLVM, that would JIT-compile that bytecode and run it (in client’s computer - like Flash, Java, …), and (iii) to provide the end user with the option to optimize and recompile the program.

This is part of an answer I have received on llvm-bugs:

It depends on, how exactly you’re compiling LLVM. If you’ll go with
Cygwin-generated binaries, then yes - you’ll need to depend on
cygwin1.dll, which cannot be distributed freely, if you’ll use mingw -
you will use MS CRT, which is present on all win machines.

This tells me that I might have been misunderstood previously, so I am now clarifying my question: I am asking about compiling to Qin32 WITH LLVM, not compiling LLVM itself to Win32. So, what dependencies do programs generated with LLVM need to run on client’s Win32 machines? I hope that this time, my question is more clear.

  • Tom