Commit Graph

95 Commits

Author SHA1 Message Date
Brad King
077a1d5769 libuv: win/spawn: optionally run executable paths with no file extension
Backport libuv commit `3f7191e5` (win/spawn: optionally run executable
paths with no file extension, 2024-02-05, v1.48.0~8) to add the
`UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME` option we now use.

Issue: #25450
2024-02-08 17:00:47 -05:00
Brad King
f02ac51150 libuv: Revert "win/spawn: run executables with no file extension"
This reverts commit fc6231bee5 (libuv: win/spawn: run executables with
no file extension, 2023-12-04, v3.28.0~9^2) to make room for the
corresponding fix from upstream libuv 1.48.

Record this as a merge from the last-imported upstream libuv snapshot
branch so that future `git blame` points to the upstream for the
original code instead of this commit.

Issue: #25450
2024-02-08 16:47:06 -05:00
Kyle Edwards
fc6231bee5 libuv: win/spawn: run executables with no file extension
Backport this commit from libuv PR 4241 to restore `execute_process()`
support for running executables on Windows with no file extension.

Fixes: #25450
2023-12-04 14:50:06 -05:00
Brad King
b37d9378de libuv: Revert "win/spawn: run executables with no file extension"
This reverts commit da9df7425a (libuv: win/spawn: run executables with
no file extension, 2023-11-29, v3.28.0-rc6~1^2~1).  It incorrectly
searched the `PATH` for extension-less command names.  Another fix will
be needed for the regression motivating it.

Record this as a merge from the last-imported upstream libuv snapshot
branch so that future `git blame` points to the upstream for the
original code instead of this commit.

Fixes: #25473
Issue: #25450
2023-12-04 14:48:46 -05:00
Kyle Edwards
ab561b86fb libuv: win: honor NoDefaultCurrentDirectoryInExePath env var
Backport commit 5e302730cd (win: honor NoDefaultCurrentDirectoryInExePath
env var, 2023-12-01) from libuv PR 4238.
2023-12-01 09:31:13 -05:00
Kyle Edwards
da9df7425a libuv: win/spawn: run executables with no file extension
Backport this commit from libuv PR 4241 to restore `execute_process()`
support for running executables on Windows with no file extension.

Fixes: #25450
2023-11-30 09:59:36 -05:00
Brad King
fe2ecf920f libuv: win,process: avoid kernel bug with starting Windows Store apps
Backport upstream libuv commit `93ca3f15` (win,process: avoid kernel bug
with starting Windows Store apps, 2023-09-27) from libuv PR 4152.

Fixes: #23029
Patch-by: Jameson Nash <vtjnash@gmail.com>
2023-09-28 09:34:11 -04:00
Kyle Edwards
d562e503aa libuv: Use SIGCHLD in bootstrap mode 2023-08-21 14:16:28 -04:00
Brad King
eee1dc10be libuv: Compile as C11 on all Solaris versions
Using `_XOPEN_SOURCE=600` on Solaris 5.10, as we do on Solaris 5.11+
already, allows the system headers to be included in C99 and C11 modes.
2023-08-18 16:13:21 -04:00
Brad King
d6b4f6dd97 libuv: Remove unused compatibility code for CMake < 3.9
We now require CMake 3.13 or higher anyway.
2023-08-18 16:09:43 -04:00
Kyle Edwards
5fb17a1410 libuv: win,spawn: allow %PATH% to be unset
Backport libuv commit `c97017dd` (win,spawn: allow `%PATH%` to be unset,
2023-08-14).

See https://github.com/libuv/libuv/pull/4116.
2023-08-18 15:53:32 -04:00
Clemens Wasser
e0eb97e923 libuv: Precompile common expensive headers 2023-06-22 18:11:45 +02:00
Brad King
b18eca763c libuv: Suppress clang-analyzer warnings 2023-05-22 16:51:16 -04:00
Brad King
23de1675fd libuv: Update CMake-internal buildsystem for 1.44.2 2022-09-27 09:50:38 -04:00
Brad King
ff82df301c Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2022-07-12 (0c1fa696)
2022-09-27 09:50:16 -04:00
Aaron Liu
24da80b70a Utilities: Suppress warnings in third-party code with IBMClang 2022-01-27 09:38:01 -05:00
Brad King
fc4a11a036 libuv: add cast to pass sockaddr_storage as sockaddr on windows
Tell the compiler the structs are layout-compatible.
2022-01-13 16:41:35 -05:00
Brad King
ea70fb3905 Merge branch 'upstream-libuv' into update-libuv
# By libuv upstream
* upstream-libuv:
  libuv 2022-01-13 (2fbfa035)
