[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
"configure" tries to execute what seems to be a shell command.
From: |
Sidney Cadot |
Subject: |
"configure" tries to execute what seems to be a shell command. |
Date: |
Sat, 5 Sep 2020 09:41:32 +0200 |
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
- "configure" tries to execute what seems to be a shell command.,
Sidney Cadot <=