Subject: Re: bug#45165: binutils-mesboot0 fails at configure, cannot find lex

From: Jan Nieuwenhuizen <[email-masked]>
Date: Fri, 11 Dec 2020 07:33:36 +0100

Carl Dong writes:

Hello!

> Some more information from my debugging:
>
> 1. This error is reproducible even when I specify --cores=1, which is very strange
> 2. I have attached the full log to this email

Diffing this with the build log from

--8<---------------cut here---------------start------------->8---
guix build -e '(@@ (gnu packages commencement) binutils-mesboot0)' --log-file
wget https://ci.guix.gnu.org/log/jfa9b78rdniyw7qilsmw3bh02x8x68ly-binutils-mesboot0-2.14 -O jfa9b78rdniyw7qilsmw3bh02x8x68ly-binutils-mesboot0-2.14.gz
gunzip jfa9b78rdniyw7qilsmw3bh02x8x68ly-binutils-mesboot0-2.14.gz
diff -u jfa9b78rdniyw7qilsmw3bh02x8x68ly-binutils-mesboot0-2.14  2020-10-10-binutils-mesboot0.log
[..]

@@ -5538,16 +5537,16 @@
 checking for i386-unknown-linux-windres... no
 checking for windres... windres
 checking whether to enable maintainer-specific portions of Makefiles... no
-updating cache ./config.cache
+not updating unwritable cache ./config.cache
 creating ./config.status
 creating Makefile
[..]
@@ -5558,7 +5557,7 @@
 checking whether the C compiler (tcc -D __GLIBC_MINOR__=6 -g ) works... yes
 checking whether the C compiler (tcc -D __GLIBC_MINOR__=6 -g ) is a cross-compiler... no
 checking whether we are using GNU C... no
-checking for ranlib... (cached) true
+checking for ranlib... true
 checking for POSIXized ISC... no
 checking for ANSI C header files... yes
 checking for working const... yes
--8<---------------cut here---------------end--------------->8---

config values do not get cached (why is config.cache
unwritable?)...which seems to lead to a misdectected presence of lex:

--8<---------------cut here---------------start------------->8---
-@ build-succeeded /gnu/store/bz6xjpzlwf57m4bg3w5ihlq638sscx54-binutils-mesboot0-2.14.drv -
-checking for flex... (cached) /tmp/guix-build-binutils-mesboot0-2.14.drv-0/binutils-2.14/missing flex
-checking for flex... (cached) /tmp/guix-build-binutils-mesboot0-2.14.drv-0/binutils-2.14/missing flex
-checking for yywrap in -ll... (cached) no
-checking lex output file root... (cached) lex.yy
[..]
+checking for flex... no
+checking for lex... no
+./configure: line 4417: flex: command not found
+checking for flex... lex
+checking for yywrap in -ll... no
+checking lex output file root... ./configure: line 4505: lex: command not found
+configure: error: cannot find output from lex; giving up
+make: *** [configure-ld] Error 1
--8<---------------cut here---------------end--------------->8---

What is your build environment/version of guix you're using?  It looks
like some unreproducible bit is leaking in somewhere??

Greetings,
Janneke

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