[LLVMdev] LLVM MinGW binaries on Vista issue

Jon jon.forums at gmail.com
Thu Dec 17 12:28:13 PST 2009

> > To make it easier to use the LLVM-GCC MinGW32 binary and meet your GPL licensing requirements, could you embed the MinGW binutils binary as-is in the LLVM-GCC MinGW32 and update the LLVM docs to point to the MinGW SourceForge download site for those wanting the MinGW binutils source?
> I still don't think it's good idea. binutils will add something like
> 10Mb to package download size.

Agreed on trying to minimize porky downloads.  That said, a rough comparison of the current 2.6 binary sizes:

* MinGW32/x86 LLVM-GCC (current) ~ 23M
* MinGW32/x86 LLVM-GCC + MinGW Binutils ~ 34M
* MacOS X/x86 (Darwin 9) ~ 39.7M
* Linux/x86 ~ 46M
* Linux/x86_64 ~ 76M

I'm not saying that a combined MinGW LLVM-GCC + binutils would be svelte, but it would weigh in at the lower end.

> Also, in almost all cases llvm-gcc user is mingw user as well, which
> will lead to two different sets of linkers (possible) located in the
> PATH...

Likely.  Although the folks that would want to have both on their system would probably be OK with setting up their system (eg-mingwvars.bat and llvmvars.bat each used by a separate desktop shortcut) to prevent PATH conflicts.  Updating the docs would make this more visible.  It may also make sense to include a README file in the binary.

>From my PoV I see two compelling benefits:

1) Bug and support minimization - By having a single LLVM core developer "blessed" MinGW32 binary download, you can verify, at build time via your tests, that the combination of llvm-gcc + w32api + mingw-runtime + binutils is stable.  This should minimize reported bugs and ML questions from us of the Drive By Tweakers Club.  Would need to prominently document that "you're on your own" and "why aren't you building from source!?" for those wanting to manually update pieces of the blessed MinGW32 binary.  I could see the scenario in which manually installing the MinGW binutils binary containing headers conflicts with your "fixincludes" build-time header patch up. I'm guessing the binutils headers are completely independent of the headers you patch up, so the scenario is probably wacked.

2) Ease of install and use for your Windows users - For those who would rather not compile it themselves, the single download is the quickest and safest way to start tinkering with LLVM.  I don't really have any idea how many of us there are here though.

I'm not sure what additional burden the binutils integration might put on your build and test environment, but if it would cause major drama and there's no potential conflicts with manual binutils, I'd say focus your limited resources to higher value areas and just ensure things are documented clearly for us tinkerers :)


More information about the llvm-dev mailing list