Commit Graph

34 Commits

Author SHA1 Message Date
Brad King c5428d8db2 libuv: disable process affinity during CMake bootstrap
Avoid depending on platform-specific pthread features during bootstrap.
2018-03-05 09:21:31 -05:00
Brad King 24de561a1a libuv: unix,win: add uv_spawn option to set child CPU affinity mask
Implement it on Linux, FreeBSD, and Windows for now, and fail with
UV_ENOTSUP on other platforms.

Backported from upstream libuv PR 1527, scheduled for inclusion
in libuv 2.0.
2018-03-05 09:21:31 -05:00
Brad King 43d6e5a71f libuv: misc: add function to get CPU affinity mask size
Implement it on Linux, FreeBSD, and Windows for now, and return
UV_ENOTSUP on other platforms.

Backported from upstream libuv PR 1527, scheduled for inclusion
in libuv 2.0.
2018-03-05 09:21:31 -05:00
Brad King 6db7b35236 libuv: Update build within CMake
Update our CMake build rules to account for upstream changes.
2018-01-19 13:03:12 -05:00
Brad King b58d48c15f Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2018-01-19 (63de1eca)
2018-01-19 13:03:04 -05:00
Brad King 4ffb0f8b45 libuv: unix: restart syscalls interrupted by our signal handler
BSD `signal(2)` semantics make some system calls (e.g. for `write`)
restartable when interrupted by a signal handler.  Use `SA_RESTART` to
enable these semantics everywhere that supports them.

This is required by C++ stream libraries that interpret `EINTR` as any
other error, set `badbit`, and stop writing.  I've observed this with
`libstdc++` during a `std::cout.flush()` call interrupted by `SIGCHLD`.
2018-01-08 12:55:00 -05:00
Brad King 714ce72882 bootstrap: Make libuv available during bootstrap
On UNIX, build only the parts of libuv we need for the filesystem,
process, and poll abstractions using the POSIX poll() backend.  This
avoids many platform-specific conditions.  On Windows, build all of
libuv; there are no conditional alternatives anyway.
2017-09-17 11:10:18 -04:00
Brad King a9eaefaa1e Build with libuv on Cygwin to enable server-mode
With our last update of libuv, Cygwin is now supported.
2017-05-28 09:05:57 -04:00
Brad King 478ce1c7b4 libuv: Update build within CMake
Update our CMake build rules to account for upstream changes.
2017-05-26 13:48:48 -04:00
Brad King 1ebb421bfc Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2017-05-25 (dc596109)
2017-05-26 13:33:41 -04:00
Brad King 223d92e0f9 libuv: Update build within CMake
Update our CMake build rules to account for upstream changes.
2017-05-16 07:52:56 -04:00
Brad King ed17516b31 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2017-05-09 (e11dcd43)

Fixes: #16878
2017-05-15 10:43:50 -04:00
Brad King 6b0bc43281 libuv: Compile as C 99 on Solaris 5.11
SunPro 5.13 and below do not compile as c99 by default.
2017-05-05 09:52:25 -04:00
Brad King b08d2d993c libuv: Compile as C 90 on Solaris 5.10 with SunPro 5.14 2017-05-05 09:52:24 -04:00
Brad King e4ac7c2b4f libuv: Compile as C 90 on Solaris 10 2017-02-28 09:03:12 -05:00
Brad King c9b3c5625a libuv: Link to 'rt' library on Solaris 10 to get semaphores 2017-02-26 10:48:26 -05:00
Brad King f06986926a libuv: Implement mkdtemp on Solaris 10 2017-02-26 10:48:26 -05:00
Brad King 5651257fff libuv: automatically skip ifaddrs on Solaris 10 2017-02-26 10:48:26 -05:00
Brad King 741b7621b3 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2017-02-21 (52ae8264)
2017-02-21 19:40:27 -05:00
Eric Berge b7f0b1240f libuv requires _XOPEN_SOURCE 600 on Solaris 11
This avoid build errors from the
    /usr/include/sys/feature_tests.h
include file which disallows setting XOpen
versions less than 6 when in C99 mode.
2016-12-21 22:11:28 -06:00
Brad King f9cab9e38d Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2016-09-27 (8221f9b3)
2016-09-29 14:19:51 -04:00
Brad King c6d83a15d8 libuv: Link with kvm on NetBSD and OpenBSD
We include the `kvm.h` header on these platforms and call kvm APIs.
Link with the library to ensure they are available.
2016-09-09 11:11:40 -04:00
Roger Leigh 6a497bb0a3 libuv: Link with kvm on FreeBSD
Add it unconditionally.  It is present in FreeBSD 11, 10 and 9.
2016-09-09 11:07:46 -04:00
Brad King 3825a56493 libuv: Simplify variable initializations to satisfy Clang scan-build
The Clang scan-build tool warns about assignments whose values are never
used, so initialize local variables at declaration instead.
2016-09-01 11:10:18 -04:00
Brad King 551d5aedbf libuv: Fix unused variable warning in uv_loop_close 2016-08-31 09:05:14 -04:00
Brad King f4f8074bec libuv: Avoid including macOS CoreServices header globally
We only need the availability macros in `unix/internal.h`.  We already
include CoreServices where needed in implementation files.
2016-08-31 09:05:13 -04:00
Brad King a63aaaed05 libuv: Always include our own header first 2016-08-31 09:05:13 -04:00
Brad King 9130b53a5e libuv: Conditionally declare Windows APIs for VS 2008 and below 2016-08-31 09:05:13 -04:00
Brad King b52afa4655 libuv: Fix anonymous union syntax 2016-08-31 09:05:13 -04:00
Brad King 05dbc204cd libuv: Fix Windows API function typedef syntax 2016-08-31 09:05:12 -04:00
Brad King 75139374f0 libuv: Install LICENSE file with CMake documentation
When we install using the bundled libuv source, notify users of its
license terms.
2016-08-31 09:05:12 -04:00
Brad King 95dcc4e474 libuv: Disable warnings to avoid changing 3rd party code
Add '-w' or equivalent flag on compilers supporting it.
Tell MSVC to use its lowest warning level inside libuv sources.
2016-08-31 09:05:12 -04:00
Brad King 13b7e7587d libuv: Build the library within CMake
Take logic from upstream `Makefile.am` and `configure.ac` to build libuv
sources.

Update `uv.h` to include KWSys Large File Support configuration so that
consistent stream libraries are used (on AIX with XL).

Add a `cm_uv.h` header to include the CMake-provided copy of the `uv.h`
header from CMake sources.
2016-08-31 09:02:19 -04:00
Brad King d96416fe48 Merge branch 'upstream-libuv' into import-libuv
* upstream-libuv:
  libuv 2016-08-30 (897738b1)
2016-08-31 09:01:07 -04:00