Subject: bug#36724: Unable to independently verify the new bootstrap binaries

From: Jan Nieuwenhuizen <[email-masked]>
Date: Fri, 19 Jul 2019 22:21:06 +0200

Mark H Weaver writes:

Hello Mark,

> I'd like to start compiling 'core-updates' on my machine, but first I
> wish to independently verify the new bootstrap binaries.  I'm running
> into difficulties with that.

Good that you are verifying this.  IIRC, Ludo' has verified all
bootstrap binaries that I built before we dared to trust them...but
maybe that's a bit thin?

> So, I then ran "./pre-inst-env guix build bootstrap-tarballs
> --system=i686-linux" from a git checkout at commit
> ef809e3ac036eccc5f9c9edd8fb661d14ae15f2f.

Yeah, that should do it.

> On my X200, that leads to an error while building glibc-mesboot-2.16.0:
>
> /gnu/store/c009pzqxp2id7ha3lpd0npy5l17ykk7x-gcc-mesboot1-4.7.4/bin/gcc  -I /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/nptl/sysdeps/pthread/bits -D BOOTSTRAP_GLIBC=1 -L /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0 -L /gnu/store/v6hsbc6nw7ghkyb84j5vddg1mi4iqs4g-glibc-mesboot0-2.2.5/lib rpc_sample.c -c -std=gnu99 -fgnu89-inline  -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wstrict-prototypes   -Wa,-mtune=i686      -D_RPC_THREAD_SAFE_ -I../include -I/tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc -I/tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build -I../nptl/sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386/i686 -I../nptl/sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux/x86 -I../sysdeps/unix/sysv/linux/x86 -I../sysdeps/unix/sysv/linux/i386/nptl -I../sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu/multiarch -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686/multiarch -I../nptl/sysdeps/i386/i686 -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/x86/fpu -I../nptl/sysdeps/i386 -I../sysdeps/i386 -I../sysdeps/x86 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic -I../nptl  -I.. -I../libio -I. -nostdinc -isystem /gnu/store/c009pzqxp2id7ha3lpd0npy5l17ykk7x-gcc-mesboot1-4.7.4/lib/gcc/i686-unknown-linux-gnu/4.7.4/include -isystem /gnu/store/c009pzqxp2id7ha3lpd0npy5l17ykk7x-gcc-mesboot1-4.7.4/lib/gcc/i686-unknown-linux-gnu/4.7.4/include-fixed -isystem /gnu/store/gzy29pvrplvjzvkyzxbws2awrjndfpwg-glibc-headers-mesboot-2.16.0/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h   -DNOT_IN_libc=1    -D_RPC_THREAD_SAFE_ -o /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc/rpc_sample.o -MD -MP -MF /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc/rpc_sample.o.dt -MT /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc/rpc_sample.o
> gcc   -D_RPC_THREAD_SAFE_ -D_GNU_SOURCE -DIS_IN_build -include /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/config.h rpc_main.c \
> 	-o /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc/cross-rpc_main.o -MMD -MP -MF /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc/cross-rpc_main.o.dt -MT /tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc/cross-rpc_main.o -c
> ^[[0mrpc_main.c:37:19: fatal ^[[0m^[[31merror^[[0m^[[1m^[[0m^[[1m:^[[0m^[[1m errno.h: No such file or directory
> ^[[0mcompilation terminated.
> make[2]: *** [/tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/build/sunrpc/cross-rpc_main.o] Error 1
> make[2]: Leaving directory `/tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0/sunrpc'
> make[1]: *** [sunrpc/others] Error 2
> make[1]: Leaving directory `/tmp/guix-build-glibc-mesboot-2.16.0.drv-0/glibc-2.16.0'
> make: *** [all] Error 2

Oh my, that's interesting.  You can imagine that I saw many similar
errors while developing this whole bootstrap chain.

I tried to rebuild the bootstrap binaries without using substitutes on
our small build farm, which succeeded.  Then I tried building
glibc-mesboot just now on my laptop and much to my relief I had no
problem, which makes it even more interesting.

Here's what I just did

--8<---------------cut here---------------start------------->8---
    git checkout -B seed-0.19 ef809e3ac0
    ./bootstrap; ./configure --localstatedir=/var --system=/etc
    make
    ./pre-inst-env guix gc --delete /gnu/store/sjssk8gzn0lh88hkylrgjmm5fnzlpf27-glibc-mesboot-2.16.0
    ./pre-inst-env guix build --system=i686-linux --no-build-hook --no-substitutes -e '(@@ (gnu packages commencement) glibc-mesboot)'
--8<---------------cut here---------------end--------------->8---

and I've put up my log file here

    http://lilypond.org/janneke/mes/d5zrg6bdqlqxzv2y7jcwmij6r8983x-glibc-mesboot-2.16.0.drv.bz2

if that's of any help.

> I'm unsure how to proceed.  Can someone please help me independently
> verify these binaries?

Yeah, I don't know...Do I dare to suggest you give it a retry?  I built
it on a x86_64 dell xps-13 9350.  Your X200 is also 64bits right?

Greetings, a puzzled janneke

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com