execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors
Since !8665 (merged), the descriptors for the OUTPUT_FILE
and ERROR_FILE
leak to child processes.
With ExternalProject
+ INSTALL_COMMAND
+ LOG_INSTALL
, the logging
wrapper script leaks the log files' descriptors to the native build
tool. If they happen to match the make
job server's pipe fds, e.g.,
with GNU make
<= 4.3, then the build fails with an error like:
gmake[4]: *** read jobs pipe: Bad file descriptor. Stop.
Fixes: #26398 (closed)
Backport: release
Manual-backport: release-3.30
Manual-backport: release-3.29