l...@gnu.org (Ludovic Courtès) skribis: > I think I got it. First, note that: > > $ guix build guile-bootstrap > /gnu/store/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0 > $ cat > /gnu/store/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0/bin/guile > #!/gnu/store/gvwf71vddp8c1d7ydqg02p43mgdjrx6s-bash > export > GUILE_SYSTEM_PATH=/gnu/store/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0/share/guile/2.0 > export > GUILE_SYSTEM_COMPILED_PATH=/gnu/store/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0/lib/guile/2.0/ccache > exec -a "$0" > /gnu/store/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0/bin/.guile-real > "$@" > > So: > >> [pid 32626] >> execve("/home/dave/Code/guix/test-tmp/store/w8fsskwxr793yq6w3368x5k1p07syi3h-guile-bootstrap-2.0/bin/guile", >> ["guile", "-c", "(exit 42)"], [/* 6 vars */]) = -1 ENOEXEC (Exec format >> error) >> [pid 32626] >> execve("/gnu/store/sybvv7vqvqqmijpn2ql1p6yk61cr5y3k-bash-static-4.3.39/bin/bash", >> ["/gnu/store/sybvv7vqvqqmijpn2ql1p"..., >> "/home/dave/Code/guix/test-tmp/st"..., "-c", "(exit 42)"], [/* 6 vars */]) = >> -1 ENOENT (No such file or directory) >> [pid 32626] write(2, "In execvp of guile: No such file"..., 46In execvp of >> guile: No such file or directory >> ) = 46 > > The first ‘execve’ fails.
As discussed on IRC, this turned out to be due to the fact that the Bash in Guile’s shebang was zero-sized. This happened because the ‘mount-file-system’ procedure would truncate that file, because the test store happens to be in $HOME, which was already bind-mounted. Commit 78981bb fixes it. Ludo’.