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

Reply via email to