Embedded Linux's compelling advantage over other Embedded OS's is that your development host and target are the same. While you could theoretically develop your embedded Linux target system software on any host OS, Linux is the only sensible choice. Even Cygwin/UWIN is likely to waste more of your time.
Using a PowerPC
based development host platform makes life easier, since the same binaries will run on your host and target. However, if your choice of host platform is restricted to non-PowerPC, cross compiling adds some minor inconvenience, primarily in finding or building your own toolset.
You can take binaries from a standard PowerPC
-based G4 Macintosh Linux distribution and run them unmodified on a PowerPC
embedded system provided:
- The binaries are dynamically linked.
- You use the modified dynamic runtime glibc C library, but compiled with :-mhard-float.:
- You include the floatingpoint math emulator in the kernel for processors such as the 8xx series that lack a real floating point unit.
Note that for floating-point intensive applications this will invoke a performance penalty over re-compiling all the binaries and libraries; but recompiling is
what you're trying to avoid, right?
Also note that standard Macintosh binaries won't work with the runtime library in the HardHat?
distribution on 8xx processors, because they've been compiled with to give optimum performance. In this case just use the equivalent Hard Hat binaries instead.
There is a mini-howto intended for developers who wish to build kernels and/or application on a Linux/x86 platform targeted for a Linux/PPC platform. Often this is desirable if one has a faster x86 host system or the target environment is not practical to host a development environment http://penguinppc.org/embedded/cross-compiling/
Wolfgang Denk also has put together a document and scripts to build a PPC Cross
Development Kit for MPC8xx CPUs
. His objective was to build the cross development tools to compile code for (embedded) PowerPC
systems using Linux on an Intel PC. The documents and scripts can be found at http://www.denx.de/cdk-en.html