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’.

Reply via email to