Report 3 — Multiarch cross-t oolchains

Thibaut Girka <[email protected]>
Newsgroups gmane.linux.debian.soc-coordination,gmane.linux.debian.devel.embedded
Message-ID <20120730205657.GA28552@debian-thib>
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.


The issue of not building foreign packages (which are, unless working on a new arch,
cross-built versions of things already in the archive) when building a cross-compiler
still remains, as I still need to figure out a clean way to do it. If possible,
I would like to avoid building those libraries, not only the binary packages.


Likewise, the issue of automating the build process hasn't been resolved.
I'm contemplating the idea of making cross-compilers part of the normal
gcc build, but that's maybe not a great idea, since it would involve
a great deal of changes in gcc's packaging, it would significantly
increase build time (however, slower arches wouldn't provide many, if any
cross-compilers, so, only faster arches would be impacted, somehow limiting
the lag of slower arches), and mean any “supported” cross-compiler FTBFS
would mean a gcc FTBFS, which may or may not be a good thing.


So, to sum up the state of the project:
* Multi-arch cross-toolchains binaries can already be provided by a third-party
  for use on a Wheezy system for various arches (at least i386, amd64, armel
  and armhf), minus the C++ issue (#678623).

* 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.

* Even with the aforementionned issue resolved, those cross-toolchains can't,
  for various reasons, be built and managed by the software running the archive.
  This might not be fixed before the end of the GSoC (and it's too late for Wheezy
  anyway, so, that's not a priority).


Thibaut Girka.

[0]: http://wiki.debian.org/SummerOfCode2012/Projects#Multiarch_Cross-Toolchains
[1]: http://wiki.debian.org/ToolChain/Cross/DebConf12
signature.asc (application/pgp-signature, 836 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJQFvUZAAoJEOY0VNOn/l3WcAYP/2JkRk29LtT2svc8px9O7+bb
CILmpnosb8z0M0EH872g5XYDMUhGK8ME3eurQI4B+I11J0R0HRszkcigswz4pSVm
YH6figEDjZR1rpfa8LW7w92tWk2wCPmyMGoCNVuREPsBx9gmAOpLtNcKkYXRTWv1
OHVG3jN0+v7N2zsjEGP6skCdXJ5hMI4sz2rVcxK2hzl+d6KRPJ81RUm7W+Zy06oq
GzUdE2X0+rTdgLxmg9wE5H3pTlICYEVoU1nDF8mwBANu1pu+CL5uYW8MZxonmaVT
0hE0gwbkRDnD82dgVctaEyW9j/99+6MKXzzLSSHaCdBv9dIHBI8RdUHqnpaerR1x
BWW9OV4Jb2PADJRefjyw0YhDh5zRkGnFQPidl1njqaWPf10hPpJLJ9P/5QOpmHQ1
xYwBddVjiKYICeWT922Ady6CvaN3vOFm8MZpnEOzQYnf2EAPARzmvEHqUn8n7iEu
AOA7B6Fh2xAEybwcViFhfOyWBCMe4pzMg1BcRqJ+ld4ny/HkuXpFhcH3QtLvfZhH
qHGbEphfz35X1Ccr90ZiJSrWF9Ze/qqJ0ubETIxQ9RVR0B69wNQMhfNNNW1esSgF
UC4+QDXsqXkUpNnhZqIwefLLJP9HRQCBaxd6gFyPQnpu+B3F67gNGeQh8Jm5hZvV
OJ/1IKuLMURVqG0MHkOA
=t0Dk
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.