Skip to content

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

Merge request reports

Loading