On Mon, 2009-02-23 at 10:35 -0600, Tory Bjorklund wrote: > I am looking to use a different compiler. I have the latest x86 mingw > compiler and am building standard x86 windows executables but I am not sure > what steps are necessary to build the CE code for my x86 target. Do I need > to rebuild the target platform SDK (generated from platform builder) using > mingw? Do I need to link to a mingw - w32api library rebuilt to target CE?
I'm not seeing any answers so I'll bite the bullet. Two fair warnings though : - I'm speculating a bit here - I'm taking you up on the word "simple" (actually in Eneko's question) My experience : - gcc and its friends are in very good shape * one aspect is good separation between build process and actual "business" logic * another aspect is portability (I mean the number of targets that just work) - picking up a new version of the compiler requires some hacking * this is not trivial, see recent exchanges on the mailing list * you may not need this though, just start with e.g. our current work and retarget it for x86-ce. - stay away from creating DLLs, exception handling, .. at least initially Direct answers to direct questions : - Do you need to rebuild the platform SDK ? * You may get away with DLL stubs like the ones we're using. This would be simpler than all other options. - Do you need to link a w32api library ? * If you mean e.g. a port of newlib, then the answer to my previous question is basically : I hope/think you can get by without that. In my opinion, there are three basic steps : 1. Grab our binutils, get them to work for x86-mingw32ce in addition to arm-mingw32ce. 2. Grab our gcc, get it to work for x86-mingw32ce (and use binutils from step 1). 3. Build a library (hope it's just the stubs). The issue with steps 2 and 3 is that they depend on each other, so the real process actually has four steps : 1. Grab our binutils, get them to work for x86-mingw32ce. 2. Grab our gcc, get the bootstrap build to work for x86-mingw32ce. 3. Build a library (hope it's just the stubs). 4. Get gcc to work fully. How to get started ? Grab our sources from current SVN. cd src/scripts edit build-mingw32ce.sh to change "arm-mingw32ce" to "x86-mingw32ce" run the script, fix problems send us mail when you have a problem send us mail if you don't :-) The first type of problem I expect you to find is that files like src/binutils/binutils/configure.in contain stuff like arm-wince-* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' but maybe not for the architecture you're trying. Or maybe there is such a set of lines, but they contain the wrong settings. Then that's where the fun begins. Some of the architecture specific stuff in gcc is hidden in directories like src/gcc/gcc/config/arm . The latter part of the directory would obviously be different for you. There's a src/gcc/gcc/config/i386 directory. Which directory to use, and which files in it, is configured in src/gcc/gcc/config.gcc . Also both that file and src/gcc/gcc/configure.ac mentions i?86*-*-* or i[34567]86-*-* which suggests that you could be making life easier by naming your target i686-mingw32ce (or so) instead of x86-mingw32ce . Please ask questions (via the list) at any time. Danny -- Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel