mirror of
https://github.com/reactos/CMake.git
synced 2024-11-24 20:19:53 +00:00
1c22fdf360
Upstream libuv commits: * node-v0.6.0~28 (linux: use ioctl(FIONBIO) to set O_NONBLOCK, saves a syscall, 2011-10-29) * v1.11.0~11 (unix: use async-signal safe functions between fork and exec, 2016-12-12) left an asymmetry in the way O_NONBLOCK is set and cleared. Normally ioctl/FIONBIO is used for both. However, uv_spawn uses fcntl/O_NONBLOCK to clear O_NONBLOCK between fork and exec. This fails on Linux/sparc64 where setting via ioctl/FIONBIO actually sets two bits (in O_NDELAY) that cause clearing via fcntl/O_NONBLOCK to be silently ignored (though clearing via ioctl/FIONBIO or fcntl/O_NDELAY works). Since CMake commit v3.11.0-rc1~117^2 (CTest: Re-implement test process handling using libuv, 2017-12-10), CTest uses libuv. On Linux/sparc64 child processes have been started with non-blocking output pipes. This can lead to write errors or lost output from children not prepared to deal with `EAGAIN` on stdout or stderr. Fix this for now by switching libuv back to fcntl/O_NONBLOCK to set and clear O_NONBLOCK when compiled on Linux/sparc64. LibUV-Issue: 1830 Fixes: #17941 |
||
---|---|---|
.. | ||
cmbzip2 | ||
cmcompress | ||
cmcurl | ||
cmexpat | ||
cmjsoncpp | ||
cmlibarchive | ||
cmliblzma | ||
cmlibrhash | ||
cmlibuv | ||
cmvssetup | ||
cmzlib | ||
Doxygen | ||
Git | ||
GitSetup | ||
IWYU | ||
KWIML | ||
Release | ||
Scripts | ||
Sphinx | ||
.clang-tidy | ||
.gitattributes | ||
.NoDartCoverage | ||
cm_bzlib.h | ||
cm_curl.h | ||
cm_expat.h | ||
cm_jsoncpp_reader.h | ||
cm_jsoncpp_value.h | ||
cm_jsoncpp_writer.h | ||
cm_kwiml.h | ||
cm_libarchive.h | ||
cm_lzma.h | ||
cm_rhash.h | ||
cm_uv.h | ||
cm_xmlrpc.h | ||
cm_zlib.h | ||
CMakeLists.txt | ||
cmThirdParty.h.in | ||
SetupForDevelopment.sh |