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

Status update and personal report (work on "rebootstrap")


Since the list is quite silent and there haven't been talks in public in
a while (outside IRC) about the status of the port, I decided to post

Hope that it's of any interest.

Firstly, the RISC-V page of the Debian wiki [1] covers the latest status
updates, all of them (or almost) generated by Karsten.

[1] https://wiki.debian.org/RISC-V

Basically, the patch set to support RISC-V in the Linux kernel has been
merged/accepted in "linux-next", which means (correct me if I am wrong)
that now Linus will decide if he merges it in the next "linux-by-Linus",
aka "the official" Linux repository.

After upstreaming GNU Binutils and then GCC a few months ago, Linux is
one of the two key missing pieces needed to properly start a Debian port
without too many hassles.  The other one is GNU libc, which should
happen after it's accepted in Linux.

So let's keep our fingers crossed and hope that, first, RISC-V support
is finally merged in the main Linux repository, and shortly after that,
that support is merged into glibc.

In the meantime, in the last few weeks/months I've been mostly working
in rebootstrap [2].

[2] https://wiki.debian.org/HelmutGrohne/rebootstrap

For those who don't know, it's a project led by Helmut Grohne which
attempts to make as many Debian packages cross-buildable as possible,
specially with the intent that new architectures can be fully
bootstrapped by cross-compiling from another one, or rebootstrapped if
there are important ABI changes or other reasons.

In essence, the goal is to make it possible to cross-build packages from
a minimal set of packages (roughly what "debootstrap" installs), with
the help of Multi-Arch.  So for every package, the idea is that one
pulls in the dependencies of the package to cross-build by using
e.g. packages from riscv64 that will install on an amd64 system, to
cross-build a package for riscv64, and this is automated to the point
that one starts from nothing but amd64 (and arch:all) packages.

Much work as been done, much is left to do [3].  In particular, there
are package like Perl that have historically proven to be problematic
for this purpose, and some maintainers that object to the fixes

[3] https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=rebootstrap;users=helmutg@debian.org

My contributions have been to ping and ask to apply, beating patches
into shape and sometimes NMUing packages (the result is a combination of
[4] and [5], probably the latter includes all of the former), 53 bugs in
total so far and about the same number of packages:

[4] https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=rebootstrap;users=helmutg@debian.org;correspondent=mafm@debian.org
[5] https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=rebootstrap;users=helmutg@debian.org;correspondent=manuel.montezelo@gmail.com

Not all cases did benefit RISC-V directly, some like those for the
package "gmp" were made to help other architectures.  However, I plan to
do the same for riscv64 when the time comes, so it helps to gain
experience and feedback from maintainers.

In any case, good support for cross-compilation, for packages avoiding
dependency cycles, to install packages that are needed only for arch:all
(like doc), etc., will benefit RISC-V and other architectures in the
future.  (And I like the goals of rebootstrap, even in the absence of

So if you are eager to contribute to RISC-V, perhaps you can take a look
to your packages to see if some of these bugs affect your package, or
otherwise you can join us in helping to make Debian more
rebootstrap-friendly by trying to fix all those bugs, or finding new
ones :-)

Manuel A. Fernandez Montecelo <manuel.montezelo@gmail.com>

Reply to: