delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/06/12/02:00:41

Date: Wed, 12 Jun 2002 08:59:07 +0300 (WET)
From: Andris Pavenis <pavenis AT lanet DOT lv>
X-Sender: pavenis AT ieva06
To: Rob Kramer <robk AT starhub DOT net DOT sg>
Cc: djgpp AT delorie DOT com
Subject: Re: Small problem cross-building CVS DJGPP.
In-Reply-To: <ae6mr6$46a$1@violet.singnet.com.sg>
Message-ID: <Pine.A41.4.05.10206120852390.34616-100000@ieva06>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com


On Wed, 12 Jun 2002, Rob Kramer wrote:

> Hey there,
> 
> While trying to build the latest cvs djgpp on a linux machine, the following 
> error pops up:
> 
> make -C common e
> i586-pc-msdosdjgpp-ld -s  ../../../lib/crt0.o symify.o ../../../lib/libdbg.a 
> ../../../lib/libc.a -o ../../../bin/symify.exe 
> /opt/djgpp/lib/gcc-lib/i586-pc-msdosdjgpp/2.95.3/libgcc.a -T 
> /opt/djgpp/i586-pc-msdosdjgpp/lib/djgpp.djl
> ../../../lib/crt0.o: file not recognized: File format not recognized
> make[3]: *** [../../../bin/symify.exe] Error 1
> 
> It seems crt.o is the wrong format:
> 
> > file ../lib/crt0.o
> ../lib/crt0.o: ELF 32-bit LSB relocatable, Intel 80386, version 1, not 
> stripped
> 
> A bit more investigation shows cross-gcc invokes the native as instead of 
> cross-as:

Never met such problem (I have setup DJGPP CVS being built from cron task
at night when there are changes in CVS version). Try using 
gcc command line options -print-prog-name and -print-search-dirs to try to 
understand what happens. Here is what I'm getting from these commands:

bash-2.05a$ i586-pc-msdosdjgpp-gcc -print-prog-name=as
/usr/bin/i586-pc-msdosdjgpp-as

bash-2.05a$ i586-pc-msdosdjgpp-gcc -print-search-dirs
install: /usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/
programs:
=/usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/:/usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/:/usr/lib/gcc-lib/i586-pc-msdosdjgpp/:/usr/lib/gcc/i586-pc-msdosdjgpp/3.1/:/usr/lib/gcc/i586-pc-msdosdjgpp/:/usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/../../../../i586-pc-msdosdjgpp/bin/i586-pc-msdosdjgpp/3.1/:/usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/../../../../i586-pc-msdosdjgpp/bin/
libraries:
=/usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/:/usr/lib/gcc/i586-pc-msdosdjgpp/3.1/:/usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/../../../../i586-pc-msdosdjgpp/lib/i586-pc-msdosdjgpp/3.1/:/usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/../../../../i586-pc-msdosdjgpp/lib/

bash-2.05a$ i586-pc-msdosdjgpp-gcc -v
Reading specs from /usr/lib/gcc-lib/i586-pc-msdosdjgpp/3.1/specs
Configured with: ../gnu/gcc-3.1/configure --build=i586-pc-linux-gnu
--host=i586-pc-linux-gnu --target=i586-pc-msdosdjgpp
--with-as=/usr/bin/i586-pc-msdosdjgpp-as
--with-ld=/usr/bin/i586-pc-msdosdjgpp-ld --disable-nls --prefix=/usr
--enable-languages=c,c++,f77,objc --enable-version-specific-runtime-libs
Thread model: single
gcc version 3.1

> Gcc pipes through as, which should be i586-pc-msdosdjgpp-as.
> 
> Any idea why this is? Perhaps I didn't compile my cross-compiler correctly? 
> Normally, when I cross compile, I do it in an environment where 
> /opt/djgpp/bin is prepended to the path, so never noticed the as pipe 
> problem (and never use -pipe in the first place). But this can't be done 
> for building djgpp since it needs both compiler sets.

I hope You have compiled cross-binutils at the same prefix. I don't know
whether it matters, but having the same prefix for both cross-gcc and
cross-binutils surely will not harm

Andris




- Raw text -


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