Hi,

I skipped replying here earlier, because I felt like I would not add any
content. Stefano indicated that my impression was wrong. Hence replying
now.

On Thu, Oct 24, 2024 at 01:31:32AM +0200, Ben Hutchings wrote:
> On Sat, 2024-10-19 at 18:15 +0200, Helmut Grohne wrote:
> > Hi Bastian,
> > 
> > On Sat, Oct 19, 2024 at 03:35:21PM +0200, Bastian Blank wrote:
> [...]
> > 
> > > But now you can have a port without hand patched linux that is built in
> > > a non-standard way and relying on internal and unstable package API,
> > > just be talking and getting it added to the package first.
> > 
> > Fair enough. Please add arc, cksy, mipsr6el, sh3, sparc, and
> > musl-linux-any. Thanks in advance.

In retrospect, the use of irony was not the best of moves here as it did
not add clarity to a discussion that was already heated. I'm sorry about
that.

> We would need to know the multiarch triplet for csky.

Yes, exactly. Let me reiterate the reasons for why I prefer a different
solution here.

  * In general terms, the multiarch triplet is something that
    can change (and has changed) during the early phase of an
    architecture bootstrap.
  * When an architecture becomes available in toolchain packages, it is
    not clear whether it takes off. or1k very much looked like the next
    thing and now it is deleted. The story for tilegx is similar.
    Initially, riscv64 looked a lot like or1k. In not adding these to
    src:linux (and removing them later), we avoid a pile of unnecessary
    interaction. The excessive addition of architectures also interacts
    with #1081826.
  * It is very useful to locally add a new architecture and try a
    bootstrap to give feedback to upstreams as to what piece is missing.
    Not requiring src:linux to cooperate significantly speeds up this
    evaluation process.

I generally see src:linux as one of the later pieces relevant to
architecture cross bootstrap in the sense that while it is one of the
earliest packages needed for its headers, adding real support is often
delayed, because too many out-of-tree patches are required during the
initial bootstrap phase and thus everyone uses a self-built vendor
kernel there.

Automatically modifying src:linux is quite feasible. It has changed a
couple of times and now roughly looks like this:

    cat >debian/config.local/defines.toml >/dev/null <<EOF
    [[kernelarch]]
    name = '$kernel_arch'
      [[kernelarch.debianarch]]
      name = '$deb_arch'
    EOF
    ./debian/rules debian/rules.gen

This is quite mechanical and therein lies value. The difficulty now has
become that src:linux is the only package in the entire architecture
cross bootstrap that builds an architecture-dependent Arch:all package.
I have not yet found a good way to deal with this oxymoron.

Helmut

Reply via email to