2022-01-13 15:46:20 -05:00
Brad King
51d26933fe libuv: Fix clang-analyzer deadcode.DeadStores warning on Linux 2021-11-17 06:41:49 -05:00
Brad King
f29bb586f0 libuv: Convert C++-style comment to C-style 2021-11-17 06:41:49 -05:00
Brad King
8e7bb62bd5 libuv: Update CMake-internal buildsystem 2021-11-17 06:41:49 -05:00
Brad King
0decc36fb1 libuv: Update uv__fs_copy_file_range signature in cmake-bootstrap.c 2021-11-17 06:41:48 -05:00
Brad King
74a05716a4 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2021-11-09 (0f696da5)
2021-11-17 06:40:02 -05:00
Brad King
65fb29fdfb libuv: Build unix tcp support during CMake bootstrap
Using the real `tcp.c` simplifies `cmake-bootstrap.c`, and its
implementation doesn't seem to require any of the platform-specific
definitions.  Also, later it will be needed for `uv_socketpair`.
2021-11-17 06:36:30 -05:00
makise-homura
e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
Divert LCC compiler as a new one, instead of treating it as GNU.

Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).

This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.

Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
2021-10-15 05:05:19 +03:00
Brad King
096450f808 libuv: Include BSD sys/cpuset.h only on platforms where we use it
Since commit 43d6e5a71f (libuv: misc: add function to get CPU affinity
mask size, 2017-09-06, v3.12.0-rc1~412^2~3) we include `<sys/cpuset.h>`
on several BSD platforms but only use it on FreeBSD.
2021-09-29 12:31:49 -04:00
Brad King
7d1f353a6f Merge topic 'libuv-mingw-arm'
1aba3a8367 libuv: Fix building with mingw toolchains for ARM/AArch64

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6354
2021-07-19 12:48:40 -04:00
Martin Storsjö
1aba3a8367 libuv: Fix building with mingw toolchains for ARM/AArch64
This is a backport of f9ad802fa5dd5afe6730f8e00cfdbf98f1d7a969
from the v1.x branch from upstream libuv:

    mingw: fix building for ARM/AArch64

    Don't use x86 inline assembly in these cases, but fall back to
    __sync_fetch_and_or, similar to _InterlockedOr8 in the MSVC case.

    This corresponds to what is done in src/unix/atomic-ops.h, where
    ARM/AArch64 cases end up implementing cmpxchgi with
    __sync_val_compare_and_swap.

    PR-URL: https://github.com/libuv/libuv/pull/3236
    Reviewed-By: Jameson Nash <vtjnash@gmail.com>
2021-07-15 10:59:07 -04:00
earnal
113cc4c684 libuv: Allow windows UNC path with forward slashes
Fix libuv issue 3159 in CMake while integration in upstream libuv is
pending.

