www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/08/24/03:19:13

Sender: tim AT mxrelay DOT g-net DOT be
Message-ID: <3B85FEBA.9E2ECF7B@falconsoft.be>
Date: Fri, 24 Aug 2001 09:14:02 +0200
From: Tim Van Holder <tim DOT vanholder AT falconsoft DOT be>
Organization: Anubex N.V.
X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.16-3 i686)
X-Accept-Language: en, nl-BE, nl
MIME-Version: 1.0
To: Will Robinson <wsr23 AT stanford DOT edu>
CC: djgpp AT delorie DOT com
Subject: Re: linux->dos cross-compiler
References: <Pine DOT GSO DOT 4 DOT 31 DOT 0108231812130 DOT 28992-100000 AT elaine10 DOT Stanford DOT EDU>
Reply-To: djgpp AT delorie DOT com

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019