Subject: bug#31777: guile-2.2 FTCBFS for mipsel: In procedure load-thunk-from-memory: No such file or directory

From: Mark H Weaver <[email-masked]>
Date: Mon, 11 Jun 2018 11:20:12 -0400

Hi Rob,

Rob Browning <[email-masked]> writes:

> [If possible, please preserve the 900203-forwarded address in replies]
>
> We're currently unable to cross-build guile 2.2 on all of the debian
> release architectures, which is important given that through make, etc.,
> guile's now part of the core bootstrap set for new architectures.
>
> You can see additional information here
>
>   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900203

Thanks.  I was able to reproduce the problem by running:

  ./meta/build-env guild compile --target=arm-unknown-linux-gnueabihf \
    -Wunbound-variable -Wmacro-use-before-definition -Warity-mismatch \
    -Wformat -L module --from=elisp \
    -o module/language/elisp/ARM-boot.go \
    module/language/elisp/boot.el

from my built git checkout of the stable-2.2 branch.

>   ERROR: In procedure load-thunk-from-memory:
>   In procedure load-thunk-from-memory: No such file or directory
>   Makefile:2267: recipe for target 'language/elisp/boot.go' failed

The "No such file or directory" was bogus, caused by bad error handling
in 'load-thunk-from-memory', and fixed in the following commits:

  https://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.2&id=deef64a739d868ed5fda4e55e387528c1b6c196b
  https://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.2&id=9fbb36725634d05c3e46de7619e2f6019fbeb6fe

With those fixes, the error message becomes:

  In procedure load-thunk-from-memory: ELF file does not have native word size

While cross-compiling our elisp compiler, there were attempts to load
object code built for the target machine into the Guile process running
on the build machine.

I just pushed commit bff75635e5ed08de63b02c661cf65f2e1b28c995 to the
stable-2.2 branch, which together with the earlier commit
988aa29238fca862c7e2cb55f15762a69b4c16ce allows me to successfully
cross-compile language/elisp/boot.el using the above command.

Would you like to try cherry-picking these commits and see if they fix
the problem for you?

  https://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.2&id=988aa29238fca862c7e2cb55f15762a69b4c16ce
  https://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.2&id=bff75635e5ed08de63b02c661cf65f2e1b28c995

     Thanks,
       Mark