emdebian logo
news emdebian projects support development

About Emdebian
 Contact Us



 Mailing List Archives


Help Emdebian
 Developers' Info

Valid HTML 4.01!


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

Deb/RPM packages of:

Cross Binutils
GCC Cross Compilers

Debian Setup

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:
    $ su

If you are upgrading from the first test

release, 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
    # apt-get update

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-powerpc
    Reading Package Lists... Done
    Building Dependency Tree... Done
    Setting up task-cross-powerpc (0.1) ...

    # apt-get install task-cross-arm
    Reading Package Lists... Done
    Building Dependency Tree... Done
    Setting up task-cross-arm (0.1) ...

Now stop being root:
    # exit

You can now start cross compiling.

RPM Setup

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 binutils-TARGET, cpp-TARGET and gcc-TARGET packages are the same packages described on the Binutils and GCC pages.

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.

See the emdebian contact page for information on contacting us.

Last Modified: Tue, Feb 3 17:50:09 UTC 2004
Copyright © 2000-2004 The Embedded Debian Project;
Emdebian is an offical subproject of Debian.