Vincent R. wrote: > On Wed, 21 Jan 2009 16:17:12 +0000, "Hywel B. Richards" > <hywel.richa...@gmail.com> wrote: > >> Hi, >> >> Is anyone out there compiling for WinCE/SH4? >> >> Is it possible to coax cegcc to build for this platform, or does there >> exist another gcc-based cross-compiling toolchain somewhere? >> >> Failing that, does anyone know how I might go about building for this >> platform using gcc? >> >> Many thanks in advance. >> >> Hywel. >> >> >> > Official maintainer Pedro or Danny could give you a better answer but if I > were you I would > download a vanilla binutils/gcc and make a diff with cegcc. > You would see that actually cegcc for instance add some support for > configure triplet and some files. > By analyzing this changes you should be able to add support for SH. > I think in 3-4 days you should be able to do it, for instance with arm you > have > wince-* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) > so you should look for sh*-*-pe) and replace it by sh*-*-pe | sh*-*-cegcc* > | sh*-*-mingw32ce*) > > Once you have modified everywhere you will use sh-mingw32ce or sh-cegcc in > build-script. > > > > > > > > > > > > > diff -urN binutils-2008-12-11/src/binutils/configure > binutils-cegcc-4.1.2/src/binutils/configure > --- binutils-2008-12-11/src/binutils/configure 2008-10-31 > 03:52:14.000000000 +0100 > +++ binutils-cegcc-4.1.2/src/binutils/configure 2008-12-16 > 21:14:14.268157000 +0100 > @@ -16099,7 +16099,7 @@ > BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' > BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' > ;; > - arm-wince-pe* | arm-*-wince) > + arm-wince-* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) > BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' > if test -z "$DLLTOOL_DEFAULT"; then > DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE" > diff -urN binutils-2008-12-11/src/binutils/configure.in > binutils-cegcc-4.1.2/src/binutils/configure.in > --- binutils-2008-12-11/src/binutils/configure.in 2008-10-31 > 03:52:14.000000000 +0100 > +++ binutils-cegcc-4.1.2/src/binutils/configure.in 2008-12-16 > 21:14:14.268157000 +0100 > @@ -275,7 +275,7 @@ > BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' > BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' > ;; > - arm-wince-pe* | arm-*-wince) > + arm-wince-* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) > BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' > if test -z "$DLLTOOL_DEFAULT"; then > DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE" > > diff -urN binutils-2008-12-11/src/configure.ac > binutils-cegcc-4.1.2/src/configure.ac > --- binutils-2008-12-11/src/configure.ac 2008-11-27 18:14:58.000000000 > +0100 > +++ binutils-cegcc-4.1.2/src/configure.ac 2008-12-16 21:14:14.268157000 > +0100 > @@ -537,7 +537,7 @@ > sh-*-linux*) > noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" > ;; > - sh*-*-pe|mips*-*-pe|*arm-wince-pe) > + sh*-*-pe|mips*-*-pe|*arm-wince-pe|arm*-*-mingw32ce*|arm*-*-cegcc*) > noconfigdirs="$noconfigdirs ${libgcj}" > noconfigdirs="$noconfigdirs target-examples" > noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr" > > diff -urN binutils-2008-12-11/src/gas/configure.tgt > binutils-cegcc-4.1.2/src/gas/configure.tgt > --- binutils-2008-12-11/src/gas/configure.tgt 2008-11-06 16:36:38.000000000 > +0100 > +++ binutils-cegcc-4.1.2/src/gas/configure.tgt 2008-12-16 > 21:14:14.268157000 +0100 > @@ -120,7 +120,8 @@ > arm-*-*n*bsd*) fmt=aout em=nbsd ;; > arm-*-nto*) fmt=elf ;; > arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;; > - arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;; > + arm-wince-* | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*) > + fmt=coff em=wince-pe ;; > arm-*-pe | thumb-*-pe) fmt=coff em=pe ;; > arm-*-riscix*) fmt=aout em=riscix ;; > > diff -urN binutils-2008-12-11/src/ld/configure.tgt > binutils-cegcc-4.1.2/src/ld/configure.tgt > --- binutils-2008-12-11/src/ld/configure.tgt 2008-11-17 21:11:48.000000000 > +0100 > +++ binutils-cegcc-4.1.2/src/ld/configure.tgt 2008-12-16 21:14:14.268157000 > +0100 > @@ -44,7 +44,8 @@ > arc-*-elf*) targ_emul=arcelf > ;; > arm-epoc-pe) targ_emul=arm_epoc_pe ; targ_extra_ofiles="deffilep.o > pe-dll.o" ;; > -arm-wince-pe | arm-*-wince) targ_emul=arm_wince_pe ; > targ_extra_ofiles="deffilep.o pe-dll.o" ;; > +arm-wince-* | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*) > + targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o > pe-dll.o" ;; > arm-*-pe) targ_emul=armpe ; targ_extra_ofiles="deffilep.o > pe-dll.o" ;; > arm-*-aout | armel-*-aout) targ_emul=armaoutl ;; > armeb-*-aout) targ_emul=armaoutb ;; > > Many thanks for your reply, Vincent. Unfortunately I have no experience in building gcc cross-compilers (including cegcc), so I need to ask another question.
Is it really as easy as substituting "sh4" for "arm" in the places implied by your diff? Or will it be a much bigger job than that (as that doesn't seem like 3-4 days effort!). And when you say 3-4 days, is that 3-4 days for a gcc guru, or 3-4 days for someone who needs to find out a lot more about how these toolchains work (like me!) ? And a final question: what do you think the likelihood of final success is? Is this something that can definitely be made to work, or is it something where there will be some final unsurmountable "gotchas" which mean that it could never be made to work (at least without a huge effort - e.g. like the problems on list reported for Windows Mobile 6.1 DLLs). Thanks again, Hywel. ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel