Embedded Debian Cross Development Environments
This is the home page for the Embedded Debian Cross Development Environments.
Embedded Debian packages are based on Debian packages, extended to support the needs of embedded systems developers. Embedded Debian packages are numbered according to the Debian package they are based on, with an 'e' and an additional digit appended. For instance, if the Debian revision is 3, the Embedded Debian revision sequence would be 3e1, 3e2, 3e3 ... (This is a change from the original plan, which was to append .1, .2, .3 etc to the Debian revision, but this would have conflicted with non-maintainer revisions).
Binutils and Gcc alone
If you have an RPM based system, jump down to the section "RPM Setup".
A basic knowledge of Debian package management is assumed. The following instructions likely need a bit of debugging to make them foolproof (or perhaps completely correct)-- anyone who would like to volunteer to do so is more than welcome :-)
NOTE: If you are upgrading from the first test release, you should remove the existing packages first.
NOTE: The libc6-TARGET-dev package from the first test release has been renamed libc6-dev-TARGET.
First of all, you need to be root:
If you are upgrading from the first testrelease, you are advised to remove the binutils-TARGET, cpp-TARGET, gcc-TARGET and libc6-TARGET-dev packages before proceeding. This will ensure that all required packages are upgraded to the current version.
WANTED: Someone to suggest the most elegant way of upgrading cross packages.
The next thing to do is to add the following entry to your /etc/apt/sources.list file. Anywhere in the file should do:
deb http://emdebian.sourceforge.net/emdebian unstable main
Next, do an
At this point you can install the cross
development environments for PowerPC and/or ARM Linux targets by typing
one or both of the following. Typical console output is shown:
# apt-get install task-cross-arm
Now stop being root:
You can now start cross compiling.
You will need the following RPMs:
NOTE: C++ support is likely broken for RPMS because there are required C++ header files not included in any of these packages. This is a known bug, and an update will be posted shortly.
TBD: More detailed instructions. Volunteers?
What's In There?
For each target TARGET, the
package is a virtual package with
as dependencies. Installing task-cross-TARGET will cause the other 'real' packages to be installed.
The libc6-dev-TARGET is a bit of magic. One might think that this package was produced by cross compiling the Glibc package, but it wasn't. The libc6 and libc6-dev binary packages for PowerPC and ARM were extracted, the files shuffled around a bit, and re-packaged as libc6-dev-TARGET. The libc6 and libc6-dev packages place files primarily in /lib, /usr/lib and /usr/include. The magic package libc6-dev-TARGET relocates these files to /usr/TARGET/lib and /usr/TARGET/include, where the cross Binutils and GCC for TARGET expect them to be.
NOTE: This 'magic' libc6-dev-TARGET is only a temporary measure. It exists because it was a Quick and Dirty [TM] way of building a package with the libraries and header files necessary for cross application development. This 'magic' version will be replaced in the future by a version built by cross compiler.
NOTE: The libc6-dev-TARGET package would not be appropriate for non-FPU. Future cross compiled versions of this package will have support for non-FPU.
Last Modified: Tue, Feb 3 17:50:09 UTC 2004
Copyright © 2000-2004 The Embedded Debian Project;
Emdebian is an offical subproject of Debian.