Newbie - simple linux-> win 32 cross-compiler : build fails ?
Pieter Thysebaert
pieter.thysebaert@intec.rug.ac.be
Wed Sep 19 05:48:00 GMT 2001
Hi, in an attempt to create a linux-hosted linux to win32 cross-compiler
(which I presumed would be an "easy" cross-compiler to build), I've done the
following:
I downloaded binutils 2.11.2
and did ./configure --target=i386-mingw32 --prefix=/usr/local/cross2win32
make all
make install
That went without errors.
I also tried this with gcc-2.95.3 :
./configure --target=i386-mingw32 --prefix=/usr/local/cross2win32
However, in this case, make all fails with
make[2]: Leaving directory `/home/pthyseba/cross/gcc-2.95.3/gcc/intl'
rm -f tmplibgcc2.a
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3
_ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2
_floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi
_fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi
_fixunstfdi _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb _shtab
_clear_cache _trampoline __main _exit _ctors _pure; \
do \
echo ${name}; \
/home/pthyseba/cross/gcc-2.95.3/gcc/xgcc
-B/home/pthyseba/cross/gcc-2.95.3/gcc/
-B/usr/local/cross2win32/i386-mingw32/bin/
-I/usr/local/cross2win32/i386-mingw32/include -O2 -I./../winsup/include
-DCROSS_COMPILE -DIN_GCC -g -O2 -I./include -g1 -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED -I. -I. -I./config -I./../include -c -DL${name} \
./libgcc2.c -o ${name}.o; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
i386-mingw32-ar rc tmplibgcc2.a ${name}.o; \
rm -f ${name}.o; \
done
_muldi3
./libgcc2.c:41: stdlib.h: No such file or directory
./libgcc2.c:42: unistd.h: No such file or directory
make[1]: *** [libgcc2.a] Error 1
make[1]: Leaving directory `/home/pthyseba/cross/gcc-2.95.3/gcc'
make: *** [all-gcc] Error 2
I looked through the mailing list (this mailing list) archives and found out
about someone having the same errors on a linux-to-solaris build
So I added (solution found someoen else's response to the solaris thing)
--with-headers=/usr/include to the ./configure (of gcc 2.95.3)
That gets it a little further, but eventually it fails with ?
/home/pthyseba/cross/gcc-2.95.3/gcc/xgcc
-B/home/pthyseba/cross/gcc-2.95.3/gcc/
-B/usr/local/cross2win32/i386-mingw32/bin/
-I/usr/local/cross2win32/i386-mingw32/include -dumpspecs > tmp-specs
mv tmp-specs specs
if [ -f libgcc2.ready ] ; then \
true; \
else \
touch libgcc2.ready; \
fi
rm -f tmplibgcc1.a libgcc1.S
cp ./config/i386/cygwin.asm libgcc1.S
for name in _chkstk; \
do \
echo ${name}; \
/home/pthyseba/cross/gcc-2.95.3/gcc/xgcc
-B/home/pthyseba/cross/gcc-2.95.3/gcc/
-B/usr/local/cross2win32/i386-mingw32/bin/
-I/usr/local/cross2win32/i386-mingw32/include -O2 -I./../winsup/include
-DCROSS_COMPILE -DIN_GCC -g -O2 -I./include -g1 -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED -I. -I. -I./config -I./../include -c -DL${name}
libgcc1.S; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
mv libgcc1.o ${name}.o; \
i386-mingw32-ar rc tmplibgcc1.a ${name}.o; \
rm -f ${name}.o; \
done
_chkstk
rm -f libgcc1.S
mv tmplibgcc1.a libgcc1-asm.a
rm -f tmplibgcc2.a
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3
_ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2
_floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi
_fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi
_fixunstfdi _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb _shtab
_clear_cache _trampoline __main _exit _ctors _pure; \
do \
echo ${name}; \
/home/pthyseba/cross/gcc-2.95.3/gcc/xgcc
-B/home/pthyseba/cross/gcc-2.95.3/gcc/
-B/usr/local/cross2win32/i386-mingw32/bin/
-I/usr/local/cross2win32/i386-mingw32/include -O2 -I./../winsup/include
-DCROSS_COMPILE -DIN_GCC -g -O2 -I./include -g1 -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED -I. -I. -I./config -I./../include -c -DL${name} \
./libgcc2.c -o ${name}.o; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
i386-mingw32-ar rc tmplibgcc2.a ${name}.o; \
rm -f ${name}.o; \
done
_muldi3
_divdi3
_moddi3
_udivdi3
_umoddi3
_negdi2
_lshrdi3
_ashldi3
_ashrdi3
_ffsdi2
_udiv_w_sdiv
_udivmoddi4
_cmpdi2
_ucmpdi2
_floatdidf
_floatdisf
_fixunsdfsi
_fixunssfsi
_fixunsdfdi
_fixdfdi
_fixunssfdi
_fixsfdi
_fixxfdi
_fixunsxfdi
_floatdixf
_fixunsxfsi
_fixtfdi
_fixunstfdi
_floatditf
__gcc_bcmp
_varargs
__dummy
_eprintf
_bb
_shtab
_clear_cache
_trampoline
./libgcc2.c:2582: conflicting types for `getpagesize'
/usr/local/cross2win32/lib/gcc-lib/i386-mingw32/2.95.3/../../../../i386-mingw32/sys-include/unistd.h:813:
previous declaration of `getpagesize'
make[1]: *** [libgcc2.a] Error 1
Well that's what has stopped me for now.
Does anyone have a brilliant idea (or can point me to some howto that
explains what will make it work) ?
Pieter
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
More information about the crossgcc
mailing list