Hi! Andreas Enge <andr...@enge.fr> skribis:
> On Tue, Sep 13, 2016 at 02:45:40PM +0200, Ludovic Courtès wrote: >> You need a mips64el machine to run: >> ./pre-inst-env guix build -e '(@@ (gnu packages commencement) >> binutils-boot0)' > > I just did this (together with the paramater "-K"!), but the problem is > that I have no idea what is happening inside... > > The configure phase actually passes, the problem appears inside the build > phase, which itself launches a number of configure runs in subdirectories. > The last lines of the log are: > checking size of void *... 4 > /tmp/guix-build-binutils-cross-boot0-2.27.drv-0/binutils-2.27/ld/configure: > unhandled emulation > make[1]: *** [Makefile:7125: configure-ld] Error 1 > make[1]: Leaving directory > '/tmp/guix-build-binutils-cross-boot0-2.27.drv-0/binutils-2.27' > make: *** [Makefile:852: all] Error 2 > phase `build' failed after 1434.0 seconds > note: keeping build directory > `/tmp/guix-build-binutils-cross-boot0-2.27.drv-1' > builder for > `/gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv' > failed with exit code 1 > @ build-failed > /gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv - 1 > builder for > `/gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv' > failed with exit code 1 > guix build: error: build failed: build of > `/gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv' > failed > > I launched a ./configure by hand inside the ld subdirectory, after sourcing > the environment variables; it succeeds with > checking size of void *... 4 > configure: creating ./config.status > config.status: creating Makefile > config.status: creating po/Makefile.in > config.status: creating config.h > config.status: config.h is unchanged > config.status: executing depfiles commands > config.status: executing libtool commands > config.status: executing default-1 commands > config.status: creating po/POTFILES > config.status: creating po/Makefile > > So even during the build, configure runs until the last test. > However, it does not write ./config.status etc. > > The error message above contains > make[1]: *** [Makefile:7125: configure-ld] Error 1 > > Lines 7125 and following of the Makefile (one level up from the ld > subdirectory) are > configure-ld: > @r=`${PWD_COMMAND}`; export r; \ > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ > test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \ > $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \ > $(HOST_EXPORTS) \ > echo Configuring in $(HOST_SUBDIR)/ld; \ > cd "$(HOST_SUBDIR)/ld" || exit 1; \ > case $(srcdir) in \ > /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ > *) topdir=`echo $(HOST_SUBDIR)/ld/ | \ > sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ > esac; \ > module_srcdir=ld; \ > $(SHELL) \ > $$s/$$module_srcdir/configure \ > --srcdir=$${topdir}/$$module_srcdir \ > $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \ > --target=${target_alias} \ > || exit 1 > > So apparently the "exit 1" is triggered. > The beginning of the configure log looks like this: > Configuring in ./ld > configure: creating cache ./config.cache > checking build system type... mips64el-unknown-linux-gnu > checking host system type... mips64el-unknown-linux-gnu > checking target system type... mips64el-guix-linux-gnu > So it looks as if build_alias, host_alias and target_alias are set > correctly. > > Do you have any ideas of what to check? Could you check the values of _alias in the top-level Makefile? Alternately, could you edit ld/emulparams/elf32bmipn32-defs.sh and add ‘set’ just before the “unhandled emulation” line in order to see the value of the variables? I tried this on my x86_64 machine: ./configure -C --prefix=$HOME/soft --build=mips64el-unknown-linux-gnu --target=mips64el-guix-linux-gnu to mimic the configure flags shown at <https://hydra.gnu.org/build/1470440/nixlog/4/raw>. Unfortunately it doesn’t exhibit the problem. Thanks for looking into it! Ludo’.