Hi all, When running ./configure (or even just ./configure --help), an execve() syscall is done to execute what seems to be a shell command.
Usually the first argument to execve() is something like "/bin/sed" or "/usr/bin/gawk", but in this case it is: "if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1\nthen :\n emulate sh\n NULLCMD=:\n # Pre-4.2 versions of Zsh do word splitting on ${1+\"$@\"}, which\n # is contrary to our usage. Disable this feature.\n alias -g '${1+\"$@\"}'='\"$@\"'\n setopt NO_GLOB_SUBST\nelse\n case `(set -o) 2>/dev/null` in #(\n *posix*) :\n set -o posix ;; #(\n *) :\n ;;\nesac\nfi\nas_fn_return () { (exit $1); }\nas_fn_success () { as_fn_return 0; }\nas_fn_failure () { as_fn_return 1; }\nas_fn_ret_success () { return 0; }\nas_fn_ret_failure () { return 1; }\n\nexitcode=0\nas_fn_success || { exitcode=1; echo as_fn_success failed.; }\nas_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }\nas_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }\nas_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }\nif ( set x; as_fn_ret_success y && test x = \"$1\" )\nthen :\n\nelse\n exitcode=1; echo positional parameters were not saved.\nfi\ntest x$exitcode = x0 || exit 1\ntest -x / || exit 1" That doesn't look like a filename you'd want to try to execute, so this is probably a bug. Steps to reproduce ------------------ On a modern GNU/Linux system, with 'strace' installed, unpack any configure-based package, e.g. sed-4.8.tar.xz. Then, from a build directory, run: $ strace -f -o syscalls.log -e trace=execve -e signal=none ../sed-4.8/configure --help This will result in a short file (~ 100 lines) that shows, on my Debian system, 2 instances of this issue. My system shell /bin/sh is a symlink to /bin/dash, as usual on Debian. This may not be an autoconf problem at all, perhaps it's a dash problem. (But even if it is, configure, by its nature, should probably work around it). Hope this helps, kind regards, Sidney Cadot