newbie problems with linux->mingw32 cross compiler installation

Kai Ruottu
Thu Jun 6 06:01:00 GMT 2002

"Knut C. Naue" wrote:
> for my first cross compiler experiences i got
>         1. binutils-2.11.2.tar.gz
>         2. gcc-3.1.tar.gz
>         3. glibc-2.2.5.tar.gz
> to create a gnu-linux -> win32 cross compiler

 Please open your nice GCC-manual and read the "Installation / Cross-
Compiler" from it.  There are words like "you will need suitable libs
and headers for your target", so the question is: "Is glibc-2.2.5 a
suitable C-library for the Mingw-target ?", and the answer is: "It is
not !". Please use the C-library aimed for Mingw, it comes in two parts,
'runtime' and 'w32api'...

> in directory /root/gcc-3.1-cross on a mandrake 8.1 system using

 It is really a miracle that so few people nowadays can read ;-) (more
than a hundred or so lines at a time...) so all 500-pages manuals are
considered unnecessary... So I would expect Mandrake 8.0 missing the
GCC-manual, maybe it is in the 'info'-format but who nowadays can read
anything else than PDF...

 Lets hope there is the 'pdftex' command, so a 'pdftex gcc.texi' written
in the 'gcc/doc' subdir in the GCC-sources could create the PDF-format
manual (RedHat 7.1 has this command). The indeces require using the
'texindex' for sorting the '.cp' and something else and rewriting the
'pdftex'-command with the sorted indeces... Maybe there is an easier way.
Any documents-guru here telling how ?
> /root/gcc-3.1/gcc/xgcc
> -B/root/gcc-3.1/gcc/	<--- search the build-dir first 
> -B/root/gcc-3.1-cross//i686-pc-mingw32/bin/	<--- search the target
> -B/root/gcc-3.1-cross//i686-pc-mingw32/lib/	<--- stuff for binutils
> -isystem /root/gcc-3.1-cross//i686-pc-mingw32/include <-- libs & hdrs

 As you can see, the new 'xgcc' expects to find the target stuff in the
'/root/gcc-3.1-cross//i686-pc-mingw32', in 'bin', 'lib' and 'include'.
All these options should now be vain for the 'xgcc', but useful for the
newbies to see why the build failed. However it is very common that someone
else must point to these rows, newbies don't usually see anything there
(neither the more experienced people...), unless told to look at them...
IMHO this is the most interesting thing here...

 Hmmm, you '--prefix=/root/gcc-3.1-cross' had an unnecessary '/' in the
end, so these '//'s here...

 Please see with:

    $ cd /root/gcc-3.1/gcc
    $ ./cpp0 -B./ -v

what are the search paths for the headers and you will see there being
one more directory for the target headers, the :


where you can put the 'w32api' headers, separate from the 'mingw' standard
headers (in '/root/gcc-3.1-cross/i686-pc-mingw32/include'). Ok, I haven't
checked the 3.1-patches for Mingw whether they have anything for cross-compile
and add a 'include/w32api' or something being additionally searched, so this
is only my suggestion when not being aware of any suggested 'standards'...

 In any case don't put anything into the '.../sys-include' before the build
is over, GCC tries to 'fix' the headers there and the Mingw-headers should
already be 'fixed' for GCC... Please leave these fixing experiments to the
gurus, whatever some 'install' docs in '' may suggest...
The safe approach is that the GCC-build doesn't 'see' the target headers,
what becomes to 'fixincludes'....

Cheers, Kai

PS. Please remember that there are Mingw-patches for gcc-3.1 available at
the Mingw-site now. They probably fix only those special Windows-target
features, not the generic host/target ones already in the sources, so one
may perhaps live without them, but who knows...

Want more information?  See the CrossGCC FAQ,
Want to unsubscribe? Send a note to

More information about the crossgcc mailing list