This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Newbie - simple linux-> win 32 cross-compiler : build fails ?



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]