On Monday 13 June 2011, Eric Blake wrote: > > Not possible to portably sniff out closed fds; quoting the autoconf manual: > > > Don't rely on duplicating a closed file descriptor to cause an > > error. With Solaris @command{/bin/sh}, when the redirection fails, the > > output goes to the original file descriptor. > Do the shells with the close-on-exec issue also suffer of the issue with closed fds you've reported? If not, the following could be enough to solve our situation without having to change automake:
if (exec 3>&-; exec 4>&3) >/dev/null 2>&1; then # Cannot determine whether a file descriptor is closed, fall back # to inferior hack. if test 2 -ne "$stderr_fileno_" && test ! -t "$stderr_fileno_"; then eval "exec $stderr_fileno_>&2" # Or is `stderr_fileno_=2' enough? fi else if (exec 3>&9) >/dev/null 2>&1; then : else eval "exec $stderr_fileno_>&2" # Or is `stderr_fileno_=2' enough? fi fi Regards, Stefano