Fixes: #22141
2021-07-12 11:24:29 -04:00
Orgad Shaneh
ddcd1469e8 MSYS: Add support for running under MSYS runtime environment
Detect MSYS as CYGWIN, with the required adaptations.
2021-04-26 14:27:34 -04:00
Brad King
408e6d6185 Utilities: Suppress warnings in third-party code with NVHPC 2021-04-20 11:44:25 -04:00
Brad King
87909f0600 Utilities: Suppress warnings in third-party code when using IntelLLVM 2021-01-28 09:07:00 -05:00
Elad Lahav
f9e950d4c5 libuv: Add support for building for QNX within CMake 2020-09-25 11:53:44 -04:00
Brad King
7a0506bafe libuv: Suppress conversion warning on Windows
Add a cast to avoid the conversion warning with minimal changes to
third-party code.
2020-09-23 12:32:54 -04:00
Brad King
2269ad6a0a libuv: Add fs_copy stub to cmake-bootstrap.c
This is now called by `uv__fs_sendfile` in `src/unix/fs.c` but we do not
need that feature during CMake bootstrap.
2020-09-23 12:28:48 -04:00
Brad King
e21325c2c6 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2020-09-22 (ed5b42d5)
2020-09-23 12:13:59 -04:00
Brad King
e771330dd4 bootstrap: Fix libuv target platform conditions on macOS
In commit 714ce72882 (bootstrap: Make libuv available during bootstrap,
2017-09-13, v3.10.0-rc1~106^2) we modified libuv to use POSIX interfaces
during bootstrap.  However, some code still expects `TARGET_OS_IPHONE`
to be defined on Apple platforms to either `0` or `1`.  In order to
offer this, include `<TargetConditionals.h>` on Apple platforms even
when bootstrapping.
2020-07-22 14:42:04 -04:00
Brad King
2628eb7460 libuv: Add proctitle and threadpool cleanup stubs to cmake-bootstrap.c
These are now called by `uv_library_shutdown` in `src/uv-common.c` but
on UNIX we do not compile those features during CMake bootstrap.
2020-04-29 08:50:11 -04:00
Brad King
efdd451f4b Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2020-04-29 (e7ebae26)
2020-04-29 08:21:02 -04:00
Brad King
630e501f8b libuv: Restore compilation on Apple i386 architecture
libuv upstream commit `2475296c` (build: make code compilable for iOS on
Xcode, 2020-01-18, v1.35.0~47) added a `defined(TARGET_OS_IPHONE)`
preprocessor condition, but `TARGET_OS_IPHONE` is always defined on
Apple to either 0 or 1.
2020-04-07 07:49:50 -04:00
Brad King
02a28f1d44 libuv: Restore compilation with XLClang 16.1 on AIX
libuv upstream commit `4a972bf0` (aix: Fix broken cmpxchgi() XL C++
specialization., 2019-09-06, v1.32.0~5) broke compilation with this
compiler.  According to

    https://www.ibm.com/support/knowledgecenter/SSGH3R_16.1.0/com.ibm.xlcpp161.aix.doc/migrate/migrate_to_xlclang.html

XLClang 16.1 for AIX does not support `__sync_val_compare_and_swap`.
The documentation suggests using C++11 atomic operations instead, but
this is C code.  For now fall back to the non-atomic equivalent used
before so we can at least compile.  Add a FIXME comment for this.
2020-04-07 07:47:47 -04:00
Brad King
722d6b4105 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2020-04-06 (d21f5aea)
2020-04-06 11:58:14 -04:00
Jesse Gorzinski
7d6bd14dca libuv: Add support for building on IBM i (OS400) 2020-03-06 14:24:01 -05:00
Earle Lowe
5ffb2dbff6 libuv: Add partial port to HP-UX
Port enough of libuv to HP-UX 11.31 ia64 with GCC 4.9.3 to work for
CMake.
2019-09-20 10:30:01 -04:00
Brad King
db4667cc72 libuv: fix compilation with macOS 10.10 SDK
The `F_BARRIERFSYNC` constant was not added until the macOS 10.11 SDK.
Hard-code its value instead.  This approach is backported from upstream
libuv PR 2334.
2019-06-19 06:57:38 -04:00
Kyle Edwards
cee57246ef libuv: Add uv__statx() stub to cmake-bootstrap.c 2019-06-18 07:46:08 -04:00
Brad King
69b139cfca Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2019-06-10 (ee24ce90)
2019-06-18 07:45:53 -04:00
Brad King
0d489fab19 libuv: fix atomic ops compilation with xlclang 2019-02-25 08:26:20 -05:00
Brad King
1699f5c231 Utilities: Suppress warnings in third-party code when using XLClang 2019-02-25 08:26:17 -05:00
Brad King
214fcefa52 Remove now-unused code once used for MIPSpro on IRIX
In commit beb991110d (Remove now-unused code once used on IRIX,
2019-01-11, v3.14.0-rc1~167^2) we removed remnants of IRIX support.
Also remove remnants of MIPSpro compiler support.
2019-02-21 11:12:51 -05:00