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

Bug#766708: supported GCC based cross compilers in Debian



While the rebootstrap project is a laudable goal, it is not part of
the Debian archive, and I doubt that I'm bound by any decision for
something not being part of the Debian archive. Nevertheless I'm
outlining below how to proceed with the rebootstrap.

Contrary to some claims in this thread there never was any commitment
by myself to support the ability to rely on dependencies on foreign
architectures within the Debian archive.  The person claiming this is
plain wrong.  Please use the standard way for cross building packages
for the rebootstrap project.  The rebootstrap project uses local
patches anyway, so in the short term it shouldn't be a problem to keep
track of the packaging.  In the long term, please use the supported
way to do staged builds and cross builds of the GCC packages.

Some background and history. The cross compiler support in the GCC
packaging dates back to 2000, but was largely unused in the Debian
archive, the biggest users were outside of Debian within the Emdebian
project. Prominent contributors for the cross build support were
Arthur Loiret (2007-2009, former Debian developer), Al Viro (2010,
external), Marcin Juszkiewicz (2010, 2011, external), and myself doing
integration, testing, and regular updates. There were probably many
more people involved, but not those contributing to this thread.  With
Marcin's patches it finally was possible to upload the cross compiler
packages to a distribution (Ubuntu).  All packaging changes for
binutils and GCC were available at the same time in the Debian
packaging.  This is the supported way to build a cross compiler in
Debian targeting a Debian architecture, and might be different from
Emdebian.

During a SoC project, support was added to target the runtime
libraries of a foreign architecture.  This project was never
communicated to the GCC maintainers before it started.  After the
project was accepted, I felt obliged to merge these patches for a
successful project, however this maybe was a mistake.  There was
absolutely no support by the mentor of this student to get these
patches reviewed and merged, these patches were neither tested for the
supported cross builds, nor for the native builds, and broke either
one of those or both.  A considerate amount of my time did go into
testing, fixing issues, and mentoring this student.  The mentor was no
help, neither understanding the existing binutils and GCC packaging,
nor willing to understand it, and still claiming that he is able to
"simplify" it.  This continues and the claims made in this issue that
pending patches were tested using the supported standalone builds are
plain wrong, and I don't trust "should work" claims anymore made in
new patch submissions for the unsupported cross build only.

There is nothing wrong with the supported standalone GCC cross build,
this configuration is able to do anything what the unsupported
configuration can do, however the latter is limited to Debian release
architectures, doesn't work for new architectures and doesn't work
with partial architectures.  There is a plethora of cross build
support scripts and designs, however there are not many people working
on these within Debian.  The choice for one method which is fit for
all use cases in Debian is the most maintainable one.  The past years
did prove that.  Pet projects should be maintained outside of Debian.

Reading the MultiArchCrossToolchain wiki page, one might get the
impression that the supported cross toolchain is not able to make use
of foreign architectures.  Whether this is impression is wanted or
not, it is wrong. It is supported. This method was used by myself to bootstrap two new architectures without having access to some
prebuilt binaries like it was the case for the Debian arm64 and
ppc64el bootstraps. It works.

This shouldn't be news to the contributors within this thread. I
mentioned this at least at the two last DebConf's, plus at Linaro
Connect's, and during the bootstrap sprint in July (Paris), but
apparently there seems to be temporary or permanent distortion of
perception.

Earlier this year, and last time at the bootstrap sprint in Paris,
Wookey committed to work on the cross-toolchain-base package (this
package isolates the bootstrap process and builds binary cross glibc
packages).  I hope other participants of the bootstrap sprint can
confirm that this commitment was made.  Then nothing happened.  I
can't remember that he said anything about a change of mind during
DebConf.  The big surprise then came when Wookey was uploading
initially six cross toolchain packages to unstable without saying
anything, without having worked on the cross-toolchain-base packages
at any time.  You may call this politics, or tactics, however I call
this sneaking in these packages, and his communication behaviour as
plain XXing (somebody mentioned I should just call this "not telling
the truth").  At this point I decided to remove the unsupported cross
build support, and then was accused on irc by Wookey "But ultimately I
don't think a cross-gcc maintiner can operate if the gcc maintainer is
actively working against him", and Helmut complaining "I would not
have forwarded this issue to the tc if Matthias had not combined the
bad timing with an absence of advance notice". But sorry I must have
missed the absence of advance notice for the cross build uploads and
the notice of dropping the work on the cross-toolchain-base packages.
This is a reaction, not an action.

It is odd the somebody first tells people that he is working on an
agreed solution, then silently stops working on that solution and then
claims that others can't work with him.  The conversation continued
together with Adam Conrad and Helmut Grohne how to provide the
cross-toolchain-base package in Debian, with Wookey ending "OK. I'll
take a look. I'm away this weekend though [...], so nothing much will
happen till sunday evg at earliest".  This was three weeks ago, and
nothing happened, except another new cross toolchain or two uploaded
to unstable.  So again, usual behaviour of this guy, same procedure as
every year.

In the meantime there is some progress from Adam Conrad, Dimitri
Ledkov and my side on the cross-toolchain-base package. Both Wookey
and Helmut Grohne were CCed on these efforts but they choose to stay
quiet.

At this point I don't think it will make sense to work together
with Wookey if he keeps behaving like this.  I'll submit another issue
to the CTTE about the cross toolchain packages in Debian, about
completeness and maintainership.

I don't mind getting help maintaining GCC in Debian, however this
shouldn't be limited leaving an odour signature in the packaging, but
involves interaction with upstream, test rebuilds, bug submissions,
bug triage and many more.  The involvement of Helmut Grohne and Wookey
with these tasks is very close to zero.

Matthias


Reply to: