[LLVMdev] [cfe-dev] RFC: "Building with MinGW on Windows" (DOC, 2ND TRY)

Mikael Lyngvig
Mon, 18 Jun 2012 12:55:01 -0000

Hi Nikola,

Thank you very much for your feedback!

I am beginning to feel slightly dizzy from all the suggestions that go
against each other :-)

I'll fix the documentation so that it uses MinGW and MinGW-W64.  I'll
ignore that the 64-bit version targets both 32-bit and 64-bit Windows, so
as to keep things simple.

I'll use your link, thank you for that.

It is intended to be a brief, conscise, and precise tutorial on how to
build LLVM and Clang using the MinGW tools.  I believe that those who know
more can easily skip parts whereas those who know less cannot easily figure
out the missing parts.  So I try to spell it out from A to Z.  That way,
anybody can read and use the document: The newbie as a safe guide and the
expert as a checklist.

As for VS, well, I feel that it is of URGENT importance to inform the
newbie that he or she cannot expect to get usable results with Microsoft
Visual Studio (i.e. using Clang as the frontend and attempt to link a
somewhat advanced C++ program).

Well, people are different.  I do suffer from a very poor memory, which is
what makes me so reluctant to actually code on LLVM or Clang, but I felt
very confused and overwhelmed by the whole ordeal when I first entered the
world of LLVM - even though I've used computers for three decades, Unix for
5+ years full-time, worked on other compiler projects, and so on, and so
on.  So just because you felt it was straightforward does not mean
everybody will do so (emotional makeups are as different as people are).
 And I am trying to be gentle towards ever imaginable newbie.  I know that
it took me days to set up the first build slave because there were so many
loose ends all over the place.  And this document actually started out as a
document on how to set up a Windows buildbot slave.  Then it got chopped
into two, now three documents.

I have to teach you a small verse here: ASS-U-ME is to make an ASS of U and
ME.  In other words: Every assumption in every document, line of code,
space shuttle, whatever is going to cost dearly at some point later on.  I
am intentionally NOT assuming anything about the level of the user
(actually, I am: I assume they know how to open up a console window on
Windows, this assumption was introduced to shorten the document).

Well, the initial version WAS too long and covered lots of ground that
ultimately only served to confuse the newbie.  Thanks to the readers of
these lists, those issues got sorted.

I hope I don't sound obtuse, hostile, or unfriendly.  I think your points
are generally very good and useful (and I will incorate most of them into
the document), but I strongly disagree on the tutorial thingy :-)

-- Disclaimer: I am *not* arrogant in real life, so if you perceive me as
being arrogant, you are to blame ;-)

2012/6/18 Nikola Smiljanic <popizdeh at gmail.com>

> On Mon, Jun 18, 2012 at 12:25 PM, Mikael Lyngvig <mikael at
lyngvig.org>
> wrote:
> > Hi all,
> >
> >     3. The document now covers 32-bit and 64-bit builds with MinGW
tools
> (if
> > anybody know of an alternate BINARY distribution of MinGW64 than
> Drangon's
> > release, please let me know so I can include it in the document).
>
> As was once explained to me by Ruben Van Boxem, what you call mingw32
> should probably be called mingw.org (or maybe only mingw). The other
> one should be called MinGW-w64. Also note that MinGW-w64 can target
> both 32-bit and 64-bit windows!
>
> I was also informed that nightly builds of mingw-w64 are rock solid,
> so here's a link to toolchain targeting Win64
>
>
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/release/
>
> As for the rest of the document I have only one complaint that's more
> a matter of style and taste. The document sounds like tutorial and is
> very different from say "getting started" which is more to the
point.
> I'll try to be more concrete:
>
> "Building LLVM on Windows using the MinGW32 or MinGW64 toolchains can
seem
> daunting at first."
>
> I never had this impression, you just checkout clang, unpack mingw,
> run cmake, run ming32-make. Also note that I knew next to nothing
> about mingw when I first did this.
>
> Mingw vs VS issues
>
> I think it would be fair to say that mingw is better supported without
> having to list every feature that doesn't work with VS (who will
> remember to change this page when the features get implemented?). I'm
> also assuming the person already knows why he wants to use mingw.
>
> Reference to "Getting Started"
> I think that Getting Started page should have a link to your document
> as the official Clang+Mingw information. You don't really need to
> refer back to Getting started, infinite loop anyone :)
>
> As Justin said, I would concentrate more on the official tools like
> ming32-make.
>
> The way I imagine this is:
> - explain how to choose mingw flavor
> - checkout llvm/clang
> - how to use cmake to generate makefiles
> - how to build using ming32-make
> - how to debug
> - how to run tests (python, gnuwin32, subversion)
> - mention alternative tools like ninja build
>
> As I said, this is just my personal preference, I just had the
> impression that your document was too long and covered a lot of ground
> that it didn't really have to.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20120618/43dd0e87/attachment.html>