B
BartC
David Brown said:On 16/02/14 20:15, BartC wrote:
There are several parts that make up a toolchain - the compiler is only
one of them. gcc is a compiler that supports win64 directly, both as a
host and as a target. But the compiler itself is not sufficient to make
useful programs on a particular platform - for that, you need the
libraries, runtime, and headers for that platform's API and system
interfaces. gcc is the compiler - it does not provide these parts for any
target.
I disagree: the mingw gcc versions I've used seemed to contain things most
I need: windows.h for example, and the necessary libraries. I haven't needed
separate sets of headers and libraries. Otherwise I don't know what most of
the 12,000 files comprising mingw are for.
In addition, keeping up with Windows can be a tough game for a compiler -
things change every now and again. Sometimes that means changes need to
be made in the compiler itself.
Again I disagree. Until about 2012 I maintained my own language and
compilers for use under Windows. Very little maintenance was necessary
(around 2000 for example I upgraded to full 32-bit code generation; a bit
late, but I'd already been using mixed 32-bit/16-bit code since the 80386
appeared). Object code generation and linking had been offloaded to NASM at
some time during the nineties.
So when you download a "release" from mingw-64, it contains the libraries,
headers, and runtimes for using gcc on Win32 and Win64, along with any
useful outstanding patches to gcc itself. It does not contain the
compiler - you can download that and build it yourself, as this is a
source code release.
That's really what I'm trying to avoid. I have enough trouble compiling my
own applications, and the largest one I have is only a dozen modules,
neither does it have any circular dependencies as you'd get when compiling a
compiler with its own language (and what compiler version would be used to
compile it?). (I get enough of those sorts of headaches from working on my
own compilers which also compile themselves, and mine are tiny in
comparison.)
Using C was supposed to make life easier for me, not more difficult!
(I've just made a quick attempt to look at the gcc sources, but I got as far
as the file gcc-4.7.2-1-mingw32-src.tar.lzma, with a extension I have no
idea of (is there someone paid to keep thinking up new ones) and a size of
80MB. I don't need to know any more! Clearly trying to build just a huge
project is completely out of the question as I wouldn't have a clue. Writing
my own compiler - even a C compiler - would be far easier, and I'm being
serious!)
Alternatively, you could spend a couple of minutes reading the wiki and
find your way to the 64-bit binaries.
If you mean the wikipedia entries on mingw, that generates even more
confusion.
I think if gcc didn't have such a good optimiser (and was only so
ubiquitous), I would long ago have given up on it.