Thibaut Girka | 30 Jul 2012 22:56

Report 3 — Multiarch cross-toolchains

Hi,
Here is my fourth report on the “Multiarch cross-toolchains” project[0],
mentored by Héctor Orón and co-mentored by Marcin Juszkiewicz.

First, I have to admit I've been slacking a bit since the midterm evaluation.
I'm a bit late according to my original planning, as I should be in the middle
of figuring out what changes to wanna-build, buildd, sbuild, britney and such
are needed to support cross-arch deps in the archive, as well as working on a
way to automate building cross-compilers so it can get in the archive.

However, there has been a slight change in the planning: indeed, during
Debconf, the issue of libstdc++6-4.7-dev depending on g++-4.7 (#678623) was
discussed[1], and the proposed solution was to split gcc-4.7 in two packages,
and likewise for the other compilers such as gfortran or gobjc.
I've started to work on this, and I have a first patch waiting for reviews.
However, such a change would introduce file conflicts between the “old”
gcc-4.7/gcc-4.7-multilib packages and the new lib*gcc1-*-dev ones, meaning that
those packages must conflict with older versions of gcc-4.7/gcc-4.7-multilib.
Unlike my previous patches, it's useless and actually harmful to provide
third-party packages implementing this change until it gets in Debian.

I've also built amd64 (target) single-lib and multilib cross-compilers for i386.
While it may seem useless (gcc-multilib for i386 just does the same), it enabled
me to spot and fix a few errors I've made in an earlier patch, as well as a few
other issues that may affect many other arches too.
This means that things like sparc→i386 or sparc→amd64 cross-compilers (which
are things I've seen requests for a couple of time) should now build and work
properly, although I have no sparc hardware to confirm!
I plan on trying other arches (mips, mipsel, powerpc, sparc...) in the following days.

(Continue reading)

Jonathan Nieder | 30 Jul 2012 22:59
Picon

Re: Report 3 — Multiarch cross-toolchains

Thibaut Girka wrote:

> * However, it would involve some additional scripting/manual intervention
>   to prevent cross-built libs to be uploaded. This can be fixed before the end
>   of the GSoC, and it hopefully will be.

Is that even desirable?  If the cross-building rules are correct, a
cross-built library is just as functional as, say, a library built
"natively" on a qemu-emulated target machine with
DEB_BUILD_OPTIONS=nocheck, right?

I'd think that it would be enough to make sure the policies are clear
for human beings and people running autobuilders.

Thanks,
Jonathan

Thibaut Girka | 30 Jul 2012 23:14

Re: Report 3 — Multiarch cross-toolchains

On Mon, Jul 30, 2012 at 03:59:47PM -0500, Jonathan Nieder wrote:
> Thibaut Girka wrote:
> 
> > * However, it would involve some additional scripting/manual intervention
> >   to prevent cross-built libs to be uploaded. This can be fixed before the end
> >   of the GSoC, and it hopefully will be.
> 
> Is that even desirable?  If the cross-building rules are correct, a
> cross-built library is just as functional as, say, a library built
> "natively" on a qemu-emulated target machine with
> DEB_BUILD_OPTIONS=nocheck, right?

Yes, it should be. But we're talking about things like libgcc, being cross-built
as part of the cross-compiler build process. Such binary packages shouldn't
be built, or at least not by default: they should already be in the archive,
and the cross-compiler upload would be rejected.

> I'd think that it would be enough to make sure the policies are clear
> for human beings and people running autobuilders.
> 
> Thanks,
> Jonathan

Gmane