Repository navigation
node/deps/uv/src/uv-common.c fails to compile with current Xcode, needs libuv cherry-pick #63196
Copy link
Copy link
Closed
Labels
buildIssues and PRs related to Node.js builds or CI infrastructure.Issues and PRs related to Node.js builds or CI infrastructure.libuvIssues and PRs related to the libuv dependency or the uv binding.Issues and PRs related to the libuv dependency or the uv binding.
Description
Version
today's trunk
Platform
% uname -a
Darwin Mac 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:40 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6041 arm64
Subsystem
No response
What steps will reproduce the bug?
I hit this while building (using v8's node-ci repo):
% time make node
tools/gn-gen.py out/Release
icu_use_data_file = false
is_debug=false
symbol_level=0
is_component_build=false
node_use_node_code_cache=true
v8_imminent_deprecation_warnings=false
autoninja -C out/Release test_all
offline mode
ninja: Entering directory `out/Release'
[1947/5053] 15.17s F CC obj/node/deps/uv/uv/uv-common.o
FAILED: 7d32fd66-6ea4-4423-9cf3-d221c32b72a2 "./obj/node/deps/uv/uv/uv-common.o" CC obj/node/deps/uv/uv/uv-common.o
err: exit=1
../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF obj/node/deps/uv/uv/uv-common.o.d -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=3 -D__ARM_NEON__=1 -DCR_XCODE_BUILD=17C52 -DCR_CLANG_REVISION=\"llvmorg-23-init-10931-g20b6ec66-1\" -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=cb9c06560a6821f4d8272805df1bb4eb39ba9a2c -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBUILDING_UV_SHARED -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_DARWIN_USE_64_BIT_INODE=1 -D_DARWIN_UNLIMITED_SELECT=1 -DUSE_LIBCXX_MODULES -I../.. -Igen -I../../node/deps/uv/include -I../../node/deps/uv/src -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wgnu -Wno-gnu-anonymous-struct -Wno-gnu-conditional-omitted-operand -Wno-gnu-include-next -Wno-gnu-label-as-value -Wno-gnu-redeclared-enum -Wno-gnu-statement-expression -Wno-gnu-zero-variadic-macro-arguments -Wno-zero-length-array -Wthread-safety -Wunguarded-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type -Wno-thread-safety-reference-return -Wno-nontrivial-memcall -Wno-uninitialized-const-pointer -Wno-unused-but-set-global -Wshadow -Werror -fno-delete-null-pointer-checks -fno-strict-overflow -fno-ident -fno-math-errno -fno-strict-aliasing -fstack-protector -fcolor-diagnostics -fdiagnostics-show-inlining-chain -fmerge-all-constants -fcrash-diagnostics-dir=../clang-crashreports -fno-lifetime-dse -mllvm -instcombine-lower-dbg-declare=0 -mllvm -split-threshold-for-reg-with-hint=0 -ffp-contract=off -fcomplete-member-pointers --target=arm64-apple-macos -mno-outline -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -ffile-compilation-dir=. -no-canonical-prefixes -Xclang -fmodule-file-home-is-cwd -Xclang -fmodules-cache-path=/not_exist_dummy_dir -ftrivial-auto-var-init=pattern -O2 -fno-omit-frame-pointer -g0 -isysroot ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk -mmacos-version-min=11.0 -fsanitize=array-bounds -fsanitize-trap=array-bounds -fsanitize-ignore-for-ubsan-feature=array-bounds -Wno-unsafe-buffer-usage-in-static-sized-array -fsanitize=return -fsanitize-trap=return -fsanitize-ignore-for-ubsan-feature=return -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -fvisibility=default -std=c11 -Wno-deprecated-declarations -Wno-extra-semi -Wno-implicit-fallthrough -Wno-missing-braces -Wno-sign-compare -Wno-string-conversion -Wno-shadow -Wno-unreachable-code -Wno-unreachable-code-return -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-unused-function -Wno-unused-result -Wno-unused-variable -c ../../node/deps/uv/src/uv-common.c -o obj/node/deps/uv/uv/uv-common.o
build step: cc "./obj/node/deps/uv/uv/uv-common.o"
stderr:
../../node/deps/uv/src/uv-common.c:960:14: error: passing 'const char *' to parameter of type 'void *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
960 | uv__free(cpu_infos[i].model);
| ^~~~~~~~~~~~~~~~~~
../../node/deps/uv/src/uv-common.c:81:21: note: passing argument to parameter 'ptr' here
81 | void uv__free(void* ptr) {
| ^
1 error generated.
build failed
This is fixed in upstream uv here: libuv/libuv#5052 / libuv/libuv@a43e543
Node might want to cherry-pick that commit.
How often does it reproduce? Is there a required condition?
It's a build error, so every time.
What is the expected behavior? Why is that the expected behavior?
Should build.
What do you see instead?
See above.
Additional information
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
buildIssues and PRs related to Node.js builds or CI infrastructure.Issues and PRs related to Node.js builds or CI infrastructure.libuvIssues and PRs related to the libuv dependency or the uv binding.Issues and PRs related to the libuv dependency or the uv binding.
Activity
thisalihassan commentedon May 10, 2026
Opened #63222 cherry-picking libuv/libuv@a43e543
cc @nodejs/libuv
idabeck-cpu commentedon May 10, 2026
deps: cherry-pick libuv/libuv@a43e543
deps: cherry-pick libuv/libuv@a43e543
deps: cherry-pick libuv/libuv@a43e543
deps: cherry-pick libuv/libuv@a43e543
deps: cherry-pick libuv/libuv@a43e543
deps: cherry-pick libuv/libuv@a43e543
Merge upstream Node.js v24.18.1 into dotnet/main (#375)