> ../test/embedding/embedtest.cc:138:12: error: no viable conversion from 'node::EmbedderSnapshotData::Pointer' (aka 'unique_ptr<const EmbedderSnapshotData, DeleteSnapshotData>') to 'bool' > 138 | assert(snapshot); > | ^~~~~~~~ > /usr/include/c++/v1/__memory/unique_ptr.h:276:64: note: explicit conversion function is not a candidate > 276 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 explicit operator bool() const _NOEXCEPT { > | ^ > ../test/embedding/embedtest.cc:216:14: error: no viable conversion from 'node::EmbedderSnapshotData::Pointer' (aka 'unique_ptr<const EmbedderSnapshotData, DeleteSnapshotData>') to 'bool' > 216 | assert(snapshot); > | ^~~~~~~~ > /usr/include/c++/v1/__memory/unique_ptr.h:276:64: note: explicit conversion function is not a candidate > 276 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 explicit operator bool() const _NOEXCEPT { > | ^ > 2 errors generated.
I confirm the build failure, just hit it myself trying to build editors/vscode. FreeBSD 16-CURRENT 1600018 g22c1f5d0ec21 n286382 ports last commit f4d9b517af826b97ef5b06716f48b1af71b2740f
Probably running ahead of the locomotive, but here is the upstream issue: https://github.com/nodejs/node/issues/63807
Nice work, and yes, this effects multiple version of node, including node-26.
Probably fixed by https://cgit.freebsd.org/src/commit/include/assert.h?id=48d20fd1cf90179e778c6155900cbed2be140273 that modifies in-tree assert() macro.
(In reply to Alexey Shuvaev from comment #4) I can confirm that builds past that commit now succeed as expected.
(In reply to Dan Kotowski from comment #5) Yes, it builds fine now! I was really running ahead of locomotive with the upstreaming! I closed the github issue! This PR can also be closed as fixed now!
I am re-opening because I had the opposite experience where node builds fine before the patch and fails after. stable/15-034e21efa19d GENERIC amd64 4551 bytes /usr/include/assert.h node24 fails with the reported eror (24-24.16.0) stable/15-62551ae38bf2 GENERIC amd64 3181 bytes /usr/src/include/assert.h node24 builds fine (24-24.18.0) Maybe this is just noise due to something else but I wanted to report it anyway. Thanks, Per
(In reply to peo from comment #7) Re-open.
(In reply to peo from comment #7) Hi! My understanding is the "new" assert.h is for llvm21, and the "old" assert.h is for llvm19. Can you check, which version of, say, clang (clang --version) is installed in each case? BTW, I can not find the hashes 034e21efa19d and 62551ae38bf2 in the stable/15 branch. Are you on stable/15 or releng/15.x branch? And, probably the first question, are your build failures reproducible?
I have two identical HP Z6, one at work and one at home, trying to keep them as close as possible in setup. On this round the updates going from 14-STABLE to 15-STABLE happened to fall in between the assert.h update. Because the update ran ok on the first box (62551ae38bf2) and not on the second (034e21efa19d) I simply reverted the failing src to the working. Base system (GENERIC) and all ports are updated from src. Hence I cannot test for the failure now as I need both for work, but to answer your questions, yes, it was reproducible and it is 15-STABLE: FreeBSD 15.1-STABLE stable/15-62551ae38bf2 GENERIC amd64 1501501 clang --version FreeBSD clang version 21.1.8 (https://github.com/llvm/llvm-project.git llvmorg-21.1.8-0-g2078da43e25a) Target: x86_64-unknown-freebsd15.1 Thread model: posix InstalledDir: /usr/bin I am sorry I cannot test anymore but decided to buy another machine for test cases so I can help more in the future. Thanks, Per
I'm hitting this failure on a pretty recent version of 15-STABLE/amd64, updated just yesterday. # uname -a FreeBSD stormbringer 15.1-STABLE FreeBSD 15.1-STABLE #0 stable/15-n284336-034e21efa19d: Thu Jul 2 09:26:30 NZST 2026 root@stormbringer:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 And yes, the build failures are reproducible. From my synth-logs: ... ../test/embedding/embedtest.cc:138:12: error: no viable conversion from 'node::EmbedderSnapshotData::Pointer' (aka 'unique_ptr<const EmbedderSnapshotData, DeleteSnapshotData>') to 'bool' 138 | assert(snapshot); | ^~~~~~~~ /usr/include/c++/v1/__memory/unique_ptr.h:276:64: note: explicit conversion function is not a candidate 276 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 explicit operator bool() const _NOEXCEPT { | ^ ../test/embedding/embedtest.cc:216:14: error: no viable conversion from 'node::EmbedderSnapshotData::Pointer' (aka 'unique_ptr<const EmbedderSnapshotData, DeleteSnapshotData>') to 'bool' 216 | assert(snapshot); | ^~~~~~~~ /usr/include/c++/v1/__memory/unique_ptr.h:276:64: note: explicit conversion function is not a candidate 276 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 explicit operator bool() const _NOEXCEPT { | gmake[1]: *** [embedtest.target.mk:130: /construction/xports/www/node24/work/node-v24.18.0/out/Release/obj.target/embedtest/test/embedding/embedtest.o] Error 1 gmake[1]: *** Waiting for unfinished jobs.... ^ 2 errors generated.
I refreshed from lastest STABLE-15, which included the update to assert.h; and the build now completes successfully.