On 2012-06-28 05:17, Goswin von Brederlow wrote:
> Wookey <firstname.lastname@example.org> writes:
>> 1) Some of the packages that cross-build-essential depends on
>> packages) are not yet in the archive, and won't be in wheezy. That
>> means that these packages will not be installable and thus will not
>> migrate from unstable until the cross-compiler packages do arrive.
>> That seems like a very good reason to keep cross-build-essential as a
>> separate source package for now, available from emdebian.org, along
>> with the toolchains. Anyone disagree?
> I wonder what the difference is between cross-build-essential and
> build-essential in terms of packages and wether we need a seperate
> package at all.
> Say I want to have the build-essential for i386 installed on amd64.
> I could install build-essential:i386, replacing gcc/g++:amd64 with
> gcc/g++:i386. Wouldn't that give me everything needed to cross-compile
> for i386?
In that case, yes, because you can run x86 code on an AMD64 or Intel 64
CPU. Though you would indeed be replacing gcc-4.7:amd64 etc. with
gcc-4.7:i386 etc. as the packages aren't co-installable with themselves.
But you can't install gcc-4.7:armhf (for example) on an AMD64 or Intel
64 system and expect to be able to compile anything. That's why we have
cross compiler packages , e.g. gcc-4.7-arm-linux-gnueabihf:amd64.
> That said wouldn't it make sense to have build-essential use
> Depends: g++:<arch> (>= <ver>) | g++-cross-<arch> (>= <ver>)
> Since build-essential is architecture any it already pulls in the
> foreign libraries needed for that arch. Only difference would be that
> since g++:<foreign> conflicts with the g++:<native> frontends would
> choose g++-cross-<arch> instead.
The idea is that a user (or sbuild >= 0.63.0) can install
crossbuild-essential-<target> and have cross compilers etc. for a target
architecture pulled in automatically. Installing the build-essential
binary package doesn't do this, nor should it.
To this end, the crossbuild-essential-<target> packages  depend on
(among other things like dpkg-cross and pkg-config-<triplet>)
gcc-4.7-<triplet> | c-compiler-<triplet> and g++-4.7-<triplet> |
c++-compiler-<triplet>. (Note that the "-4.7" is temporary and should
be removed once cross compiler metapackages exist .)
P. J. McDermott (_/@\_) ,--.
http://www.pehjota.net/ o < o o > / oo \
http://www.pehjota.net/contact.html o \ `-/ | <> |.
o o o "~v /_\--/_/