Mail Archives: djgpp/2002/06/12/02:00:41
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 -