Index: Makefile =================================================================== RCS file: /cvs/ports/lang/node/Makefile,v retrieving revision 1.164 diff -u -p -r1.164 Makefile --- Makefile 26 Mar 2026 18:30:37 -0000 1.164 +++ Makefile 29 Apr 2026 21:14:00 -0000 @@ -5,7 +5,7 @@ USE_WXNEEDED = Yes COMMENT = JavaScript runtime built on Chrome's V8 JavaScript engine -NODE_VERSION = v22.22.2 +NODE_VERSION = v24.15.0 DISTFILES = ${DISTNAME}-headers.tar.gz \ ${DISTNAME}.tar.xz DIST_TUPLE = github qbit node-pledge 1.1.3 \ Index: distinfo =================================================================== RCS file: /cvs/ports/lang/node/distinfo,v retrieving revision 1.97 diff -u -p -r1.97 distinfo --- distinfo 26 Mar 2026 18:30:37 -0000 1.97 +++ distinfo 29 Apr 2026 21:14:00 -0000 @@ -1,6 +1,6 @@ -SHA256 (node-v22.22.2-headers.tar.gz) = kOXvD98C+ISH+QSnmINrNb1EiWBG1QKHO8YlrCuu3tI= -SHA256 (node-v22.22.2.tar.xz) = tr7dOoys1d998BWlCIJksSx0one6YGhMuWQq6Ot0MTI= +SHA256 (node-v24.15.0-headers.tar.gz) = mpJQA5/vVy0LzBEKxeeAVfr1YEQhIR0tX1eOvFo05wM= +SHA256 (node-v24.15.0.tar.xz) = pPZT157RQKqtkh6MIqO1hcqFz9q4DUAw9jCeRmOoocg= SHA256 (qbit-node-pledge-1.1.3.tar.gz) = fEaXvLg6hYEJ69K+mgQFizf8DiJY2/DtyFJB/pEanVU= -SIZE (node-v22.22.2-headers.tar.gz) = 9927000 -SIZE (node-v22.22.2.tar.xz) = 51257208 +SIZE (node-v24.15.0-headers.tar.gz) = 9958714 +SIZE (node-v24.15.0.tar.xz) = 54197668 SIZE (qbit-node-pledge-1.1.3.tar.gz) = 3167 Index: patches/patch-Makefile =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-Makefile,v retrieving revision 1.29 diff -u -p -r1.29 patch-Makefile --- patches/patch-Makefile 10 Mar 2026 20:20:24 -0000 1.29 +++ patches/patch-Makefile 29 Apr 2026 21:14:00 -0000 @@ -10,7 +10,7 @@ Index: Makefile $(PYTHON) tools/install.py $@ --dest-dir '$(DESTDIR)' --prefix '$(PREFIX)' .PHONY: uninstall -@@ -451,6 +451,12 @@ test/addons/.buildstamp: $(ADDONS_PREREQS) \ +@@ -450,6 +450,12 @@ test/addons/.buildstamp: $(ADDONS_PREREQS) \ # Just goes to show that recursive make really is harmful... # TODO(bnoordhuis) Force rebuild after gyp update. build-addons: | $(NODE_EXE) test/addons/.buildstamp ## Build addons for Node.js. Index: patches/patch-common_gypi =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-common_gypi,v retrieving revision 1.39 diff -u -p -r1.39 patch-common_gypi --- patches/patch-common_gypi 10 Mar 2026 20:20:24 -0000 1.39 +++ patches/patch-common_gypi 29 Apr 2026 21:14:00 -0000 @@ -19,7 +19,7 @@ Index: common.gypi 'conditions': [ ['enable_lto=="true"', { 'cflags': ['<(lto)'], -@@ -521,8 +523,10 @@ +@@ -524,8 +526,10 @@ 'standalone_static_library': 1, }], ['OS=="openbsd"', { @@ -32,9 +32,9 @@ Index: common.gypi }], ['_toolset=="host"', { 'conditions': [ -@@ -538,7 +542,7 @@ - 'cflags': [ '-m32' ], - 'ldflags': [ '-m32' ], +@@ -537,7 +541,7 @@ + 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ], }], - [ 'host_arch=="ppc64" and OS not in "aix os400"', { + [ 'host_arch=="ppc64" and OS not in "aix os400 openbsd"', { Index: patches/patch-configure =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-configure,v retrieving revision 1.6 diff -u -p -r1.6 patch-configure --- patches/patch-configure 10 Mar 2026 20:20:24 -0000 1.6 +++ patches/patch-configure 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: configure --- configure.orig +++ configure -@@ -4,13 +4,6 @@ +@@ -4,12 +4,6 @@ # Note that the mix of single and double quotes is intentional, # as is the fact that the ] goes on a new line. _=[ 'exec' '/bin/sh' '-c' ''' @@ -11,7 +11,6 @@ Index: configure -command -v python3.11 >/dev/null && exec python3.11 "$0" "$@" -command -v python3.10 >/dev/null && exec python3.10 "$0" "$@" -command -v python3.9 >/dev/null && exec python3.9 "$0" "$@" --command -v python3.8 >/dev/null && exec python3.8 "$0" "$@" command -v python3 >/dev/null && exec python3 "$0" "$@" exec python "$0" "$@" ''' "$0" "$@" Index: patches/patch-configure_py =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-configure_py,v retrieving revision 1.13 diff -u -p -r1.13 patch-configure_py --- patches/patch-configure_py 1 Oct 2025 17:11:35 -0000 1.13 +++ patches/patch-configure_py 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: configure.py --- configure.py.orig +++ configure.py -@@ -1762,7 +1762,11 @@ def configure_v8(o, configs): +@@ -1874,7 +1874,11 @@ def configure_v8(o, configs): if sys.platform != 'darwin': if o['variables']['v8_enable_webassembly'] and o['variables']['target_arch'] == 'x64': o['variables']['v8_enable_wasm_simd256_revec'] = 1 Index: patches/patch-deps_ada_ada_cpp =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_ada_ada_cpp,v retrieving revision 1.4 diff -u -p -r1.4 patch-deps_ada_ada_cpp --- patches/patch-deps_ada_ada_cpp 28 Aug 2024 17:44:42 -0000 1.4 +++ patches/patch-deps_ada_ada_cpp 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/ada/ada.cpp --- deps/ada/ada.cpp.orig +++ deps/ada/ada.cpp -@@ -10486,7 +10486,7 @@ ada_unused std::string get_state(ada::state s) { +@@ -11266,7 +11266,7 @@ ada_unused std::string get_state(ada::state s) { return "Special Authority Slashes"; case ada::state::SPECIAL_RELATIVE_OR_AUTHORITY: return "Special Relative or Authority"; @@ -10,57 +10,57 @@ Index: deps/ada/ada.cpp return "Query"; case ada::state::PATH: return "Path"; -@@ -12575,7 +12575,7 @@ result_type parse_url_impl(std::string_view user_input +@@ -13649,7 +13649,7 @@ result_type parse_url_impl(std::string_view user_input // state to query state. if ((input_position != input_size) && (url_data[input_position] == '?')) { -- state = ada::state::QUERY; -+ state = ada::state::ADAQUERY; +- state = state::QUERY; ++ state = state::ADAQUERY; } // Otherwise, if c is not the EOF code point: else if (input_position != input_size) { -@@ -12670,7 +12670,7 @@ result_type parse_url_impl(std::string_view user_input +@@ -13741,7 +13741,7 @@ result_type parse_url_impl(std::string_view user_input break; } -- case ada::state::QUERY: { -+ case ada::state::ADAQUERY: { +- case state::QUERY: { ++ case state::ADAQUERY: { ada_log("QUERY ", helpers::substring(url_data, input_position)); if constexpr (store_values) { // Let queryPercentEncodeSet be the special-query percent-encode set -@@ -12755,7 +12755,7 @@ result_type parse_url_impl(std::string_view user_input +@@ -13824,7 +13824,7 @@ result_type parse_url_impl(std::string_view user_input size_t location = view.find('?'); if (location != std::string_view::npos) { view.remove_suffix(view.size() - location); -- state = ada::state::QUERY; -+ state = ada::state::ADAQUERY; +- state = state::QUERY; ++ state = state::ADAQUERY; input_position += location + 1; } else { input_position = input_size + 1; -@@ -12810,7 +12810,7 @@ result_type parse_url_impl(std::string_view user_input +@@ -13885,7 +13885,7 @@ result_type parse_url_impl(std::string_view user_input // set url's query to the empty string and state to query state. else if ((input_position != input_size) && (url_data[input_position] == '?')) { -- state = ada::state::QUERY; -+ state = ada::state::ADAQUERY; +- state = state::QUERY; ++ state = state::ADAQUERY; } // Otherwise, if c is not the EOF code point: else if (input_position != input_size) { -@@ -12834,7 +12834,7 @@ result_type parse_url_impl(std::string_view user_input +@@ -13909,7 +13909,7 @@ result_type parse_url_impl(std::string_view user_input // Furthermore, we can immediately locate the '?'. size_t locofquestionmark = view.find('?'); if (locofquestionmark != std::string_view::npos) { -- state = ada::state::QUERY; -+ state = ada::state::ADAQUERY; +- state = state::QUERY; ++ state = state::ADAQUERY; view.remove_suffix(view.size() - locofquestionmark); input_position += locofquestionmark + 1; } else { -@@ -12996,7 +12996,7 @@ result_type parse_url_impl(std::string_view user_input +@@ -14071,7 +14071,7 @@ result_type parse_url_impl(std::string_view user_input // If c is U+003F (?), then set url's query to the empty string and // state to query state. if (input_position != input_size && url_data[input_position] == '?') { -- state = ada::state::QUERY; -+ state = ada::state::ADAQUERY; +- state = state::QUERY; ++ state = state::ADAQUERY; } // Otherwise, if c is not the EOF code point: else if (input_position != input_size) { Index: patches/patch-deps_ada_ada_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_ada_ada_h,v retrieving revision 1.4 diff -u -p -r1.4 patch-deps_ada_ada_h --- patches/patch-deps_ada_ada_h 9 Dec 2024 19:29:32 -0000 1.4 +++ patches/patch-deps_ada_ada_h 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/ada/ada.h --- deps/ada/ada.h.orig +++ deps/ada/ada.h -@@ -1304,7 +1304,7 @@ enum class state { +@@ -6723,7 +6723,7 @@ enum class state { /** * @see https://url.spec.whatwg.org/#query-state */ Index: patches/patch-deps_v8_include_v8-internal_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_include_v8-internal_h,v retrieving revision 1.2 diff -u -p -r1.2 patch-deps_v8_include_v8-internal_h --- patches/patch-deps_v8_include_v8-internal_h 14 Nov 2024 18:58:14 -0000 1.2 +++ patches/patch-deps_v8_include_v8-internal_h 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/v8/include/v8-internal.h --- deps/v8/include/v8-internal.h.orig +++ deps/v8/include/v8-internal.h -@@ -175,7 +175,7 @@ using SandboxedPointer_t = Address; +@@ -232,7 +232,7 @@ using SandboxedPointer_t = Address; #ifdef V8_ENABLE_SANDBOX // Size of the sandbox, excluding the guard regions surrounding it. Index: patches/patch-deps_v8_include_v8config_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_include_v8config_h,v retrieving revision 1.6 diff -u -p -r1.6 patch-deps_v8_include_v8config_h --- patches/patch-deps_v8_include_v8config_h 11 Feb 2025 15:33:05 -0000 1.6 +++ patches/patch-deps_v8_include_v8config_h 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/v8/include/v8config.h --- deps/v8/include/v8config.h.orig +++ deps/v8/include/v8config.h -@@ -185,6 +185,8 @@ path. Add it with -I to the command line +@@ -201,6 +201,8 @@ path. Add it with -I to the command line && !defined(V8_TARGET_OS_FUCHSIA) \ && !defined(V8_TARGET_OS_IOS) \ && !defined(V8_TARGET_OS_LINUX) \ @@ -10,7 +10,7 @@ Index: deps/v8/include/v8config.h && !defined(V8_TARGET_OS_MACOS) \ && !defined(V8_TARGET_OS_WIN) \ && !defined(V8_TARGET_OS_CHROMEOS) -@@ -197,6 +199,8 @@ path. Add it with -I to the command line +@@ -213,6 +215,8 @@ path. Add it with -I to the command line || defined(V8_TARGET_OS_FUCHSIA) \ || defined(V8_TARGET_OS_IOS) \ || defined(V8_TARGET_OS_LINUX) \ @@ -19,7 +19,7 @@ Index: deps/v8/include/v8config.h || defined(V8_TARGET_OS_MACOS) \ || defined(V8_TARGET_OS_WIN) \ || defined(V8_TARGET_OS_CHROMEOS) -@@ -220,6 +224,16 @@ path. Add it with -I to the command line +@@ -236,6 +240,16 @@ path. Add it with -I to the command line # define V8_TARGET_OS_LINUX #endif @@ -36,7 +36,7 @@ Index: deps/v8/include/v8config.h #ifdef V8_OS_MACOS # define V8_TARGET_OS_MACOS #endif -@@ -366,6 +380,7 @@ path. Add it with -I to the command line +@@ -383,6 +397,7 @@ path. Add it with -I to the command line #if (defined(_M_X64) || defined(__x86_64__) /* x64 (everywhere) */ \ || ((defined(__AARCH64EL__) || defined(_M_ARM64)) /* arm64, but ... */ \ && !defined(_WIN32))) /* not on windows */ \ Index: patches/patch-deps_v8_src_api_api_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_api_api_cc,v retrieving revision 1.5 diff -u -p -r1.5 patch-deps_v8_src_api_api_cc --- patches/patch-deps_v8_src_api_api_cc 14 Nov 2024 18:58:14 -0000 1.5 +++ patches/patch-deps_v8_src_api_api_cc 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/v8/src/api/api.cc --- deps/v8/src/api/api.cc.orig +++ deps/v8/src/api/api.cc -@@ -144,7 +144,7 @@ +@@ -153,7 +153,7 @@ #include "src/wasm/wasm-serialization.h" #endif // V8_ENABLE_WEBASSEMBLY @@ -10,7 +10,7 @@ Index: deps/v8/src/api/api.cc #include #include -@@ -6396,7 +6396,7 @@ bool v8::V8::Initialize(const int build_config) { +@@ -6483,7 +6483,7 @@ bool v8::V8::Initialize(const int build_config) { return true; } Index: patches/patch-deps_v8_src_base_cpu_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_base_cpu_cc,v retrieving revision 1.7 diff -u -p -r1.7 patch-deps_v8_src_base_cpu_cc --- patches/patch-deps_v8_src_base_cpu_cc 14 Nov 2024 18:58:14 -0000 1.7 +++ patches/patch-deps_v8_src_base_cpu_cc 29 Apr 2026 21:14:00 -0000 @@ -4,7 +4,7 @@ OpenBSD/riscv64 always uses floating-poi Index: deps/v8/src/base/cpu.cc --- deps/v8/src/base/cpu.cc.orig +++ deps/v8/src/base/cpu.cc -@@ -933,7 +933,10 @@ CPU::CPU() +@@ -1005,7 +1005,10 @@ CPU::CPU() if (HasListItem(mmu, "sv57")) { riscv_mmu_ = RV_MMU_MODE::kRiscvSV57; } Index: patches/patch-deps_v8_src_base_platform-openbsd_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_base_platform-openbsd_cc,v retrieving revision 1.4 diff -u -p -r1.4 patch-deps_v8_src_base_platform-openbsd_cc --- patches/patch-deps_v8_src_base_platform-openbsd_cc 18 May 2024 12:10:22 -0000 1.4 +++ patches/patch-deps_v8_src_base_platform-openbsd_cc 29 Apr 2026 21:14:00 -0000 @@ -25,5 +25,5 @@ Index: deps/v8/src/base/platform/platfor + return reinterpret_cast(base) + ss.ss_size; +} - std::vector OS::GetFreeMemoryRangesWithin( + std::optional OS::GetFirstFreeMemoryRangeWithin( OS::Address boundary_start, OS::Address boundary_end, size_t minimum_size, Index: patches/patch-deps_v8_src_base_platform-posix_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_base_platform-posix_cc,v retrieving revision 1.7 diff -u -p -r1.7 patch-deps_v8_src_base_platform-posix_cc --- patches/patch-deps_v8_src_base_platform-posix_cc 9 Sep 2025 18:34:49 -0000 1.7 +++ patches/patch-deps_v8_src_base_platform-posix_cc 29 Apr 2026 21:14:00 -0000 @@ -1,16 +1,7 @@ Index: deps/v8/src/base/platform/platform-posix.cc --- deps/v8/src/base/platform/platform-posix.cc.orig +++ deps/v8/src/base/platform/platform-posix.cc -@@ -54,7 +54,7 @@ - #if V8_OS_DARWIN - #include - #include --#else -+#elif !V8_OS_BSD - #include - #endif - -@@ -72,7 +72,7 @@ +@@ -76,7 +76,7 @@ #include #endif @@ -19,7 +10,7 @@ Index: deps/v8/src/base/platform/platfor #define MAP_ANONYMOUS MAP_ANON #endif -@@ -315,8 +315,15 @@ void OS::SetRandomMmapSeed(int64_t seed) { +@@ -327,8 +327,15 @@ void OS::SetRandomMmapSeed(int64_t seed) { } } @@ -35,7 +26,7 @@ Index: deps/v8/src/base/platform/platfor uintptr_t raw_addr; { MutexGuard guard(rng_mutex.Pointer()); -@@ -411,6 +418,7 @@ void* OS::GetRandomMmapAddr() { +@@ -425,6 +432,7 @@ void* OS::GetRandomMmapAddr() { #endif return reinterpret_cast(raw_addr); } @@ -43,8 +34,8 @@ Index: deps/v8/src/base/platform/platfor // TODO(bbudge) Move Cygwin and Fuchsia stuff into platform-specific files. #if !V8_OS_CYGWIN && !V8_OS_FUCHSIA -@@ -684,7 +692,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor - +@@ -713,7 +721,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor + #if !V8_OS_ZOS // static bool OS::HasLazyCommits() { -#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN @@ -52,7 +43,7 @@ Index: deps/v8/src/base/platform/platfor return true; #else // TODO(bbudge) Return true for all POSIX platforms. -@@ -1316,7 +1324,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void* +@@ -1358,7 +1366,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void* // keep this version in POSIX as most Linux-compatible derivatives will // support it. MacOS and FreeBSD are different here. #if !defined(V8_OS_FREEBSD) && !defined(V8_OS_DARWIN) && !defined(_AIX) && \ Index: patches/patch-deps_v8_src_base_platform_memory_h =================================================================== RCS file: patches/patch-deps_v8_src_base_platform_memory_h diff -N patches/patch-deps_v8_src_base_platform_memory_h --- patches/patch-deps_v8_src_base_platform_memory_h 18 May 2024 12:10:22 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,17 +0,0 @@ -Index: deps/v8/src/base/platform/memory.h ---- deps/v8/src/base/platform/memory.h.orig -+++ deps/v8/src/base/platform/memory.h -@@ -19,11 +19,11 @@ - - #if V8_OS_DARWIN - #include --#else // !V8_OS_DARWIN -+#elif !V8_OS_BSD - #include - #endif // !V8_OS_DARWIN - --#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN -+#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_BSD) || V8_OS_WIN - #define V8_HAS_MALLOC_USABLE_SIZE 1 - #endif // (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN - Index: patches/patch-deps_v8_src_base_sys-info_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_base_sys-info_cc,v retrieving revision 1.2 diff -u -p -r1.2 patch-deps_v8_src_base_sys-info_cc --- patches/patch-deps_v8_src_base_sys-info_cc 11 Mar 2022 19:29:08 -0000 1.2 +++ patches/patch-deps_v8_src_base_sys-info_cc 29 Apr 2026 21:14:00 -0000 @@ -1,6 +1,7 @@ ---- deps/v8/src/base/sys-info.cc.orig Sat Jan 1 17:10:10 2022 -+++ deps/v8/src/base/sys-info.cc Sat Jan 1 17:10:10 2022 -@@ -38,7 +38,7 @@ namespace base { +Index: deps/v8/src/base/sys-info.cc +--- deps/v8/src/base/sys-info.cc.orig ++++ deps/v8/src/base/sys-info.cc +@@ -36,7 +36,7 @@ namespace base { // static int SysInfo::NumberOfProcessors() { #if V8_OS_OPENBSD Index: patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc,v retrieving revision 1.2 diff -u -p -r1.2 patch-deps_v8_src_codegen_riscv_assembler-riscv_cc --- patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc 14 Nov 2024 18:58:14 -0000 1.2 +++ patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc 29 Apr 2026 21:14:00 -0000 @@ -11,8 +11,8 @@ Fix build errors due to type mismatch be Index: deps/v8/src/codegen/riscv/assembler-riscv.cc --- deps/v8/src/codegen/riscv/assembler-riscv.cc.orig +++ deps/v8/src/codegen/riscv/assembler-riscv.cc -@@ -366,7 +366,7 @@ int Assembler::target_at(int pos, bool is_internal) { - pc = target_address_at(pc); +@@ -421,7 +421,7 @@ int Assembler::target_at(int pos, bool is_internal) { + pc = target_constant_address_at(pc); uintptr_t instr_address = reinterpret_cast(buffer_start_ + pos); - uintptr_t imm = reinterpret_cast(pc); @@ -20,43 +20,16 @@ Index: deps/v8/src/codegen/riscv/assembl if (imm == kEndOfJumpChain) { return kEndOfChain; } else { -@@ -917,7 +917,7 @@ inline int64_t signExtend(uint64_t V, int N) { +@@ -988,7 +988,7 @@ inline int64_t signExtend(uint64_t V, int N) { } #if V8_TARGET_ARCH_RISCV64 -void Assembler::RV_li(Register rd, int64_t imm) { +void Assembler::RV_li(Register rd, intptr_t imm) { UseScratchRegisterScope temps(this); - if (RecursiveLiCount(imm) > GeneralLiCount(imm, temps.hasAvailable())) { + if (RecursiveLiCount(imm) > GeneralLiCount(imm, temps.CanAcquire())) { GeneralLi(rd, imm); -@@ -1086,7 +1086,7 @@ void Assembler::GeneralLi(Register rd, int64_t imm) { - } - } - --void Assembler::li_ptr(Register rd, int64_t imm) { -+void Assembler::li_ptr(Register rd, intptr_t imm) { - // Initialize rd with an address - // Pointers are 48 bits - // 6 fixed instructions are generated -@@ -1104,7 +1104,7 @@ void Assembler::li_ptr(Register rd, int64_t imm) { - ori(rd, rd, a6); // 6 bits are put in. 48 bis in rd - } - --void Assembler::li_constant(Register rd, int64_t imm) { -+void Assembler::li_constant(Register rd, intptr_t imm) { - DEBUG_PRINTF("\tli_constant(%d, %lx <%ld>)\n", ToNumber(rd), imm, imm); - lui(rd, (imm + (1LL << 47) + (1LL << 35) + (1LL << 23) + (1LL << 11)) >> - 48); // Bits 63:48 -@@ -1549,7 +1549,7 @@ Address Assembler::target_address_at(Address pc) { - // - // Patching the address must replace all instructions, and flush the i-cache. - // Note that this assumes the use of SV48, the 48-bit virtual memory system. --void Assembler::set_target_value_at(Address pc, uint64_t target, -+void Assembler::set_target_value_at(Address pc, uintptr_t target, - ICacheFlushMode icache_flush_mode) { - DEBUG_PRINTF("set_target_value_at: pc: %lx\ttarget: %lx\n", pc, target); - uint32_t* p = reinterpret_cast(pc); -@@ -1825,7 +1825,7 @@ const size_t ConstantPool::kApproxMaxEntryCount = 512; +@@ -1978,7 +1978,7 @@ const size_t ConstantPool::kApproxMaxEntryCount = 512; // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// @@ -65,7 +38,7 @@ Index: deps/v8/src/codegen/riscv/assembl if (val > 0 && RecursiveLiImplCount(val) > 2) { unsigned LeadingZeros = base::bits::CountLeadingZeros((uint64_t)val); uint64_t ShiftedVal = (uint64_t)val << LeadingZeros; -@@ -1839,7 +1839,7 @@ void Assembler::RecursiveLi(Register rd, int64_t val) +@@ -1992,7 +1992,7 @@ void Assembler::RecursiveLi(Register rd, int64_t val) RecursiveLiImpl(rd, val); } @@ -74,7 +47,7 @@ Index: deps/v8/src/codegen/riscv/assembl if (val > 0 && RecursiveLiImplCount(val) > 2) { unsigned LeadingZeros = base::bits::CountLeadingZeros((uint64_t)val); uint64_t ShiftedVal = (uint64_t)val << LeadingZeros; -@@ -1854,7 +1854,7 @@ int Assembler::RecursiveLiCount(int64_t val) { +@@ -2007,7 +2007,7 @@ int Assembler::RecursiveLiCount(int64_t val) { return RecursiveLiImplCount(val); } @@ -83,7 +56,7 @@ Index: deps/v8/src/codegen/riscv/assembl if (is_int32(Val)) { // Depending on the active bits in the immediate Value v, the following // instruction sequences are emitted: -@@ -1931,7 +1931,7 @@ void Assembler::RecursiveLiImpl(Register rd, int64_t V +@@ -2084,7 +2084,7 @@ void Assembler::RecursiveLiImpl(Register rd, int64_t V } } @@ -92,7 +65,7 @@ Index: deps/v8/src/codegen/riscv/assembl int count = 0; if (is_int32(Val)) { // Depending on the active bits in the immediate Value v, the following -@@ -2012,7 +2012,7 @@ int Assembler::RecursiveLiImplCount(int64_t Val) { +@@ -2165,7 +2165,7 @@ int Assembler::RecursiveLiImplCount(int64_t Val) { return count; } Index: patches/patch-deps_v8_src_codegen_riscv_macro-assembler-riscv_cc =================================================================== RCS file: patches/patch-deps_v8_src_codegen_riscv_macro-assembler-riscv_cc diff -N patches/patch-deps_v8_src_codegen_riscv_macro-assembler-riscv_cc --- patches/patch-deps_v8_src_codegen_riscv_macro-assembler-riscv_cc 14 Nov 2024 18:58:14 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -Index: deps/v8/src/codegen/riscv/macro-assembler-riscv.cc ---- deps/v8/src/codegen/riscv/macro-assembler-riscv.cc.orig -+++ deps/v8/src/codegen/riscv/macro-assembler-riscv.cc -@@ -2442,7 +2442,7 @@ void MacroAssembler::li(Register rd, Operand j, LiFlag - int reverse_count = RV_li_count(~j.immediate(), temps.hasAvailable()); - if (v8_flags.riscv_constant_pool && count >= 4 && reverse_count >= 4) { - // Ld/Lw a Address from a constant pool. -- RecordEntry((uintptr_t)j.immediate(), j.rmode()); -+ RecordEntry((uint64_t)j.immediate(), j.rmode()); - auipc(rd, 0); - // Record a value into constant pool. - LoadWord(rd, MemOperand(rd, 0)); Index: patches/patch-deps_v8_src_execution_isolate_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_execution_isolate_cc,v retrieving revision 1.4 diff -u -p -r1.4 patch-deps_v8_src_execution_isolate_cc --- patches/patch-deps_v8_src_execution_isolate_cc 14 Nov 2024 18:58:14 -0000 1.4 +++ patches/patch-deps_v8_src_execution_isolate_cc 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/v8/src/execution/isolate.cc --- deps/v8/src/execution/isolate.cc.orig +++ deps/v8/src/execution/isolate.cc -@@ -153,6 +153,10 @@ +@@ -173,6 +173,10 @@ #include "src/execution/simulator-base.h" #endif @@ -12,7 +12,7 @@ Index: deps/v8/src/execution/isolate.cc extern "C" const uint8_t v8_Default_embedded_blob_code_[]; extern "C" uint32_t v8_Default_embedded_blob_code_size_; extern "C" const uint8_t v8_Default_embedded_blob_data_[]; -@@ -4232,6 +4236,13 @@ void Isolate::InitializeDefaultEmbeddedBlob() { +@@ -5125,6 +5129,13 @@ void Isolate::InitializeDefaultEmbeddedBlob() { uint32_t code_size = DefaultEmbeddedBlobCodeSize(); const uint8_t* data = DefaultEmbeddedBlobData(); uint32_t data_size = DefaultEmbeddedBlobDataSize(); Index: patches/patch-deps_v8_src_flags_flags_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_flags_flags_cc,v retrieving revision 1.2 diff -u -p -r1.2 patch-deps_v8_src_flags_flags_cc --- patches/patch-deps_v8_src_flags_flags_cc 14 Nov 2024 18:58:14 -0000 1.2 +++ patches/patch-deps_v8_src_flags_flags_cc 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/v8/src/flags/flags.cc --- deps/v8/src/flags/flags.cc.orig +++ deps/v8/src/flags/flags.cc -@@ -15,6 +15,10 @@ +@@ -16,6 +16,10 @@ #include #include @@ -9,22 +9,10 @@ Index: deps/v8/src/flags/flags.cc +#include +#endif + - #include "src/base/functional.h" + #include "src/base/hashing.h" #include "src/base/lazy-instance.h" #include "src/base/platform/platform.h" -@@ -34,7 +38,11 @@ - namespace v8::internal { - - // Define {v8_flags}, declared in flags.h. -+#if V8_OS_OPENBSD -+FlagValues v8_flags __attribute__((section(".openbsd.mutable"))); -+#else - FlagValues v8_flags; -+#endif - - // {v8_flags} needs to be aligned to a memory page, and the size needs to be a - // multiple of a page size. This is required for memory-protection of the memory -@@ -789,6 +797,10 @@ void FlagList::FreezeFlags() { +@@ -832,6 +836,10 @@ void FlagList::FreezeFlags() { // Note that for string flags we only protect the pointer itself, but not the // string storage. TODO(12887): Fix this. base::OS::SetDataReadOnly(&v8_flags, sizeof(v8_flags)); Index: patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_cc,v retrieving revision 1.1 diff -u -p -r1.1 patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_cc --- patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_cc 28 Jan 2023 12:46:46 -0000 1.1 +++ patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_cc 29 Apr 2026 21:14:00 -0000 @@ -1,12 +1,12 @@ Index: deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc --- deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc.orig +++ deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc -@@ -143,6 +143,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(const char* s) { +@@ -146,6 +146,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(const char* s) { return EmbeddedTargetOs::kWin; } else if (string == "starboard") { return EmbeddedTargetOs::kStarboard; + } else if (string == "openbsd") { + return EmbeddedTargetOs::kOpenBSD; + } else if (string == "zos") { + return EmbeddedTargetOs::kZOS; } else { - return EmbeddedTargetOs::kGeneric; - } Index: patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_h,v retrieving revision 1.2 diff -u -p -r1.2 patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_h --- patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_h 18 May 2024 12:10:22 -0000 1.2 +++ patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_h 29 Apr 2026 21:14:00 -0000 @@ -1,11 +1,11 @@ Index: deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.h --- deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.h.orig +++ deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.h -@@ -31,6 +31,7 @@ enum class EmbeddedTargetOs { +@@ -35,6 +35,7 @@ enum class EmbeddedTargetOs { kMac, kWin, kStarboard, + kOpenBSD, + kZOS, kGeneric, // Everything not covered above falls in here. }; - Index: patches/patch-deps_v8_src_trap-handler_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_trap-handler_h,v retrieving revision 1.4 diff -u -p -r1.4 patch-deps_v8_src_trap-handler_h --- patches/patch-deps_v8_src_trap-handler_h 14 Nov 2024 18:58:14 -0000 1.4 +++ patches/patch-deps_v8_src_trap-handler_h 29 Apr 2026 21:14:00 -0000 @@ -1,9 +1,9 @@ Index: deps/v8/src/trap-handler/trap-handler.h --- deps/v8/src/trap-handler/trap-handler.h.orig +++ deps/v8/src/trap-handler/trap-handler.h -@@ -17,10 +17,10 @@ namespace v8 { - namespace internal { - namespace trap_handler { +@@ -15,10 +15,10 @@ + + namespace v8::internal::trap_handler { -// X64 on Linux, Windows, MacOS, FreeBSD. +// X64 on Linux, Windows, MacOS, FreeBSD, OpenBSD @@ -12,5 +12,5 @@ Index: deps/v8/src/trap-handler/trap-han - V8_OS_FREEBSD) + V8_OS_FREEBSD || V8_OS_OPENBSD) #define V8_TRAP_HANDLER_SUPPORTED true - // Arm64 (non-simulator) on Mac and Linux. + // Arm64 (non-simulator) on Linux, Windows, MacOS. #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \ Index: patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl_h,v retrieving revision 1.1 diff -u -p -r1.1 patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl_h --- patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl_h 14 Nov 2024 18:58:14 -0000 1.1 +++ patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl_h 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h --- deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h.orig +++ deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h -@@ -510,7 +510,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst +@@ -579,7 +579,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst } void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr, @@ -10,7 +10,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LoadType type, uint32_t* protected_load_pc, bool /* is_load_mem */, bool /* i64_offset */, bool needs_shift) { -@@ -587,7 +587,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis +@@ -659,7 +659,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis } void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, @@ -19,7 +19,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li StoreType type, LiftoffRegList pinned, uint32_t* protected_store_pc, bool /* is_store_mem */, bool /* i64_offset */) { -@@ -663,7 +663,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist +@@ -738,7 +738,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist } void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr, @@ -28,7 +28,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LoadType type, LiftoffRegList /* pinned */, bool /* i64_offset */) { if (type.value() != LoadType::kI64Load) { -@@ -681,7 +681,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, +@@ -756,7 +756,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, } void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg, @@ -37,7 +37,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li StoreType type, LiftoffRegList pinned, bool /* i64_offset */) { DCHECK_LE(offset_imm, std::numeric_limits::max()); -@@ -1030,7 +1030,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino +@@ -1105,7 +1105,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino } // namespace liftoff void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg, @@ -46,7 +46,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LiftoffRegister result, StoreType type, bool /* i64_offset */) { if (type.value() == StoreType::kI64Store) { -@@ -1044,7 +1044,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re +@@ -1119,7 +1119,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re } void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg, @@ -55,7 +55,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LiftoffRegister result, StoreType type, bool /* i64_offset */) { if (type.value() == StoreType::kI64Store) { -@@ -1057,7 +1057,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re +@@ -1132,7 +1132,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re } void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg, @@ -64,7 +64,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LiftoffRegister result, StoreType type, bool /* i64_offset */) { if (type.value() == StoreType::kI64Store) { -@@ -1071,7 +1071,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re +@@ -1146,7 +1146,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re } void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg, @@ -73,7 +73,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LiftoffRegister result, StoreType type, bool /* i64_offset */) { if (type.value() == StoreType::kI64Store) { -@@ -1085,7 +1085,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg +@@ -1160,7 +1160,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg } void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg, @@ -82,7 +82,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LiftoffRegister result, StoreType type, bool /* i64_offset */) { if (type.value() == StoreType::kI64Store) { -@@ -1099,7 +1099,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re +@@ -1174,7 +1174,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re } void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg, @@ -91,7 +91,7 @@ Index: deps/v8/src/wasm/baseline/ia32/li LiftoffRegister value, LiftoffRegister result, StoreType type, bool /* i64_offset */) { -@@ -1114,7 +1114,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add +@@ -1189,7 +1189,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add } void LiftoffAssembler::AtomicCompareExchange( Index: patches/patch-deps_v8_third_party_abseil-cpp_absl_base_config_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_third_party_abseil-cpp_absl_base_config_h,v retrieving revision 1.1 diff -u -p -r1.1 patch-deps_v8_third_party_abseil-cpp_absl_base_config_h --- patches/patch-deps_v8_third_party_abseil-cpp_absl_base_config_h 14 Nov 2024 18:58:14 -0000 1.1 +++ patches/patch-deps_v8_third_party_abseil-cpp_absl_base_config_h 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: deps/v8/third_party/abseil-cpp/absl/base/config.h --- deps/v8/third_party/abseil-cpp/absl/base/config.h.orig +++ deps/v8/third_party/abseil-cpp/absl/base/config.h -@@ -448,7 +448,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != +@@ -409,7 +409,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != #ifdef ABSL_HAVE_SCHED_YIELD #error ABSL_HAVE_SCHED_YIELD cannot be directly set #elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \ @@ -10,7 +10,7 @@ Index: deps/v8/third_party/abseil-cpp/ab #define ABSL_HAVE_SCHED_YIELD 1 #endif -@@ -463,7 +463,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != +@@ -424,7 +424,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != // platforms. #ifdef ABSL_HAVE_SEMAPHORE_H #error ABSL_HAVE_SEMAPHORE_H cannot be directly set Index: patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_sysinfo_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_sysinfo_cc,v retrieving revision 1.1 diff -u -p -r1.1 patch-deps_v8_third_party_abseil-cpp_absl_base_internal_sysinfo_cc --- patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_sysinfo_cc 14 Nov 2024 18:58:14 -0000 1.1 +++ patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_sysinfo_cc 29 Apr 2026 21:14:00 -0000 @@ -10,7 +10,7 @@ Index: deps/v8/third_party/abseil-cpp/ab #include #endif -@@ -194,6 +194,7 @@ static double GetNominalCPUFrequency() { +@@ -198,6 +198,7 @@ static double GetNominalCPUFrequency() { #else @@ -18,7 +18,7 @@ Index: deps/v8/third_party/abseil-cpp/ab // Helper function for reading a long from a file. Returns true if successful // and the memory location pointed to by value is set to the value read. static bool ReadLongFromFile(const char *file, long *value) { -@@ -226,6 +227,7 @@ static bool ReadLongFromFile(const char *file, long *v +@@ -230,6 +231,7 @@ static bool ReadLongFromFile(const char *file, long *v } return ret; } @@ -26,7 +26,7 @@ Index: deps/v8/third_party/abseil-cpp/ab #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY) -@@ -325,9 +327,11 @@ static double GetNominalCPUFrequency() { +@@ -329,9 +331,11 @@ static double GetNominalCPUFrequency() { // a new mode (turbo mode). Essentially, those frequencies cannot // always be relied upon. The same reasons apply to /proc/cpuinfo as // well. @@ -38,7 +38,7 @@ Index: deps/v8/third_party/abseil-cpp/ab #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY) // On these platforms, the TSC frequency is the nominal CPU -@@ -346,10 +350,12 @@ static double GetNominalCPUFrequency() { +@@ -350,10 +354,12 @@ static double GetNominalCPUFrequency() { // If CPU scaling is in effect, we want to use the *maximum* // frequency, not whatever CPU speed some random processor happens // to be using now. Index: patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_unscaledcycleclock_config_h =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_unscaledcycleclock_config_h,v retrieving revision 1.1 diff -u -p -r1.1 patch-deps_v8_third_party_abseil-cpp_absl_base_internal_unscaledcycleclock_config_h --- patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_unscaledcycleclock_config_h 4 May 2025 21:01:18 -0000 1.1 +++ patches/patch-deps_v8_third_party_abseil-cpp_absl_base_internal_unscaledcycleclock_config_h 29 Apr 2026 21:14:00 -0000 @@ -7,8 +7,8 @@ Index: deps/v8/third_party/abseil-cpp/ab // The following platforms have an implementation of a hardware counter. #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \ -- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \ -+ /* defined(__powerpc__) || defined(__ppc__) || */ defined(__riscv) || \ - defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC)) +- defined(__powerpc__) || defined(__ppc__) || defined(_M_IX86) || \ ++ /* defined(__powerpc__) || defined(__ppc__) || */ defined(_M_IX86) || \ + (defined(_M_X64) && !defined(_M_ARM64EC)) #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1 #else Index: patches/patch-include_node_common_gypi =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-include_node_common_gypi,v retrieving revision 1.13 diff -u -p -r1.13 patch-include_node_common_gypi --- patches/patch-include_node_common_gypi 10 Mar 2026 20:20:24 -0000 1.13 +++ patches/patch-include_node_common_gypi 29 Apr 2026 21:14:00 -0000 @@ -9,7 +9,7 @@ Index: include/node/common.gypi 'conditions': [ ['enable_lto=="true"', { 'cflags': ['<(lto)'], -@@ -521,7 +520,6 @@ +@@ -524,7 +523,6 @@ 'standalone_static_library': 1, }], ['OS=="openbsd"', { @@ -17,18 +17,18 @@ Index: include/node/common.gypi 'ldflags': [ '-Wl,-z,wxneeded' ], }], ['_toolset=="host"', { -@@ -538,7 +536,7 @@ - 'cflags': [ '-m32' ], - 'ldflags': [ '-m32' ], +@@ -537,7 +535,7 @@ + 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ], }], - [ 'host_arch=="ppc64" and OS not in "aix os400"', { + [ 'host_arch=="ppc64" and OS not in "aix os400 openbsd"', { 'conditions': [ [ 'clang==0', { 'cflags': [ '-mminimal-toc' ], -@@ -567,7 +565,7 @@ - 'cflags': [ '-m32' ], - 'ldflags': [ '-m32' ], +@@ -562,7 +560,7 @@ + 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ], }], - [ 'target_arch=="ppc64" and OS not in "aix os400"', { + [ 'target_arch=="ppc64" and OS not in "aix os400 openbsd"', { Index: patches/patch-lib_internal_modules_cjs_loader_js =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-lib_internal_modules_cjs_loader_js,v retrieving revision 1.22 diff -u -p -r1.22 patch-lib_internal_modules_cjs_loader_js --- patches/patch-lib_internal_modules_cjs_loader_js 10 Mar 2026 20:20:24 -0000 1.22 +++ patches/patch-lib_internal_modules_cjs_loader_js 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: lib/internal/modules/cjs/loader.js --- lib/internal/modules/cjs/loader.js.orig +++ lib/internal/modules/cjs/loader.js -@@ -1951,7 +1951,10 @@ Module._initPaths = function() { +@@ -2077,7 +2077,10 @@ Module._initPaths = function() { path.resolve(process.execPath, '..') : path.resolve(process.execPath, '..', '..'); Index: patches/patch-lib_net_js =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-lib_net_js,v retrieving revision 1.16 diff -u -p -r1.16 patch-lib_net_js --- patches/patch-lib_net_js 30 Jun 2025 17:40:10 -0000 1.16 +++ patches/patch-lib_net_js 29 Apr 2026 21:14:00 -0000 @@ -13,7 +13,7 @@ for "any address" but that's not really Index: lib/net.js --- lib/net.js.orig +++ lib/net.js -@@ -1897,22 +1897,12 @@ function setupListenHandle(address, port, addressType, +@@ -1965,22 +1965,12 @@ function setupListenHandle(address, port, addressType, let rval = null; Index: patches/patch-src_env_cc =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-src_env_cc,v retrieving revision 1.16 diff -u -p -r1.16 patch-src_env_cc --- patches/patch-src_env_cc 1 Oct 2025 17:11:35 -0000 1.16 +++ patches/patch-src_env_cc 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: src/env.cc --- src/env.cc.orig +++ src/env.cc -@@ -795,7 +795,7 @@ std::string Environment::GetExecPath(const std::vector +@@ -775,7 +775,7 @@ std::string Environment::GetExecPath(const std::vector uv_fs_req_cleanup(&req); #endif Index: patches/patch-tools_test_py =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-tools_test_py,v retrieving revision 1.17 diff -u -p -r1.17 patch-tools_test_py --- patches/patch-tools_test_py 1 Oct 2025 17:11:35 -0000 1.17 +++ patches/patch-tools_test_py 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: tools/test.py --- tools/test.py.orig +++ tools/test.py -@@ -965,9 +965,9 @@ class Context(object): +@@ -975,9 +975,9 @@ class Context(object): if self.vm is not None: return self.vm if arch == 'none': Index: patches/patch-tools_v8_gypfiles_features_gypi =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-tools_v8_gypfiles_features_gypi,v retrieving revision 1.5 diff -u -p -r1.5 patch-tools_v8_gypfiles_features_gypi --- patches/patch-tools_v8_gypfiles_features_gypi 26 Mar 2026 18:30:39 -0000 1.5 +++ patches/patch-tools_v8_gypfiles_features_gypi 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: tools/v8_gypfiles/features.gypi --- tools/v8_gypfiles/features.gypi.orig +++ tools/v8_gypfiles/features.gypi -@@ -339,7 +339,10 @@ +@@ -335,7 +335,10 @@ 'v8_advanced_bigint_algorithms%': 1, # Enable 256-bit long vector re-vectorization pass in WASM compilation pipeline. @@ -13,7 +13,7 @@ Index: tools/v8_gypfiles/features.gypi }, 'target_defaults': { -@@ -557,6 +560,9 @@ +@@ -553,6 +556,9 @@ }], ['v8_enable_wasm_simd256_revec==1', { 'defines': ['V8_ENABLE_WASM_SIMD256_REVEC',], Index: patches/patch-tools_v8_gypfiles_toolchain_gypi =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-tools_v8_gypfiles_toolchain_gypi,v retrieving revision 1.7 diff -u -p -r1.7 patch-tools_v8_gypfiles_toolchain_gypi --- patches/patch-tools_v8_gypfiles_toolchain_gypi 1 Oct 2025 17:11:35 -0000 1.7 +++ patches/patch-tools_v8_gypfiles_toolchain_gypi 29 Apr 2026 21:14:00 -0000 @@ -1,7 +1,7 @@ Index: tools/v8_gypfiles/toolchain.gypi --- tools/v8_gypfiles/toolchain.gypi.orig +++ tools/v8_gypfiles/toolchain.gypi -@@ -692,7 +692,7 @@ +@@ -580,7 +580,7 @@ 'defines': [ '__C99FEATURES__=1' ], # isinf() etc. }], ['OS=="freebsd" or OS=="openbsd"', { @@ -10,7 +10,7 @@ Index: tools/v8_gypfiles/toolchain.gypi }], ['OS=="netbsd"', { 'cflags': [ '-I/usr/pkg/include' ], -@@ -877,11 +877,9 @@ +@@ -765,11 +765,9 @@ # Don't use -O3 with sanitizers. ['asan==0 and msan==0 and lsan==0 \ and tsan==0 and ubsan==0 and ubsan_vptr==0', { Index: patches/patch-tools_v8_gypfiles_v8_gyp =================================================================== RCS file: /cvs/ports/lang/node/patches/patch-tools_v8_gypfiles_v8_gyp,v retrieving revision 1.18 diff -u -p -r1.18 patch-tools_v8_gypfiles_v8_gyp --- patches/patch-tools_v8_gypfiles_v8_gyp 1 Aug 2025 15:18:32 -0000 1.18 +++ patches/patch-tools_v8_gypfiles_v8_gyp 29 Apr 2026 21:14:00 -0000 @@ -7,7 +7,7 @@ from "0.0" if llvm (clang) is detected. Index: tools/v8_gypfiles/v8.gyp --- tools/v8_gypfiles/v8.gyp.orig +++ tools/v8_gypfiles/v8.gyp -@@ -298,6 +298,9 @@ +@@ -315,6 +315,9 @@ '<(icu_gyp_path):icuuc', ], }], @@ -17,7 +17,7 @@ Index: tools/v8_gypfiles/v8.gyp ], }, # v8_initializers_slow { -@@ -706,7 +709,7 @@ +@@ -733,7 +736,7 @@ }], ['v8_enable_webassembly==1', { 'conditions': [ @@ -26,7 +26,7 @@ Index: tools/v8_gypfiles/v8.gyp 'sources': [ '<(V8_ROOT)/src/trap-handler/handler-inside-posix.h', ], -@@ -749,7 +752,7 @@ +@@ -776,7 +779,7 @@ }], ['v8_enable_webassembly==1', { 'conditions': [ @@ -35,7 +35,7 @@ Index: tools/v8_gypfiles/v8.gyp 'sources': [ '<(V8_ROOT)/src/trap-handler/handler-inside-posix.h', ], -@@ -1170,7 +1173,7 @@ +@@ -1153,7 +1156,7 @@ }], ['v8_enable_webassembly==1', { 'conditions': [ @@ -44,7 +44,7 @@ Index: tools/v8_gypfiles/v8.gyp 'sources': [ '<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc', '<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc', -@@ -1198,7 +1201,7 @@ +@@ -1181,7 +1184,7 @@ 'conditions': [ ['v8_enable_webassembly==1', { 'conditions': [ @@ -53,7 +53,7 @@ Index: tools/v8_gypfiles/v8.gyp 'sources': [ '<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc', '<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc', -@@ -1251,7 +1254,7 @@ +@@ -1229,7 +1232,7 @@ 'conditions': [ ['v8_enable_webassembly==1', { 'conditions': [ @@ -62,17 +62,8 @@ Index: tools/v8_gypfiles/v8.gyp 'sources': [ '<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc', '<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc', -@@ -1347,7 +1350,7 @@ - }], - # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library - # to implement atomic memory access -- ['v8_current_cpu in ["mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', { -+ ['v8_current_cpu in ["mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"] and llvm_version == "0.0"', { - 'link_settings': { - 'libraries': ['-latomic', ], - }, -@@ -1813,6 +1816,9 @@ - '