Subject: bug#74217: Bootstrapping Zig with no Binary Blobs

From: Motiejus Jakštys <[email-masked]>
Date: Thu, 28 Nov 2024 22:12:53 +0200

On Thu, Nov 28, 2024 at 5:20 PM Hilton Chain <[email-masked]> wrote:
>
> On Thu, 28 Nov 2024 20:41:10 +0800,
> Motiejus Jakštys wrote:
> >
> > On Thu, Nov 28, 2024 at 1:08 PM Hilton Chain <[email-masked]> wrote:
> > >
> > > <...> together with the concern on generated files.
> >
> > Hi Hilton,
> >
> > The only remaining, to my knowledge, binary file is `abilists`, which,
> > once you have `zig` binary, can be generated this way:
> >
> > git clone https://github.com/ziglang/glibc-abi-tool; cd glibc-abi-tool
> > git checkout fc5d0a7046b76795e4219f8f168e118ec29fbc53
> > /path/to/zig-0.13/bin/zig run consolidate.zig
> > mv abilists /path/to/zig/lib/libc/glibc/abilist
> >
> > For 0.12.1:
> > rm -fr glibc/2.39
> > sed -i '133d' consolidate.zig
> > /path/to/zig-0.12.1/bin/zig run consolidate.zig
> > mv abilists /path/to/zig/lib/libc/glibc/abilist
> >
> > I wasn't able to generate it for 0.11, but perhaps it's not as
> > important, as I imagine there are very few people, if any, still
> > developing on 0.11. Since one needs abilists *only* to cross-compile
> > to non-guix glibc targets, it sounds like a vanishingly small use case
> > for Guix to support.
> >
> > Motiejus
>
> Thanks!  Then I'll keep abilists removed before we can reproduce one :)

Seems reproducible, at least on my machine. Let's start at the last
commit before 0.13.0 that updates abilists[1]:

commit 53137050f8718c923983878904f5467446d28ba5
Author: Andrew Kelley <[email-masked]>
Date:   2024-06-06T03:43:41+03:00

    glibc: update abilists file

    generated from ziglang/glibc-abi-tool commit
    fc5d0a7046b76795e4219f8f168e118ec29fbc53 which now contains glibc 2.39

 lib/libc/glibc/abilists | Bin 214842 -> 217016 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

sha256sum 0.13.0:lib/libc/glibc/abilists is the same as if I generate
abilists myself on fc5d0a7046b76795e4219f8f168e118ec29fbc53 using zig
0.13.0. I get a62c6860a5db1f575b385fd45357f2c841abc84387b8047ca0ebf98a44d1947e.

Great to see you progressing so quickly. Have fun with the remaining bits!

Motiejus

[1]: https://github.com/ziglang/zig/commit/53137050f8718c923983878904f5467446d28ba5