Hi, I found a strange issue when running linux's bash scripts: If you try to exec from a shell script (ran from /compat/linux/bin/bash) into another, the exec'ed script path will be truncated by 8 bytes from the left (and will obviously result in a failure). Simple demonstrator, file 1 is "test_linux_exec_bash.sh": #!/usr/bin/env bash echo $0 exec ./test_linux_exec_bash_2.sh file 2 is "test_linux_exec_bash_2.sh": #!/usr/bin/env bash echo $0 Then the result: % /compat/linux/bin/bash ./test_linux_exec_bash.sh ./test_linux_exec_bash.sh /compat/linux/usr/bin/env: zhe/tmp/test_linux_exec_bash_2.sh: No such file or directory This will not happen if the 1st script try to exec into a binary (/compat/linux/usr/bin/env issue??) I've ran the demo through ktrace, but it revealed nothing really interesting: at some point after execing into env, the path is corrupted... valgrind can't be run on linux binaries, so I did not found anything on that front... At that point, I'm failing to see what is going wrong here. Any ideas? Thanks
Created attachment 180535 [details] Demo script, first file
Created attachment 180536 [details] Demo script, secon file
Created attachment 180537 [details] Trace file
This has been fixed in base r312699 and merged to stable/10 and 11 a few days later, so try updating to one of these. As a workaround you can replace '#! ...' with '#! /compat/linux/bin/bash'. The problem only exists in the 64 bit linux support so another possibility is to use the 32 bit version of linux_base-c6. To do that add DEFAULT_VERSIONS+=linux=c6 to /etc/make.conf and build/install emulators/linux_base-c6.
Ho thanks! Issue fixed by applying 312699 to src.