[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cross-build-essential

On Sat, 21 Jan 2012 20:37:58 +0800
Paul Wise <pabs@debian.org> wrote:

> On Thu, Jan 19, 2012 at 8:10 PM, Wookey wrote:
> > Currently on Debian you'll need to have made the emdebian repositories
> > available because otherwise you won't find any cross-compilers, but
> > hopefully we'll have them in the main archive in the not-too distant.
> Whats the status/blockers for getting these into Debian main?

Hector has more details but it's about just how to create the
cross-compilers themselves. It's the same source, built in a different
way - so the cross compiler package would need to build depend on the
relevant source package. There's also the problem of exactly how to
install the foreign architecture libgcc1 cross binary and other packages
needed for the compiler (during the build and runtime).

$ dpkg -s g++-4.4-arm-linux-gnueabi|grep Depends
Depends: gcc-4.4-arm-linux-gnueabi-base (= 4.4.5-8),
gcc-4.4-arm-linux-gnueabi (= 4.4.5-8), libstdc++6-4.4-dev-armel-cross
(= 4.4.5-8), libc6 (>= 2.11), libgmp3c2, libmpfr4

$ dpkg -s gcc-4.4-arm-linux-gnueabi|grep Depends
Depends: gcc-4.4-arm-linux-gnueabi-base (= 4.4.5-8),
cpp-4.4-arm-linux-gnueabi (= 4.4.5-8), binutils-arm-linux-gnueabi (>=
2.20.1-15~), libgcc1-armel-cross (>= 1:4.4.5-8), libgomp1-armel-cross
(>= 4.4.5-8), libc6 (>= 2.11)

$ dpkg -s cpp-4.4-arm-linux-gnueabi|grep Depends
Depends: gcc-4.4-arm-linux-gnueabi-base (= 4.4.5-8), libc6 (>= 2.11),
libgmp3c2, libmpfr4

$ dpkg -s binutils-arm-linux-gnueabi|grep Depends
Depends: binutils, libc6 (>= 2.11), zlib1g (>= 1:1.1.4)

The cross-dependency resolution is yet another feature of Debian which
is waiting for MultiArch...

The cross compilers we want in Debian won't do things like depend on
libgcc1-armel-cross but instead on libgcc1 [armel]. This is one of the
situations to which Raphael referred in another thread as "unneeded" -
i386/amd64 packages depending directly on armel packages. i.e.
cross-architecture multiarch dependencies. It is going to have to be
solved to get cross-compilers into Debian. It's probably going to have
to be solved to make Multiarch work with cross-building in the first

One final question is the combination of cross-compilers to support -
in particular IIRC there are particular problems with biarch
architectures like sparc. There are a lot of problems trying to support
too many cross-compiler target architectures.

May be best to start with armel+armhf and wait until someone else steps
up to help with mips|mipsel.

> I would dearly like to be able to compile ARM stuff elsewhere than on
> my phone since it is a bit slow ;)

0: get a faster phone :-)

1: use the Emdebian toolchains for Squeeze in a chroot.

2: get a second armel board with a faster processor...


Neil Williams

Attachment: pgp8sivEAfI65.pgp
Description: PGP signature

Reply to: