Date: Wed, 12 Jun 2002 08:59:07 +0300 (WET) From: Andris Pavenis X-Sender: pavenis AT ieva06 To: Rob Kramer Cc: djgpp AT delorie DOT com Subject: Re: Small problem cross-building CVS DJGPP. In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 Precedence: bulk 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