Mail Archives: djgpp/2001/08/24/03:19:13
Will Robinson wrote:
>
> Thanks so much for your detailed reply! I'm still running into some
> problems, and I thought if I told them to you you might have seen them
> before.
Please keep the CC: to djgpp AT delorie DOT com as well, so the rest of the
list/NG can benefit from this thread.
> BTW, what compiler are you running on your linux box? I'm using
> the version of 2.96 that comes with Mandrake 8. Did you use a newer
> version?
I used egcs-1.12 (as comes with RedHat 6.2) - but that shouldn't matter,
as the gcc you're building will be used for everything once the first
bootstrap stage is done.
> GCC is another story...
>
> Things seem to go fine up until the point where it tries to use the new
> compiler (xgcc) to build some libraries (libiberty, listdc++, etc).
Checking just now, it would seem I didn't actually get around to
building the
libraries; I just built the compilers. I guess I should have checked
before
saying everything was fine :-)
> There are some small things that I'm fudging around (undefined PATH_MAX,
> etc), but the current showstopper comes when trying to build libstdc++-v3
The PATH_MAX thing is due to gcc using its own limits.h, shadowing
djgpp's
one. Adding an '#include_next "limits.h"' to that file helps.
> with the cross-compiler (happens while running "make" from the djbuild
> dir):
>
> make[3]: Entering directory
> /tmp/ccz2HiVi.s: Assembler messages:
> /tmp/ccz2HiVi.s:468: Error: Rest of line ignored. First ignored character
> is `<'.
>
> Looks like the compiler is generating bogus assembler.
Yup. Actually, I can't currently get this far, as binutils 2.11 had a
serious bug with DJGPP (an assertion failure in the assembler). That's
probably why I didn't build any of the libs.
> The above was while running "make" in the djbuild directory.
>
> I also tried following your instructions, and running "make bootstrap".
> From what happened there, it looks like the first stage gets built
> correctly, but then the xgcc compiler doesn't know where to look for
> system includes. I was very careful with the --target and --prefix
> switches when I ran configure...is there anything else to do? Here's the
Yes, but my penny just dropped: a bootstrap uses the native compiler to
build gcc, and then uses that gcc to build gcc again. But since it's a
cross-compiler, that second pass would generate a DJGPP compiler instead
of a native one. SO a bootstrap isn't called for.
However, the compiles _should_ work, I think. Try running
echo >foo.c
stage1/xgcc -Bstage1/ -B/opt/djgpp/i586-pc-msdosdjgpp/bin/ -v -c foo.c
That should tell you the include path used; it'll probably say something
like. So it should be able to find djcrx's include files.
ignoring nonexistent directory
"/opt/gcc3/i586-pc-msdosdjgpp/sys-include"
#include "..." search starts here:
#include <...> search starts here:
/opt/gcc3/lib/gcc-lib/i586-pc-msdosdjgpp/3.0.1/include
/opt/gcc3/i586-pc-msdosdjgpp/include
I can't help you any more than this at the moment. I'll try to get the
latest CVS binutils & gcc next week and try again. If I get this done,
I'll post the results.
- Raw text -