Index | Thread | Search

From:
Volker Schlecht <openbsd-ports@schlecht.dev>
Subject:
Re: [Maintainer Update] lang/node 20.13.1
To:
ports@openbsd.org
Date:
Sat, 18 May 2024 10:19:25 +0200

Download raw body.

Thread
Just as a heads up:

amd64 and arm64 tested by myself, I have been dogfooding node 20.x on amd64 for
a while already.

i386 built, lightly tested by tb@
riscv64 tested by jca@

ok?

On 2024-05-14 19:33, Volker Schlecht wrote:
>Update with some additional feedback from jca@ for riscv64 and without REVISION.
>
>On 2024-05-13 19:51, Volker Schlecht wrote:
>>I'd like to propose a switch of lang/node to their 20.x release branch, the
>>currently active LTS release, which is probably more likely to become compatible
>>with OpenSSL 3.2 eventually :-)
>>
>>The attached diff builds and works on amd64 (with IBT) and arm64 (tested
>>without IBT). It includes patches for riscv from jca@, so it should build there
>>as well.
>>
>>It would be great if someone could try it out on ppc64. FreeBSD includes two
>>patches for that platform, but I don't know if those are needed or even make
>>sense for us:
>>
>>https://raw.githubusercontent.com/freebsd/freebsd-ports/main/www/node20/files/patch-deps_v8_src_libsampler_sampler.cc
>>https://raw.githubusercontent.com/freebsd/freebsd-ports/main/www/node20/files/patch-deps_v8_src_codegen_ppc_constants-ppc.h
>>
>>aisha@ : could you give your WIP javascript ports a spin with that version of
>>node?

>Index: Makefile
>===================================================================
>RCS file: /cvs/ports/lang/node/Makefile,v
>diff -u -p -r1.133 Makefile
>--- Makefile	6 May 2024 12:23:44 -0000	1.133
>+++ Makefile	14 May 2024 17:29:41 -0000
>@@ -5,7 +5,7 @@ USE_WXNEEDED =		Yes
>
> COMMENT = JavaScript runtime built on Chrome's V8 JavaScript engine
>
>-NODE_VERSION =		v18.19.1
>+NODE_VERSION =		v20.13.1
> PLEDGE_VER =		1.1.3
> DISTFILES =		${DISTNAME}-headers.tar.gz \
> 			${DISTNAME}.tar.xz
>@@ -14,7 +14,6 @@ DISTFILES.pledge =	node-pledge-{}${PLEDG
> DISTNAME =		node-${NODE_VERSION}
> PKGNAME =		${DISTNAME:S/v//g}
> EPOCH =			0
>-REVISION =		0
>
> SITES.pledge =		https://github.com/qbit/node-pledge/archive/
>
>@@ -50,7 +49,7 @@ RUN_DEPENDS =		devel/gmake \
> # Needed to build js_native_api_v8_internals.h
> TEST_DEPENDS =		devel/gtest
>
>-TEST_TARGET =		test-only
>+TEST_TARGET =		check
> CONFIGURE_STYLE =	simple
> CONFIGURE_SCRIPT =	configure
>
>@@ -72,8 +71,8 @@ SUBST_VARS +=		EOPENSSL_LIB
>
> # uses a wide range of OpenSSL API and only really supports boring/openssl
> LIB_DEPENDS +=		archivers/brotli \
>-			devel/libuv \
> 			net/libcares \
>+			devel/libuv \
> 			textproc/icu4c \
> 			www/nghttp2 \
> 			security/openssl/3.1
>Index: distinfo
>===================================================================
>RCS file: /cvs/ports/lang/node/distinfo,v
>diff -u -p -r1.75 distinfo
>--- distinfo	19 Feb 2024 07:45:39 -0000	1.75
>+++ distinfo	14 May 2024 17:29:41 -0000
>@@ -1,6 +1,6 @@
> SHA256 (node-pledge-1.1.3.tar.gz) = fEaXvLg6hYEJ69K+mgQFizf8DiJY2/DtyFJB/pEanVU=
>-SHA256 (node-v18.19.1-headers.tar.gz) = JrnSZiPunJa/SfEq8t34CtUfdO4hmh78TOvCl+983ps=
>-SHA256 (node-v18.19.1.tar.xz) = CQ+WouzeCAtrOCxtZCvKXQvkcCp4y1Vb578CsgvRbe0=
>+SHA256 (node-v20.13.1-headers.tar.gz) = +BYHlm1REnbuwpEjGiMp4rYm1e1z6MtaE2FqajIPYLI=
>+SHA256 (node-v20.13.1.tar.xz) = eReGoJAjJBy35PfWXskKqSS7ORQf97ttWh3t9970tOc=
> SIZE (node-pledge-1.1.3.tar.gz) = 3167
>-SIZE (node-v18.19.1-headers.tar.gz) = 8716368
>-SIZE (node-v18.19.1.tar.xz) = 41250068
>+SIZE (node-v20.13.1-headers.tar.gz) = 8760725
>+SIZE (node-v20.13.1.tar.xz) = 41770976
>Index: patches/patch-Makefile
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-Makefile,v
>diff -u -p -r1.19 patch-Makefile
>--- patches/patch-Makefile	26 Sep 2023 10:44:19 -0000	1.19
>+++ patches/patch-Makefile	14 May 2024 17:29:41 -0000
>@@ -7,10 +7,10 @@ Index: Makefile
>  .PHONY: install
> -install: all ## Installs node into $PREFIX (default=/usr/local).
> +install: all build-pledge ## Installs node into $PREFIX (default=/usr/local).
>- 	$(PYTHON) tools/install.py $@ '$(DESTDIR)' '$(PREFIX)'
>+ 	$(PYTHON) tools/install.py $@ --dest-dir '$(DESTDIR)' --prefix '$(PREFIX)'
>
>  .PHONY: uninstall
>-@@ -420,6 +420,12 @@ test/addons/.buildstamp: $(ADDONS_PREREQS) \
>+@@ -433,6 +433,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
>Index: patches/patch-common_gypi
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-common_gypi,v
>diff -u -p -r1.30 patch-common_gypi
>--- patches/patch-common_gypi	26 Sep 2023 10:44:19 -0000	1.30
>+++ patches/patch-common_gypi	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: common.gypi
> --- common.gypi.orig
> +++ common.gypi
>-@@ -180,7 +180,6 @@
>+@@ -189,7 +189,6 @@
>              }],
>            ],
>          },
>@@ -9,7 +9,7 @@ Index: common.gypi
>          'conditions': [
>            ['enable_lto=="true"', {
>              'cflags': ['<(lto)'],
>-@@ -409,7 +408,9 @@
>+@@ -473,7 +472,9 @@
>            }],
>            ['OS=="openbsd"', {
>              'cflags': [ '-I/usr/local/include' ],
>@@ -20,7 +20,7 @@ Index: common.gypi
>            }],
>            ['_toolset=="host"', {
>              'conditions': [
>-@@ -426,7 +427,7 @@
>+@@ -490,7 +491,7 @@
>                  'ldflags': [ '-m32' ],
>                }],
>                [ 'host_arch=="ppc64" and OS not in "aix os400"', {
>@@ -29,7 +29,7 @@ Index: common.gypi
>                  'ldflags': [ '-m64' ],
>                }],
>                [ 'host_arch=="s390x" and OS=="linux"', {
>-@@ -450,7 +451,7 @@
>+@@ -514,7 +515,7 @@
>                  'ldflags': [ '-m32' ],
>                }],
>                [ 'target_arch=="ppc64" and OS not in "aix os400"', {
>Index: patches/patch-configure
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-configure,v
>diff -u -p -r1.2 patch-configure
>--- patches/patch-configure	19 Feb 2023 12:27:19 -0000	1.2
>+++ patches/patch-configure	14 May 2024 17:29:41 -0000
>@@ -1,10 +1,11 @@
> Index: configure
> --- configure.orig
> +++ configure
>-@@ -4,12 +4,6 @@
>+@@ -4,13 +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' '''
>+-command -v python3.12 >/dev/null && exec python3.12 "$0" "$@"
> -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" "$@"
>Index: patches/patch-configure_py
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-configure_py,v
>diff -u -p -r1.4 patch-configure_py
>--- patches/patch-configure_py	15 Aug 2023 13:46:36 -0000	1.4
>+++ patches/patch-configure_py	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: configure.py
> --- configure.py.orig
> +++ configure.py
>-@@ -1560,6 +1560,10 @@ def configure_v8(o):
>+@@ -1540,6 +1540,10 @@ def configure_v8(o):
>      raise Exception(
>          'Only one of the --v8-enable-object-print or --v8-disable-object-print options '
>          'can be specified at a time.')
>Index: patches/patch-deps_ada_ada_cpp
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_ada_ada_cpp,v
>diff -u -p -r1.1 patch-deps_ada_ada_cpp
>--- patches/patch-deps_ada_ada_cpp	7 Dec 2023 17:01:27 -0000	1.1
>+++ patches/patch-deps_ada_ada_cpp	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/ada/ada.cpp
> --- deps/ada/ada.cpp.orig
> +++ deps/ada/ada.cpp
>-@@ -10512,7 +10512,7 @@ ada_unused std::string get_state(ada::state s) {
>+@@ -10485,7 +10485,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,7 +10,7 @@ Index: deps/ada/ada.cpp
>        return "Query";
>      case ada::state::PATH:
>        return "Path";
>-@@ -12504,7 +12504,7 @@ result_type parse_url(std::string_view user_input,
>+@@ -12573,7 +12573,7 @@ result_type parse_url(std::string_view user_input,
>            // state to query state.
>            if ((input_position != input_size) &&
>                (url_data[input_position] == '?')) {
>@@ -19,7 +19,7 @@ Index: deps/ada/ada.cpp
>            }
>            // Otherwise, if c is not the EOF code point:
>            else if (input_position != input_size) {
>-@@ -12599,7 +12599,7 @@ result_type parse_url(std::string_view user_input,
>+@@ -12668,7 +12668,7 @@ result_type parse_url(std::string_view user_input,
>
>          break;
>        }
>@@ -28,7 +28,7 @@ Index: deps/ada/ada.cpp
>          ada_log("QUERY ", helpers::substring(url_data, input_position));
>          // Let queryPercentEncodeSet be the special-query percent-encode set if
>          // url is special; otherwise the query percent-encode set.
>-@@ -12681,7 +12681,7 @@ result_type parse_url(std::string_view user_input,
>+@@ -12750,7 +12750,7 @@ result_type parse_url(std::string_view user_input,
>          size_t location = view.find('?');
>          if (location != std::string_view::npos) {
>            view.remove_suffix(view.size() - location);
>@@ -37,7 +37,7 @@ Index: deps/ada/ada.cpp
>            input_position += location + 1;
>          } else {
>            input_position = input_size + 1;
>-@@ -12734,7 +12734,7 @@ result_type parse_url(std::string_view user_input,
>+@@ -12803,7 +12803,7 @@ result_type parse_url(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] == '?')) {
>@@ -46,7 +46,7 @@ Index: deps/ada/ada.cpp
>          }
>          // Otherwise, if c is not the EOF code point:
>          else if (input_position != input_size) {
>-@@ -12758,7 +12758,7 @@ result_type parse_url(std::string_view user_input,
>+@@ -12827,7 +12827,7 @@ result_type parse_url(std::string_view user_input,
>          // Furthermore, we can immediately locate the '?'.
>          size_t locofquestionmark = view.find('?');
>          if (locofquestionmark != std::string_view::npos) {
>@@ -55,7 +55,7 @@ Index: deps/ada/ada.cpp
>            view.remove_suffix(view.size() - locofquestionmark);
>            input_position += locofquestionmark + 1;
>          } else {
>-@@ -12918,7 +12918,7 @@ result_type parse_url(std::string_view user_input,
>+@@ -12987,7 +12987,7 @@ result_type parse_url(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] == '?') {
>Index: patches/patch-deps_ada_ada_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_ada_ada_h,v
>diff -u -p -r1.1 patch-deps_ada_ada_h
>--- patches/patch-deps_ada_ada_h	7 Dec 2023 17:01:27 -0000	1.1
>+++ patches/patch-deps_ada_ada_h	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/ada/ada.h
> --- deps/ada/ada.h.orig
> +++ deps/ada/ada.h
>-@@ -1219,7 +1219,7 @@ enum class state {
>+@@ -1229,7 +1229,7 @@ enum class state {
>    SPECIAL_AUTHORITY_IGNORE_SLASHES,
>    SPECIAL_AUTHORITY_SLASHES,
>    SPECIAL_RELATIVE_OR_AUTHORITY,
>Index: patches/patch-deps_base64_base64_Makefile
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_base64_base64_Makefile,v
>diff -u -p -r1.1 patch-deps_base64_base64_Makefile
>--- patches/patch-deps_base64_base64_Makefile	29 Dec 2022 23:34:13 -0000	1.1
>+++ patches/patch-deps_base64_base64_Makefile	14 May 2024 17:29:41 -0000
>@@ -1,9 +1,10 @@
> Index: deps/base64/base64/Makefile
> --- deps/base64/base64/Makefile.orig
> +++ deps/base64/base64/Makefile
>-@@ -1,4 +1,4 @@
>--CFLAGS += -std=c99 -O3 -Wall -Wextra -pedantic
>-+CFLAGS += -std=c99 -Wall -Wextra -pedantic
>-
>+@@ -1,5 +1,5 @@
>+ CFLAGS += -std=c99 -O3 -Wall -Wextra -pedantic -DBASE64_STATIC_DEFINE
>+-
>++CFLAGS += -std=c99 -Wall -Wextra -pedantic -DBASE64_STATIC_DEFINE
>  # Set OBJCOPY if not defined by environment:
>  OBJCOPY ?= objcopy
>+
>Index: patches/patch-deps_v8_include_v8-internal_h
>===================================================================
>RCS file: patches/patch-deps_v8_include_v8-internal_h
>diff -N patches/patch-deps_v8_include_v8-internal_h
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_include_v8-internal_h	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,12 @@
>+Index: deps/v8/include/v8-internal.h
>+--- deps/v8/include/v8-internal.h.orig
>++++ deps/v8/include/v8-internal.h
>+@@ -173,7 +173,7 @@ using SandboxedPointer_t = Address;
>+ #ifdef V8_ENABLE_SANDBOX
>+
>+ // Size of the sandbox, excluding the guard regions surrounding it.
>+-#ifdef V8_TARGET_OS_ANDROID
>++#if defined(V8_TARGET_OS_ANDROID) || defined(V8_TARGET_OS_OPENBSD)
>+ // On Android, most 64-bit devices seem to be configured with only 39 bits of
>+ // virtual address space for userspace. As such, limit the sandbox to 128GB (a
>+ // quarter of the total available address space).
>Index: patches/patch-deps_v8_include_v8config_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_include_v8config_h,v
>diff -u -p -r1.3 patch-deps_v8_include_v8config_h
>--- patches/patch-deps_v8_include_v8config_h	29 Dec 2022 23:34:13 -0000	1.3
>+++ patches/patch-deps_v8_include_v8config_h	14 May 2024 17:29:41 -0000
>@@ -1,25 +1,25 @@
> Index: deps/v8/include/v8config.h
> --- deps/v8/include/v8config.h.orig
> +++ deps/v8/include/v8config.h
>-@@ -183,6 +183,8 @@ path. Add it with -I<path> to the command line
>+@@ -184,6 +184,8 @@ path. Add it with -I<path> to the command line
>    && !defined(V8_TARGET_OS_FUCHSIA) \
>    && !defined(V8_TARGET_OS_IOS) \
>    && !defined(V8_TARGET_OS_LINUX) \
> +  && !defined(V8_TARGET_OS_OPENBSD) \
> +  && !defined(V8_TARGET_OS_FREEBSD) \
>    && !defined(V8_TARGET_OS_MACOS) \
>-   && !defined(V8_TARGET_OS_WIN)
>- #  error No known target OS defined.
>-@@ -194,6 +196,8 @@ path. Add it with -I<path> to the command line
>+   && !defined(V8_TARGET_OS_WIN) \
>+   && !defined(V8_TARGET_OS_CHROMEOS)
>+@@ -196,6 +198,8 @@ path. Add it with -I<path> to the command line
>    || defined(V8_TARGET_OS_FUCHSIA) \
>    || defined(V8_TARGET_OS_IOS) \
>    || defined(V8_TARGET_OS_LINUX) \
> +  || defined(V8_TARGET_OS_OPENBSD) \
> +  || defined(V8_TARGET_OS_FREEBSD) \
>    || defined(V8_TARGET_OS_MACOS) \
>-   || defined(V8_TARGET_OS_WIN)
>- #  error A target OS is defined but V8_HAVE_TARGET_OS is unset.
>-@@ -214,6 +218,16 @@ path. Add it with -I<path> to the command line
>+   || defined(V8_TARGET_OS_WIN) \
>+   || defined(V8_TARGET_OS_CHROMEOS)
>+@@ -217,6 +221,16 @@ path. Add it with -I<path> to the command line
>
>  #ifdef V8_OS_LINUX
>  # define V8_TARGET_OS_LINUX
>Index: patches/patch-deps_v8_src_api_api_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_api_api_cc,v
>diff -u -p -r1.3 patch-deps_v8_src_api_api_cc
>--- patches/patch-deps_v8_src_api_api_cc	29 Dec 2022 23:34:13 -0000	1.3
>+++ patches/patch-deps_v8_src_api_api_cc	14 May 2024 17:29:41 -0000
>@@ -1,16 +1,16 @@
> Index: deps/v8/src/api/api.cc
> --- deps/v8/src/api/api.cc.orig
> +++ deps/v8/src/api/api.cc
>-@@ -138,7 +138,7 @@
>+@@ -142,7 +142,7 @@
>  #include "src/wasm/wasm-serialization.h"
>  #endif  // V8_ENABLE_WEBASSEMBLY
>
> -#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD
> +#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
>  #include <signal.h>
>- #include "include/v8-wasm-trap-handler-posix.h"
>- #include "src/trap-handler/handler-inside-posix.h"
>-@@ -6077,7 +6077,7 @@ bool v8::V8::Initialize(const int build_config) {
>+ #include <unistd.h>
>+
>+@@ -6454,7 +6454,7 @@ bool v8::V8::Initialize(const int build_config) {
>    return true;
>  }
>
>Index: patches/patch-deps_v8_src_base_atomicops_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_base_atomicops_h,v
>diff -u -p -r1.6 patch-deps_v8_src_base_atomicops_h
>--- patches/patch-deps_v8_src_base_atomicops_h	4 Jan 2023 17:06:33 -0000	1.6
>+++ patches/patch-deps_v8_src_base_atomicops_h	14 May 2024 17:29:41 -0000
>@@ -14,7 +14,7 @@ Index: deps/v8/src/base/atomicops.h
>  using Atomic64 = int64_t;
>  #else
>  using Atomic64 = intptr_t;
>-@@ -257,7 +257,7 @@ inline Atomic32 SeqCst_Load(volatile const Atomic32* p
>+@@ -258,7 +258,7 @@ inline Atomic32 SeqCst_Load(volatile const Atomic32* p
>                                     std::memory_order_seq_cst);
>  }
>
>@@ -23,12 +23,3 @@ Index: deps/v8/src/base/atomicops.h
>
>  inline Atomic64 Relaxed_CompareAndSwap(volatile Atomic64* ptr,
>                                         Atomic64 old_value, Atomic64 new_value) {
>-@@ -468,7 +468,7 @@ inline int Relaxed_Memcmp(volatile const Atomic8* s1,
>-
>- // On some platforms we need additional declarations to make
>- // AtomicWord compatible with our other Atomic* types.
>--#if defined(V8_OS_DARWIN) || defined(V8_OS_OPENBSD) || defined(V8_OS_AIX)
>-+#if defined(V8_OS_DARWIN) || defined(V8_OS_AIX)
>- #include "src/base/atomicops_internals_atomicword_compat.h"
>- #endif
>-
>Index: patches/patch-deps_v8_src_base_bit-field_h
>===================================================================
>RCS file: patches/patch-deps_v8_src_base_bit-field_h
>diff -N patches/patch-deps_v8_src_base_bit-field_h
>--- patches/patch-deps_v8_src_base_bit-field_h	7 Dec 2023 17:01:27 -0000	1.2
>+++ /dev/null	1 Jan 1970 00:00:00 -0000
>@@ -1,18 +0,0 @@
>-
>-Workaround for clang 16.  known to not workaround in clang 17.
>-
>-Index: deps/v8/src/base/bit-field.h
>---- deps/v8/src/base/bit-field.h.orig
>-+++ deps/v8/src/base/bit-field.h
>-@@ -39,8 +39,11 @@ class BitField final {
>-   static constexpr int kLastUsedBit = kShift + kSize - 1;
>-   static constexpr U kNumValues = U{1} << kSize;
>-
>-+  #pragma clang diagnostic push
>-+  #pragma clang diagnostic ignored "-Wenum-constexpr-conversion"
>-   // Value for the field with all bits set.
>-   static constexpr T kMax = static_cast<T>(kNumValues - 1);
>-+  #pragma clang diagnostic pop
>-
>-   template <class T2, int size2>
>-   using Next = BitField<T2, kShift + kSize, size2, U>;
>Index: patches/patch-deps_v8_src_base_cpu_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_base_cpu_cc,v
>diff -u -p -r1.5 patch-deps_v8_src_base_cpu_cc
>--- patches/patch-deps_v8_src_base_cpu_cc	29 Dec 2022 23:34:13 -0000	1.5
>+++ patches/patch-deps_v8_src_base_cpu_cc	14 May 2024 17:29:41 -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
>-@@ -871,6 +871,8 @@ CPU::CPU()
>+@@ -868,6 +868,8 @@ CPU::CPU()
>  #endif  // !USE_SIMULATOR
>
>  #elif V8_HOST_ARCH_RISCV64
>@@ -13,7 +13,7 @@ Index: deps/v8/src/base/cpu.cc
>    CPUInfo cpu_info;
>    char* features = cpu_info.ExtractField("isa");
>
>-@@ -881,6 +883,14 @@ CPU::CPU()
>+@@ -878,6 +880,14 @@ CPU::CPU()
>      has_fpu_ = true;
>      has_rvv_ = true;
>    }
>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
>diff -u -p -r1.3 patch-deps_v8_src_base_platform-openbsd_cc
>--- patches/patch-deps_v8_src_base_platform-openbsd_cc	29 Dec 2022 23:34:13 -0000	1.3
>+++ patches/patch-deps_v8_src_base_platform-openbsd_cc	14 May 2024 17:29:41 -0000
>@@ -15,7 +15,7 @@ Index: deps/v8/src/base/platform/platfor
>  void OS::AdjustSchedulingParams() {}
> +
> +// static
>-+Stack::StackSlot Stack::GetStackStart() {
>++Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
> +  stack_t ss;
> +  void *base;
> +  if (pthread_stackseg_np(pthread_self(), &ss) != 0)
>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
>diff -u -p -r1.4 patch-deps_v8_src_base_platform-posix_cc
>--- patches/patch-deps_v8_src_base_platform-posix_cc	7 Dec 2023 17:01:27 -0000	1.4
>+++ patches/patch-deps_v8_src_base_platform-posix_cc	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,16 @@
> 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
>-@@ -68,7 +68,7 @@
>+@@ -53,7 +53,7 @@
>+ #if V8_OS_DARWIN
>+ #include <mach/mach.h>
>+ #include <malloc/malloc.h>
>+-#else
>++#elif !V8_OS_BSD
>+ #include <malloc.h>
>+ #endif
>+
>+@@ -71,7 +71,7 @@
>  #include <sys/syscall.h>
>  #endif
>
>@@ -10,7 +19,7 @@ Index: deps/v8/src/base/platform/platfor
>  #define MAP_ANONYMOUS MAP_ANON
>  #endif
>
>-@@ -300,8 +300,15 @@ void OS::SetRandomMmapSeed(int64_t seed) {
>+@@ -303,8 +303,15 @@ void OS::SetRandomMmapSeed(int64_t seed) {
>    }
>  }
>
>@@ -26,7 +35,7 @@ Index: deps/v8/src/base/platform/platfor
>    uintptr_t raw_addr;
>    {
>      MutexGuard guard(rng_mutex.Pointer());
>-@@ -392,6 +399,7 @@ void* OS::GetRandomMmapAddr() {
>+@@ -399,6 +406,7 @@ void* OS::GetRandomMmapAddr() {
>  #endif
>    return reinterpret_cast<void*>(raw_addr);
>  }
>@@ -34,7 +43,7 @@ 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
>-@@ -600,7 +608,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor
>+@@ -667,7 +675,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor
>
>  // static
>  bool OS::HasLazyCommits() {
>@@ -43,7 +52,7 @@ Index: deps/v8/src/base/platform/platfor
>    return true;
>  #else
>    // TODO(bbudge) Return true for all POSIX platforms.
>-@@ -1219,7 +1227,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void*
>+@@ -1244,7 +1252,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) && \
>@@ -51,4 +60,4 @@ Index: deps/v8/src/base/platform/platfor
> +    !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD)
>
>  // static
>- Stack::StackSlot Stack::GetStackStart() {
>+ Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
>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
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_src_base_platform_memory_h	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,17 @@
>+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 <malloc/malloc.h>
>+-#else  // !V8_OS_DARWIN
>++#elif !V8_OS_BSD
>+ #include <malloc.h>
>+ #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_baseline_x64_baseline-assembler-x64-inl_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_baseline_x64_baseline-assembler-x64-inl_h,v
>diff -u -p -r1.1 patch-deps_v8_src_baseline_x64_baseline-assembler-x64-inl_h
>--- patches/patch-deps_v8_src_baseline_x64_baseline-assembler-x64-inl_h	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_baseline_x64_baseline-assembler-x64-inl_h	14 May 2024 17:29:41 -0000
>@@ -1,9 +1,9 @@
> Index: deps/v8/src/baseline/x64/baseline-assembler-x64-inl.h
> --- deps/v8/src/baseline/x64/baseline-assembler-x64-inl.h.orig
> +++ deps/v8/src/baseline/x64/baseline-assembler-x64-inl.h
>-@@ -98,9 +98,7 @@ MemOperand BaselineAssembler::FeedbackVectorOperand()
>+@@ -73,9 +73,7 @@ MemOperand BaselineAssembler::FeedbackVectorOperand()
>+
>  void BaselineAssembler::Bind(Label* label) { __ bind(label); }
>- void BaselineAssembler::BindWithoutJumpTarget(Label* label) { __ bind(label); }
>
> -void BaselineAssembler::JumpTarget() {
> -  // NOP on x64.
>Index: patches/patch-deps_v8_src_builtins_x64_builtins-x64_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_builtins_x64_builtins-x64_cc,v
>diff -u -p -r1.1 patch-deps_v8_src_builtins_x64_builtins-x64_cc
>--- patches/patch-deps_v8_src_builtins_x64_builtins-x64_cc	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_builtins_x64_builtins-x64_cc	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/builtins/x64/builtins-x64.cc
> --- deps/v8/src/builtins/x64/builtins-x64.cc.orig
> +++ deps/v8/src/builtins/x64/builtins-x64.cc
>-@@ -42,6 +42,8 @@ namespace internal {
>+@@ -43,6 +43,8 @@ namespace internal {
>  #define __ ACCESS_MASM(masm)
>
>  void Builtins::Generate_Adaptor(MacroAssembler* masm, Address address) {
>@@ -10,7 +10,7 @@ Index: deps/v8/src/builtins/x64/builtins
>    __ LoadAddress(kJavaScriptCallExtraArg1Register,
>                   ExternalReference::Create(address));
>    __ Jump(BUILTIN_CODE(masm->isolate(), AdaptorWithBuiltinExitFrame),
>-@@ -456,7 +458,7 @@ void Generate_JSEntryVariant(MacroAssembler* masm, Sta
>+@@ -457,7 +459,7 @@ void Generate_JSEntryVariant(MacroAssembler* masm, Sta
>    // Jump to a faked try block that does the invoke, with a faked catch
>    // block that sets the pending exception.
>    __ jmp(&invoke);
>@@ -19,8 +19,8 @@ Index: deps/v8/src/builtins/x64/builtins
>
>    // Store the current pc as the handler offset. It's used later to create the
>    // handler table.
>-@@ -3716,6 +3718,8 @@ void GenericJSToWasmWrapperHelper(MacroAssembler* masm
>-     RestoreParentSuspender(masm);
>+@@ -3798,6 +3800,8 @@ void GenericJSToWasmWrapperHelper(MacroAssembler* masm
>+     RestoreParentSuspender(masm, rbx, rcx);
>    }
>    __ bind(&suspend);
> +
>@@ -28,7 +28,7 @@ Index: deps/v8/src/builtins/x64/builtins
>    // No need to process the return value if the stack is suspended, there is a
>    // single 'externref' value (the promise) which doesn't require conversion.
>
>-@@ -4068,6 +4072,7 @@ void Builtins::Generate_WasmSuspend(MacroAssembler* ma
>+@@ -4146,6 +4150,7 @@ void Builtins::Generate_WasmSuspend(MacroAssembler* ma
>    LoadJumpBuffer(masm, jmpbuf, true);
>    __ Trap();
>    __ bind(&resume);
>@@ -36,11 +36,11 @@ Index: deps/v8/src/builtins/x64/builtins
>    __ LeaveFrame(StackFrame::STACK_SWITCH);
>    __ ret(0);
>  }
>-@@ -4191,6 +4196,7 @@ void Builtins::Generate_WasmResume(MacroAssembler* mas
>-   LoadJumpBuffer(masm, target_jmpbuf, true);
>+@@ -4289,6 +4294,7 @@ void Generate_WasmResumeHelper(MacroAssembler* masm, w
>+   }
>    __ Trap();
>    __ bind(&suspend);
> +  __ endbr64();
>    __ LeaveFrame(StackFrame::STACK_SWITCH);
>-   __ ret(3);
>- }
>+   // Pop receiver + parameter.
>+   __ ret(2 * kSystemPointerSize);
>Index: patches/patch-deps_v8_src_codegen_riscv64_assembler-riscv64_cc
>===================================================================
>RCS file: patches/patch-deps_v8_src_codegen_riscv64_assembler-riscv64_cc
>diff -N patches/patch-deps_v8_src_codegen_riscv64_assembler-riscv64_cc
>--- patches/patch-deps_v8_src_codegen_riscv64_assembler-riscv64_cc	29 Dec 2022 23:34:13 -0000	1.2
>+++ /dev/null	1 Jan 1970 00:00:00 -0000
>@@ -1,17 +0,0 @@
>-Use static_cast instead of a potentially dangerous reinterpret_cast.
>-Doesn't matter since this file only supports riscv64 where unsigned long and
>-unsigned long long are actually the same size.
>-../deps/v8/src/codegen/riscv64/assembler-riscv64.cc:403:22: error: reinterpret_cast from 'v8::internal::Address' (aka 'unsigned long') to 'uint64_t' (aka 'unsigned long long') is not allowed
>-
>-Index: deps/v8/src/codegen/riscv64/assembler-riscv64.cc
>---- deps/v8/src/codegen/riscv64/assembler-riscv64.cc.orig
>-+++ deps/v8/src/codegen/riscv64/assembler-riscv64.cc
>-@@ -406,7 +406,7 @@ int Assembler::target_at(int pos, bool is_internal) {
>-       Address pc = reinterpret_cast<Address>(buffer_start_ + pos);
>-       pc = target_address_at(pc);
>-       uint64_t instr_address = reinterpret_cast<uint64_t>(buffer_start_ + pos);
>--      uint64_t imm = reinterpret_cast<uint64_t>(pc);
>-+      uint64_t imm = static_cast<uint64_t>(pc);
>-       if (imm == kEndOfJumpChain) {
>-         return kEndOfChain;
>-       } else {
>Index: patches/patch-deps_v8_src_codegen_riscv64_cpu-riscv64_cc
>===================================================================
>RCS file: patches/patch-deps_v8_src_codegen_riscv64_cpu-riscv64_cc
>diff -N patches/patch-deps_v8_src_codegen_riscv64_cpu-riscv64_cc
>--- patches/patch-deps_v8_src_codegen_riscv64_cpu-riscv64_cc	1 Sep 2022 19:23:04 -0000	1.1
>+++ /dev/null	1 Jan 1970 00:00:00 -0000
>@@ -1,39 +0,0 @@
>-Implement instruction cache flush using sysarch(RISCV_SYNC_ICACHE).
>-
>-Index: deps/v8/src/codegen/riscv64/cpu-riscv64.cc
>---- deps/v8/src/codegen/riscv64/cpu-riscv64.cc.orig
>-+++ deps/v8/src/codegen/riscv64/cpu-riscv64.cc
>-@@ -4,7 +4,13 @@
>-
>- // CPU specific code for arm independent of OS goes here.
>-
>--#include <sys/syscall.h>
>-+#ifdef __OpenBSD__
>-+# include <sys/types.h>
>-+# include <machine/sysarch.h>
>-+#else
>-+# include <sys/syscall.h>
>-+#endif
>-+
>- #include <unistd.h>
>-
>- #if V8_TARGET_ARCH_RISCV64
>-@@ -16,6 +22,10 @@ namespace internal {
>-
>- void CpuFeatures::FlushICache(void* start, size_t size) {
>- #if !defined(USE_SIMULATOR)
>-+# ifdef __OpenBSD__
>-+	struct riscv_sync_icache_args args = { (u_int64_t)(uintptr_t)start, size };
>-+	sysarch(RISCV_SYNC_ICACHE, &args);
>-+# else
>-   char* end = reinterpret_cast<char*>(start) + size;
>-   // The definition of this syscall is
>-   // SYSCALL_DEFINE3(riscv_flush_icache, uintptr_t, start,
>-@@ -23,6 +33,7 @@ void CpuFeatures::FlushICache(void* start, size_t size
>-   // The flag here is set to be SYS_RISCV_FLUSH_ICACHE_LOCAL, which is
>-   // defined as 1 in the Linux kernel.
>-   syscall(SYS_riscv_flush_icache, start, end, 1);
>-+# endif // !__OpenBSD__
>- #endif  // !USE_SIMULATOR.
>- }
>-
>Index: patches/patch-deps_v8_src_codegen_riscv64_macro-assembler-riscv64_cc
>===================================================================
>RCS file: patches/patch-deps_v8_src_codegen_riscv64_macro-assembler-riscv64_cc
>diff -N patches/patch-deps_v8_src_codegen_riscv64_macro-assembler-riscv64_cc
>--- patches/patch-deps_v8_src_codegen_riscv64_macro-assembler-riscv64_cc	29 Dec 2022 23:34:13 -0000	1.2
>+++ /dev/null	1 Jan 1970 00:00:00 -0000
>@@ -1,14 +0,0 @@
>-Force picking up the correct RecordEntry function.
>-
>-Index: deps/v8/src/codegen/riscv64/macro-assembler-riscv64.cc
>---- deps/v8/src/codegen/riscv64/macro-assembler-riscv64.cc.orig
>-+++ deps/v8/src/codegen/riscv64/macro-assembler-riscv64.cc
>-@@ -4182,7 +4182,7 @@ void MacroAssembler::JumpToOffHeapInstructionStream(Ad
>-   if (!FLAG_riscv_constant_pool) {
>-     li(kOffHeapTrampolineRegister, Operand(entry, RelocInfo::OFF_HEAP_TARGET));
>-   } else {
>--    RecordEntry(entry, RelocInfo::OFF_HEAP_TARGET);
>-+    RecordEntry(static_cast<uint64_t>(entry), RelocInfo::OFF_HEAP_TARGET);
>-     RecordRelocInfo(RelocInfo::OFF_HEAP_TARGET, entry);
>-     auipc(kOffHeapTrampolineRegister, 0);
>-     ld(kOffHeapTrampolineRegister, kOffHeapTrampolineRegister, 0);
>Index: patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc
>===================================================================
>RCS file: patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc
>diff -N patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_src_codegen_riscv_assembler-riscv_cc	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,103 @@
>+1st hunk:
>+Use static_cast instead of a potentially dangerous reinterpret_cast.
>+Doesn't matter since this file only supports riscv64 where unsigned long and
>+unsigned long long are actually the same size.
>+../deps/v8/src/codegen/riscv64/assembler-riscv64.cc:403:22: error: reinterpret_cast from 'v8::internal::Address' (aka 'unsigned long') to 'uint64_t' (aka 'unsigned long long') is not allowed
>+
>+Other hunks:
>+Fix build errors due to type mismatch between intptr_t (long) and int64_t
>+(long long).
>+
>+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
>+@@ -344,7 +344,7 @@ int Assembler::target_at(int pos, bool is_internal) {
>+       pc = target_address_at(pc);
>+       uintptr_t instr_address =
>+           reinterpret_cast<uintptr_t>(buffer_start_ + pos);
>+-      uintptr_t imm = reinterpret_cast<uintptr_t>(pc);
>++      uintptr_t imm = static_cast<uintptr_t>(pc);
>+       if (imm == kEndOfJumpChain) {
>+         return kEndOfChain;
>+       } else {
>+@@ -891,7 +891,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())) {
>+     GeneralLi(rd, imm);
>+@@ -1060,7 +1060,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
>+@@ -1078,7 +1078,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
>+@@ -1527,7 +1527,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<uint32_t*>(pc);
>+@@ -1820,7 +1820,7 @@ const size_t ConstantPool::kApproxMaxEntryCount = 512;
>+ //  SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
>+ //
>+ //===----------------------------------------------------------------------===//
>+-void Assembler::RecursiveLi(Register rd, int64_t val) {
>++void Assembler::RecursiveLi(Register rd, intptr_t val) {
>+   if (val > 0 && RecursiveLiImplCount(val) > 2) {
>+     unsigned LeadingZeros = base::bits::CountLeadingZeros((uint64_t)val);
>+     uint64_t ShiftedVal = (uint64_t)val << LeadingZeros;
>+@@ -1834,7 +1834,7 @@ void Assembler::RecursiveLi(Register rd, int64_t val)
>+   RecursiveLiImpl(rd, val);
>+ }
>+
>+-int Assembler::RecursiveLiCount(int64_t val) {
>++int Assembler::RecursiveLiCount(intptr_t val) {
>+   if (val > 0 && RecursiveLiImplCount(val) > 2) {
>+     unsigned LeadingZeros = base::bits::CountLeadingZeros((uint64_t)val);
>+     uint64_t ShiftedVal = (uint64_t)val << LeadingZeros;
>+@@ -1849,7 +1849,7 @@ int Assembler::RecursiveLiCount(int64_t val) {
>+   return RecursiveLiImplCount(val);
>+ }
>+
>+-void Assembler::RecursiveLiImpl(Register rd, int64_t Val) {
>++void Assembler::RecursiveLiImpl(Register rd, intptr_t Val) {
>+   if (is_int32(Val)) {
>+     // Depending on the active bits in the immediate Value v, the following
>+     // instruction sequences are emitted:
>+@@ -1926,7 +1926,7 @@ void Assembler::RecursiveLiImpl(Register rd, int64_t V
>+   }
>+ }
>+
>+-int Assembler::RecursiveLiImplCount(int64_t Val) {
>++int Assembler::RecursiveLiImplCount(intptr_t Val) {
>+   int count = 0;
>+   if (is_int32(Val)) {
>+     // Depending on the active bits in the immediate Value v, the following
>+@@ -2007,7 +2007,7 @@ int Assembler::RecursiveLiImplCount(int64_t Val) {
>+   return count;
>+ }
>+
>+-int Assembler::GeneralLiCount(int64_t imm, bool is_get_temp_reg) {
>++int Assembler::GeneralLiCount(intptr_t imm, bool is_get_temp_reg) {
>+   int count = 0;
>+   // imitate Assembler::RV_li
>+   if (is_int32(imm + 0x800)) {
>Index: patches/patch-deps_v8_src_codegen_riscv_cpu-riscv_cc
>===================================================================
>RCS file: patches/patch-deps_v8_src_codegen_riscv_cpu-riscv_cc
>diff -N patches/patch-deps_v8_src_codegen_riscv_cpu-riscv_cc
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_src_codegen_riscv_cpu-riscv_cc	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,39 @@
>+Implement instruction cache flush using sysarch(RISCV_SYNC_ICACHE).
>+
>+Index: deps/v8/src/codegen/riscv/cpu-riscv.cc
>+--- deps/v8/src/codegen/riscv/cpu-riscv.cc.orig
>++++ deps/v8/src/codegen/riscv/cpu-riscv.cc
>+@@ -4,7 +4,13 @@
>+
>+ // CPU specific code for arm independent of OS goes here.
>+
>+-#include <sys/syscall.h>
>++#ifdef __OpenBSD__
>++# include <sys/types.h>
>++# include <machine/sysarch.h>
>++#else
>++# include <sys/syscall.h>
>++#endif
>++
>+ #include <unistd.h>
>+
>+ #include "src/codegen/cpu-features.h"
>+@@ -14,6 +20,10 @@ namespace internal {
>+
>+ void CpuFeatures::FlushICache(void* start, size_t size) {
>+ #if !defined(USE_SIMULATOR)
>++# ifdef __OpenBSD__
>++	struct riscv_sync_icache_args args = { (u_int64_t)(uintptr_t)start, size };
>++	sysarch(RISCV_SYNC_ICACHE, &args);
>++# else
>+   char* end = reinterpret_cast<char*>(start) + size;
>+   // The definition of this syscall is
>+   // SYSCALL_DEFINE3(riscv_flush_icache, uintptr_t, start,
>+@@ -21,6 +31,7 @@ void CpuFeatures::FlushICache(void* start, size_t size
>+   // The flag here is set to be SYS_RISCV_FLUSH_ICACHE_LOCAL, which is
>+   // defined as 1 in the Linux kernel.
>+   syscall(SYS_riscv_flush_icache, start, end, 1);
>++# endif // !__OpenBSD__
>+ #endif  // !USE_SIMULATOR.
>+ }
>+
>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
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_src_codegen_riscv_macro-assembler-riscv_cc	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,12 @@
>+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
>+@@ -2149,7 +2149,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_codegen_x64_assembler-x64_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_codegen_x64_assembler-x64_cc,v
>diff -u -p -r1.1 patch-deps_v8_src_codegen_x64_assembler-x64_cc
>--- patches/patch-deps_v8_src_codegen_x64_assembler-x64_cc	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_codegen_x64_assembler-x64_cc	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/codegen/x64/assembler-x64.cc
> --- deps/v8/src/codegen/x64/assembler-x64.cc.orig
> +++ deps/v8/src/codegen/x64/assembler-x64.cc
>-@@ -1266,6 +1266,14 @@ void Assembler::hlt() {
>+@@ -1268,6 +1268,14 @@ void Assembler::hlt() {
>    emit(0xF4);
>  }
>
>@@ -16,7 +16,7 @@ Index: deps/v8/src/codegen/x64/assembler
>  void Assembler::emit_idiv(Register src, int size) {
>    EnsureSpace ensure_space(this);
>    emit_rex(src, size);
>-@@ -1545,16 +1553,22 @@ void Assembler::jmp(Handle<CodeT> target, RelocInfo::M
>+@@ -1527,16 +1535,22 @@ void Assembler::jmp(Handle<Code> target, RelocInfo::Mo
>    emitl(code_target_index);
>  }
>
>Index: patches/patch-deps_v8_src_codegen_x64_assembler-x64_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_codegen_x64_assembler-x64_h,v
>diff -u -p -r1.1 patch-deps_v8_src_codegen_x64_assembler-x64_h
>--- patches/patch-deps_v8_src_codegen_x64_assembler-x64_h	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_codegen_x64_assembler-x64_h	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/codegen/x64/assembler-x64.h
> --- deps/v8/src/codegen/x64/assembler-x64.h.orig
> +++ deps/v8/src/codegen/x64/assembler-x64.h
>-@@ -770,6 +770,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBa
>+@@ -856,6 +856,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBa
>    void ret(int imm16);
>    void ud2();
>    void setcc(Condition cc, Register reg);
>@@ -9,8 +9,8 @@ Index: deps/v8/src/codegen/x64/assembler
>
>    void pblendw(XMMRegister dst, Operand src, uint8_t mask);
>    void pblendw(XMMRegister dst, XMMRegister src, uint8_t mask);
>-@@ -819,8 +820,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBa
>-   void jmp(Address entry, RelocInfo::Mode rmode);
>+@@ -904,8 +905,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBa
>+   void jmp(Handle<Code> target, RelocInfo::Mode rmode);
>
>    // Jump near absolute indirect (r64)
> -  void jmp(Register adr);
>Index: patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_cc,v
>diff -u -p -r1.1 patch-deps_v8_src_codegen_x64_macro-assembler-x64_cc
>--- patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_cc	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_cc	14 May 2024 17:29:41 -0000
>@@ -1,21 +1,21 @@
> Index: deps/v8/src/codegen/x64/macro-assembler-x64.cc
> --- deps/v8/src/codegen/x64/macro-assembler-x64.cc.orig
> +++ deps/v8/src/codegen/x64/macro-assembler-x64.cc
>-@@ -46,6 +46,8 @@ Operand StackArgumentsAccessor::GetArgumentOperand(int
>+@@ -49,6 +49,8 @@ Operand StackArgumentsAccessor::GetArgumentOperand(int
>    return Operand(rsp, kPCOnStackSize + index * kSystemPointerSize);
>  }
>
>-+void TurboAssembler::CodeEntry() { endbr64(); }
>++void MacroAssembler::CodeEntry() { endbr64(); }
> +
>  void MacroAssembler::Load(Register destination, ExternalReference source) {
>    if (root_array_available_ && options().enable_root_relative_access) {
>      intptr_t delta = RootRegisterOffsetForExternalReference(isolate(), source);
>-@@ -433,7 +435,7 @@ void TurboAssembler::LoadExternalPointerField(
>-   }
>-   movl(destination, field_operand);
>-   shrq(destination, Immediate(kExternalPointerIndexShift));
>--  movq(destination, Operand(scratch, destination, times_8, 0));
>-+  movq(destination, Operand(scratch, destination, times_8, 0), /*notrack=*/true);
>-   movq(scratch, Immediate64(~tag));
>-   andq(destination, scratch);
>- #else
>+@@ -1701,7 +1703,7 @@ void MacroAssembler::Switch(Register scratch, Register
>+   cmpq(reg, Immediate(num_labels));
>+   j(above_equal, &fallthrough);
>+   leaq(table, MemOperand(&jump_table));
>+-  jmp(MemOperand(table, reg, times_8, 0));
>++  jmp(MemOperand(table, reg, times_8, 0), /*notrack=*/true);
>+   // Emit the jump table inline, under the assumption that it's not too big.
>+   Align(kSystemPointerSize);
>+   bind(&jump_table);
>Index: patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_h,v
>diff -u -p -r1.1 patch-deps_v8_src_codegen_x64_macro-assembler-x64_h
>--- patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_h	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_codegen_x64_macro-assembler-x64_h	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/codegen/x64/macro-assembler-x64.h
> --- deps/v8/src/codegen/x64/macro-assembler-x64.h.orig
> +++ deps/v8/src/codegen/x64/macro-assembler-x64.h
>-@@ -556,11 +556,14 @@ class V8_EXPORT_PRIVATE TurboAssembler
>+@@ -577,11 +577,14 @@ class V8_EXPORT_PRIVATE MacroAssembler
>
>    // Define a function entrypoint. This doesn't emit any code for this
>    // architecture, as control-flow integrity is not supported for it.
>Index: patches/patch-deps_v8_src_compiler_backend_x64_code-generator-x64_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_compiler_backend_x64_code-generator-x64_cc,v
>diff -u -p -r1.1 patch-deps_v8_src_compiler_backend_x64_code-generator-x64_cc
>--- patches/patch-deps_v8_src_compiler_backend_x64_code-generator-x64_cc	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_compiler_backend_x64_code-generator-x64_cc	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/compiler/backend/x64/code-generator-x64.cc
> --- deps/v8/src/compiler/backend/x64/code-generator-x64.cc.orig
> +++ deps/v8/src/compiler/backend/x64/code-generator-x64.cc
>-@@ -4583,7 +4583,7 @@ void CodeGenerator::AssembleArchTableSwitch(Instructio
>+@@ -5497,7 +5497,7 @@ void CodeGenerator::AssembleArchTableSwitch(Instructio
>    __ cmpl(input, Immediate(case_count));
>    __ j(above_equal, GetLabel(i.InputRpo(1)));
>    __ leaq(kScratchRegister, Operand(table));
>Index: patches/patch-deps_v8_src_execution_isolate_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_execution_isolate_cc,v
>diff -u -p -r1.2 patch-deps_v8_src_execution_isolate_cc
>--- patches/patch-deps_v8_src_execution_isolate_cc	19 Feb 2023 12:27:19 -0000	1.2
>+++ patches/patch-deps_v8_src_execution_isolate_cc	14 May 2024 17:29:41 -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
>-@@ -141,6 +141,10 @@
>+@@ -145,6 +145,10 @@
>  #include "src/execution/simulator-base.h"
>  #endif
>
>@@ -9,17 +9,19 @@ Index: deps/v8/src/execution/isolate.cc
> +#include <sys/mman.h>
> +#endif
> +
>- extern "C" const uint8_t* v8_Default_embedded_blob_code_;
>+ 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_;
>-@@ -3691,6 +3695,11 @@ void Isolate::InitializeDefaultEmbeddedBlob() {
>+ extern "C" const uint8_t v8_Default_embedded_blob_data_[];
>+@@ -3864,6 +3868,13 @@ void Isolate::InitializeDefaultEmbeddedBlob() {
>    uint32_t code_size = DefaultEmbeddedBlobCodeSize();
>    const uint8_t* data = DefaultEmbeddedBlobData();
>    uint32_t data_size = DefaultEmbeddedBlobDataSize();
> +
>-+#if defined(V8_OS_OPENBSD)
>-+  mprotect(reinterpret_cast<void *>(const_cast<uint8_t *>(code)),
>-+          code_size, PROT_READ | PROT_EXEC);
>++#if defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
>++  if (code_size > 0) {
>++    mprotect(reinterpret_cast<void *>(const_cast<uint8_t *>(code)),
>++            code_size, PROT_READ | PROT_EXEC);
>++  }
> +#endif
>
>    if (StickyEmbeddedBlobCode() != nullptr) {
>Index: patches/patch-deps_v8_src_flags_flags_cc
>===================================================================
>RCS file: patches/patch-deps_v8_src_flags_flags_cc
>diff -N patches/patch-deps_v8_src_flags_flags_cc
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_src_flags_flags_cc	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,37 @@
>+Index: deps/v8/src/flags/flags.cc
>+--- deps/v8/src/flags/flags.cc.orig
>++++ deps/v8/src/flags/flags.cc
>+@@ -13,6 +13,10 @@
>+ #include <set>
>+ #include <sstream>
>+
>++#if V8_OS_OPENBSD
>++#include <sys/mman.h>
>++#endif
>++
>+ #include "src/base/functional.h"
>+ #include "src/base/logging.h"
>+ #include "src/base/platform/platform.h"
>+@@ -32,7 +36,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
>+@@ -899,6 +907,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));
>++#if V8_OS_OPENBSD
>++  if (mimmutable(&v8_flags, sizeof(v8_flags)) == -1)
>++    FATAL("unable to set immutability of v8_flags");
>++#endif
>+ }
>+
>+ // static
>Index: patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64-inl_h
>===================================================================
>RCS file: patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64-inl_h
>diff -N patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64-inl_h
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64-inl_h	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,15 @@
>+Index: deps/v8/src/maglev/x64/maglev-assembler-x64-inl.h
>+--- deps/v8/src/maglev/x64/maglev-assembler-x64-inl.h.orig
>++++ deps/v8/src/maglev/x64/maglev-assembler-x64-inl.h
>+@@ -181,7 +181,10 @@ void MaglevAssembler::PushReverse(T... vals) {
>+   detail::PushAllHelper<T...>::PushReverse(this, vals...);
>+ }
>+
>+-inline void MaglevAssembler::BindJumpTarget(Label* label) { bind(label); }
>++inline void MaglevAssembler::BindJumpTarget(Label* label) {
>++  bind(label);
>++  endbr64();
>++}
>+
>+ inline void MaglevAssembler::BindBlock(BasicBlock* block) {
>+   bind(block->label());
>Index: patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64_cc
>===================================================================
>RCS file: patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64_cc
>diff -N patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64_cc
>--- /dev/null	1 Jan 1970 00:00:00 -0000
>+++ patches/patch-deps_v8_src_maglev_x64_maglev-assembler-x64_cc	14 May 2024 17:29:41 -0000
>@@ -0,0 +1,16 @@
>+Index: deps/v8/src/maglev/x64/maglev-assembler-x64.cc
>+--- deps/v8/src/maglev/x64/maglev-assembler-x64.cc.orig
>++++ deps/v8/src/maglev/x64/maglev-assembler-x64.cc
>+@@ -631,10 +631,11 @@ void MaglevAssembler::TryTruncateDoubleToInt32(Registe
>+ }
>+
>+ void MaglevAssembler::Prologue(Graph* graph) {
>++  CodeEntry();
>+   BailoutIfDeoptimized(rbx);
>+
>+   if (graph->has_recursive_calls()) {
>+-    bind(code_gen_state()->entry_label());
>++    BindJumpTarget(code_gen_state()->entry_label());
>+   }
>+
>+   // Tiering support.
>Index: patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_cc,v
>diff -u -p -r1.1 patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_cc
>--- patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_cc	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_cc	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/regexp/x64/regexp-macro-assembler-x64.cc
> --- deps/v8/src/regexp/x64/regexp-macro-assembler-x64.cc.orig
> +++ deps/v8/src/regexp/x64/regexp-macro-assembler-x64.cc
>-@@ -109,6 +109,7 @@ RegExpMacroAssemblerX64::RegExpMacroAssemblerX64(Isola
>+@@ -110,6 +110,7 @@ RegExpMacroAssemblerX64::RegExpMacroAssemblerX64(Isola
>        backtrack_label_(),
>        exit_label_() {
>    DCHECK_EQ(0, registers_to_save % 2);
>@@ -9,7 +9,16 @@ Index: deps/v8/src/regexp/x64/regexp-mac
>    __ jmp(&entry_label_);   // We'll write the entry code when we know more.
>    __ bind(&start_label_);  // And then continue from here.
>  }
>-@@ -696,6 +697,11 @@ bool RegExpMacroAssemblerX64::CheckSpecialCharacterCla
>+@@ -170,7 +171,7 @@ void RegExpMacroAssemblerX64::Backtrack() {
>+   // and jump to location.
>+   Pop(rbx);
>+   __ addq(rbx, code_object_pointer());
>+-  __ jmp(rbx);
>++  __ jmp(rbx, /*notrack=*/true);
>+ }
>+
>+
>+@@ -714,6 +715,11 @@ bool RegExpMacroAssemblerX64::CheckSpecialClassRanges(
>        // Match any character.
>        return true;
>    }
>Index: patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_h,v
>diff -u -p -r1.1 patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_h
>--- patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_h	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_regexp_x64_regexp-macro-assembler-x64_h	14 May 2024 17:29:41 -0000
>@@ -1,13 +1,11 @@
> Index: deps/v8/src/regexp/x64/regexp-macro-assembler-x64.h
> --- deps/v8/src/regexp/x64/regexp-macro-assembler-x64.h.orig
> +++ deps/v8/src/regexp/x64/regexp-macro-assembler-x64.h
>-@@ -59,6 +59,9 @@ class V8_EXPORT_PRIVATE RegExpMacroAssemblerX64
>-   void CheckPosition(int cp_offset, Label* on_outside_input) override;
>-   bool CheckSpecialCharacterClass(StandardCharacterSet type,
>-                                   Label* on_no_match) override;
>-+
>+@@ -23,6 +23,7 @@ class V8_EXPORT_PRIVATE RegExpMacroAssemblerX64
>+   void AdvanceRegister(int reg, int by) override;
>+   void Backtrack() override;
>+   void Bind(Label* label) override;
> +  void BindJumpTarget(Label* label) override;
>-+
>-   void Fail() override;
>-   Handle<HeapObject> GetCode(Handle<String> source) override;
>-   void GoTo(Label* label) override;
>+   void CheckAtStart(int cp_offset, Label* on_at_start) override;
>+   void CheckCharacter(uint32_t c, Label* on_equal) override;
>+   void CheckCharacterAfterAnd(uint32_t c, uint32_t mask,
>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
>diff -u -p -r1.1 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	28 Jan 2023 12:46:46 -0000	1.1
>+++ patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-base_h	14 May 2024 17:29:41 -0000
>@@ -1,7 +1,7 @@
> 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
>-@@ -33,6 +33,7 @@ enum class EmbeddedTargetOs {
>+@@ -31,6 +31,7 @@ enum class EmbeddedTargetOs {
>    kMac,
>    kWin,
>    kStarboard,
>Index: patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_cc,v
>diff -u -p -r1.1 patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_cc
>--- patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_cc	28 Jan 2023 12:46:46 -0000	1.1
>+++ patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_cc	14 May 2024 17:29:41 -0000
>@@ -1,8 +1,8 @@
> Index: deps/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc
> --- deps/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc.orig
> +++ deps/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc
>-@@ -10,6 +10,10 @@
>- #include "src/common/globals.h"
>+@@ -9,6 +9,10 @@
>+
>  #include "src/objects/code.h"
>
> +#if V8_OS_OPENBSD
>@@ -12,36 +12,32 @@ Index: deps/v8/src/snapshot/embedded/pla
>  namespace v8 {
>  namespace internal {
>
>-@@ -36,6 +40,8 @@ const char* DirectiveAsString(DataDirective directive)
>+@@ -35,6 +39,10 @@ const char* DirectiveAsString(DataDirective directive)
>  void PlatformEmbeddedFileWriterGeneric::SectionText() {
>    if (target_os_ == EmbeddedTargetOs::kChromeOS) {
>      fprintf(fp_, ".section .text.hot.embedded\n");
>++#if !defined(V8_TARGET_ARCH_IA32)
> +  } else if (target_os_ == EmbeddedTargetOs::kOpenBSD) {
> +    fprintf(fp_, ".section .openbsd.mutable,\"a\"\n");
>++#endif
>    } else {
>      fprintf(fp_, ".section .text\n");
>    }
>-@@ -74,7 +80,9 @@ void PlatformEmbeddedFileWriterGeneric::DeclareSymbolG
>- }
>-
>- void PlatformEmbeddedFileWriterGeneric::AlignToCodeAlignment() {
>--#if V8_TARGET_ARCH_X64
>-+#if V8_OS_OPENBSD
>+@@ -66,6 +74,8 @@ void PlatformEmbeddedFileWriterGeneric::AlignToCodeAli
>+   // On these architectures and platforms, we remap the builtins, so need these
>+   // to be aligned on a page boundary.
>+   fprintf(fp_, ".balign 4096\n");
>++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
> +  fprintf(fp_, ".balign %d\n", PAGE_SIZE);
>-+#elif V8_TARGET_ARCH_X64
>+ #elif V8_TARGET_ARCH_X64
>    // On x64 use 64-bytes code alignment to allow 64-bytes loop header alignment.
>-   STATIC_ASSERT(64 >= kCodeAlignment);
>-   fprintf(fp_, ".balign 64\n");
>-@@ -96,6 +104,12 @@ void PlatformEmbeddedFileWriterGeneric::AlignToDataAli
>-   // load target to be aligned at 8 bytes (2^3).
>-   STATIC_ASSERT(8 >= Code::kMetadataAlignment);
>-   fprintf(fp_, ".balign 8\n");
>-+}
>-+
>-+void PlatformEmbeddedFileWriterGeneric::PaddingAfterCode() {
>-+#if V8_OS_OPENBSD
>+   static_assert(64 >= kCodeAlignment);
>+@@ -86,6 +96,8 @@ void PlatformEmbeddedFileWriterGeneric::AlignToPageSiz
>+     (V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64)
>+   // Since the builtins are remapped, need to pad until the next page boundary.
>+   fprintf(fp_, ".balign 4096\n");
>++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
> +  fprintf(fp_, ".balign %d\n", PAGE_SIZE);
>-+#endif
>+ #endif
>  }
>
>- void PlatformEmbeddedFileWriterGeneric::Comment(const char* string) {
>Index: patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_h
>===================================================================
>RCS file: patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_h
>diff -N patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_h
>--- patches/patch-deps_v8_src_snapshot_embedded_platform-embedded-file-writer-generic_h	28 Jan 2023 12:46:46 -0000	1.1
>+++ /dev/null	1 Jan 1970 00:00:00 -0000
>@@ -1,11 +0,0 @@
>-Index: deps/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.h
>---- deps/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.h.orig
>-+++ deps/v8/src/snapshot/embedded/platform-embedded-file-writer-generic.h
>-@@ -28,6 +28,7 @@ class PlatformEmbeddedFileWriterGeneric
>-   void SectionRoData() override;
>-
>-   void AlignToCodeAlignment() override;
>-+  void PaddingAfterCode() override;
>-   void AlignToDataAlignment() override;
>-
>-   void DeclareUint32(const char* name, uint32_t value) override;
>Index: patches/patch-deps_v8_src_trap-handler_handler-inside-posix_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_trap-handler_handler-inside-posix_cc,v
>diff -u -p -r1.2 patch-deps_v8_src_trap-handler_handler-inside-posix_cc
>--- patches/patch-deps_v8_src_trap-handler_handler-inside-posix_cc	11 Mar 2022 19:29:08 -0000	1.2
>+++ patches/patch-deps_v8_src_trap-handler_handler-inside-posix_cc	14 May 2024 17:29:41 -0000
>@@ -1,6 +1,7 @@
>---- deps/v8/src/trap-handler/handler-inside-posix.cc.orig	Sat Jan  1 17:10:11 2022
>-+++ deps/v8/src/trap-handler/handler-inside-posix.cc	Sat Jan  1 17:10:11 2022
>-@@ -53,6 +53,8 @@ namespace trap_handler {
>+Index: deps/v8/src/trap-handler/handler-inside-posix.cc
>+--- deps/v8/src/trap-handler/handler-inside-posix.cc.orig
>++++ deps/v8/src/trap-handler/handler-inside-posix.cc
>+@@ -55,6 +55,8 @@ namespace trap_handler {
>  #define CONTEXT_REG(reg, REG) &uc->uc_mcontext->__ss.__##reg
>  #elif V8_OS_FREEBSD
>  #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg
>@@ -9,7 +10,7 @@
>  #else
>  #error "Unsupported platform."
>  #endif
>-@@ -62,8 +64,12 @@ bool IsKernelGeneratedSignal(siginfo_t* info) {
>+@@ -64,8 +66,12 @@ bool IsKernelGeneratedSignal(siginfo_t* info) {
>    // si_code at its default of 0 for signals that don’t originate in hardware.
>    // The other conditions are only relevant for Linux.
>    return info->si_code > 0 && info->si_code != SI_USER &&
>Index: patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32_h,v
>diff -u -p -r1.3 patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32_h
>--- patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32_h	29 Dec 2022 23:34:13 -0000	1.3
>+++ patches/patch-deps_v8_src_wasm_baseline_ia32_liftoff-assembler-ia32_h	14 May 2024 17:29:42 -0000
>@@ -1,102 +1,102 @@
> Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h
> --- deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h.orig
> +++ deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h
>-@@ -434,7 +434,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst
>+@@ -419,7 +419,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst
>  }
>
>  void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr,
> -                            Register offset_reg, uint32_t offset_imm,
> +                            Register offset_reg, uintptr_t offset_imm,
>-                             LoadType type, LiftoffRegList pinned,
>-                             uint32_t* protected_load_pc, bool is_load_mem,
>-                             bool i64_offset) {
>-@@ -511,7 +511,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis
>+                             LoadType type, uint32_t* protected_load_pc,
>+                             bool /* is_load_mem */, bool /* i64_offset */,
>+                             bool needs_shift) {
>+@@ -499,7 +499,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis
>  }
>
>  void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
> -                             uint32_t offset_imm, LiftoffRegister src,
> +                             uintptr_t offset_imm, LiftoffRegister src,
>                               StoreType type, LiftoffRegList pinned,
>-                              uint32_t* protected_store_pc, bool is_store_mem) {
>-   DCHECK_EQ(type.value_type() == kWasmI64, src.is_gp_pair());
>-@@ -579,7 +579,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist
>+                              uint32_t* protected_store_pc,
>+                              bool /* is_store_mem */, bool /* i64_offset */) {
>+@@ -568,7 +568,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist
>  }
>
>  void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr,
> -                                  Register offset_reg, uint32_t offset_imm,
> +                                  Register offset_reg, uintptr_t offset_imm,
>-                                   LoadType type, LiftoffRegList pinned) {
>+                                   LoadType type, LiftoffRegList /* pinned */,
>+                                   bool /* i64_offset */) {
>    if (type.value() != LoadType::kI64Load) {
>-     Load(dst, src_addr, offset_reg, offset_imm, type, pinned, nullptr, true);
>-@@ -598,7 +598,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst,
>+@@ -588,7 +588,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst,
>  }
>
>  void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg,
> -                                   uint32_t offset_imm, LiftoffRegister src,
> +                                   uintptr_t offset_imm, LiftoffRegister src,
>-                                    StoreType type, LiftoffRegList pinned) {
>+                                    StoreType type, LiftoffRegList pinned,
>+                                    bool /* i64_offset */) {
>    DCHECK_NE(offset_reg, no_reg);
>-   DCHECK_LE(offset_imm, std::numeric_limits<int32_t>::max());
>-@@ -938,7 +938,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino
>+@@ -929,7 +929,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino
>  }  // namespace liftoff
>
>  void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg,
> -                                 uint32_t offset_imm, LiftoffRegister value,
> +                                 uintptr_t offset_imm, LiftoffRegister value,
>-                                  LiftoffRegister result, StoreType type) {
>+                                  LiftoffRegister result, StoreType type,
>+                                  bool /* i64_offset */) {
>    if (type.value() == StoreType::kI64Store) {
>-     liftoff::AtomicBinop64(this, liftoff::kAdd, dst_addr, offset_reg,
>-@@ -951,7 +951,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re
>+@@ -943,7 +943,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re
>  }
>
>  void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg,
> -                                 uint32_t offset_imm, LiftoffRegister value,
> +                                 uintptr_t offset_imm, LiftoffRegister value,
>-                                  LiftoffRegister result, StoreType type) {
>+                                  LiftoffRegister result, StoreType type,
>+                                  bool /* i64_offset */) {
>    if (type.value() == StoreType::kI64Store) {
>-     liftoff::AtomicBinop64(this, liftoff::kSub, dst_addr, offset_reg,
>-@@ -963,7 +963,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re
>+@@ -956,7 +956,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re
>  }
>
>  void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg,
> -                                 uint32_t offset_imm, LiftoffRegister value,
> +                                 uintptr_t offset_imm, LiftoffRegister value,
>-                                  LiftoffRegister result, StoreType type) {
>+                                  LiftoffRegister result, StoreType type,
>+                                  bool /* i64_offset */) {
>    if (type.value() == StoreType::kI64Store) {
>-     liftoff::AtomicBinop64(this, liftoff::kAnd, dst_addr, offset_reg,
>-@@ -976,7 +976,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re
>+@@ -970,7 +970,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re
>  }
>
>  void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg,
> -                                uint32_t offset_imm, LiftoffRegister value,
> +                                uintptr_t offset_imm, LiftoffRegister value,
>-                                 LiftoffRegister result, StoreType type) {
>+                                 LiftoffRegister result, StoreType type,
>+                                 bool /* i64_offset */) {
>    if (type.value() == StoreType::kI64Store) {
>-     liftoff::AtomicBinop64(this, liftoff::kOr, dst_addr, offset_reg, offset_imm,
>-@@ -989,7 +989,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg
>+@@ -984,7 +984,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg
>  }
>
>  void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg,
> -                                 uint32_t offset_imm, LiftoffRegister value,
> +                                 uintptr_t offset_imm, LiftoffRegister value,
>-                                  LiftoffRegister result, StoreType type) {
>+                                  LiftoffRegister result, StoreType type,
>+                                  bool /* i64_offset */) {
>    if (type.value() == StoreType::kI64Store) {
>-     liftoff::AtomicBinop64(this, liftoff::kXor, dst_addr, offset_reg,
>-@@ -1002,7 +1002,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re
>+@@ -998,7 +998,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re
>  }
>
>  void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg,
> -                                      uint32_t offset_imm,
> +                                      uintptr_t offset_imm,
>                                        LiftoffRegister value,
>-                                       LiftoffRegister result, StoreType type) {
>-   if (type.value() == StoreType::kI64Store) {
>-@@ -1016,7 +1016,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add
>+                                       LiftoffRegister result, StoreType type,
>+                                       bool /* i64_offset */) {
>+@@ -1013,7 +1013,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add
>  }
>
>  void LiftoffAssembler::AtomicCompareExchange(
> -    Register dst_addr, Register offset_reg, uint32_t offset_imm,
> +    Register dst_addr, Register offset_reg, uintptr_t offset_imm,
>      LiftoffRegister expected, LiftoffRegister new_value, LiftoffRegister result,
>-     StoreType type) {
>+     StoreType type, bool /* i64_offset */) {
>    // We expect that the offset has already been added to {dst_addr}, and no
>Index: patches/patch-deps_v8_src_wasm_jump-table-assembler_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_wasm_jump-table-assembler_cc,v
>diff -u -p -r1.1 patch-deps_v8_src_wasm_jump-table-assembler_cc
>--- patches/patch-deps_v8_src_wasm_jump-table-assembler_cc	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_wasm_jump-table-assembler_cc	14 May 2024 17:29:42 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/wasm/jump-table-assembler.cc
> --- deps/v8/src/wasm/jump-table-assembler.cc.orig
> +++ deps/v8/src/wasm/jump-table-assembler.cc
>-@@ -16,15 +16,21 @@ namespace wasm {
>+@@ -52,15 +52,21 @@ void JumpTableAssembler::InitializeJumpsToLazyCompileT
>  #if V8_TARGET_ARCH_X64
>  void JumpTableAssembler::EmitLazyCompileJumpSlot(uint32_t func_index,
>                                                   Address lazy_compile_target) {
>@@ -26,7 +26,7 @@ Index: deps/v8/src/wasm/jump-table-assem
>    near_jmp(displacement, RelocInfo::NO_INFO);  // 5 bytes
>    return true;
>  }
>-@@ -32,11 +38,12 @@ bool JumpTableAssembler::EmitJumpSlot(Address target)
>+@@ -68,11 +74,12 @@ bool JumpTableAssembler::EmitJumpSlot(Address target)
>  void JumpTableAssembler::EmitFarJumpSlot(Address target) {
>    Label data;
>    int start_offset = pc_offset();
>@@ -41,7 +41,7 @@ Index: deps/v8/src/wasm/jump-table-assem
>    USE(start_offset);
>    bind(&data);
>    dq(target);  // 8 bytes
>-@@ -47,7 +54,7 @@ void JumpTableAssembler::PatchFarJumpSlot(Address slot
>+@@ -83,7 +90,7 @@ void JumpTableAssembler::PatchFarJumpSlot(Address slot
>    // The slot needs to be pointer-size aligned so we can atomically update it.
>    DCHECK(IsAligned(slot, kSystemPointerSize));
>    // Offset of the target is at 8 bytes, see {EmitFarJumpSlot}.
>Index: patches/patch-deps_v8_src_wasm_jump-table-assembler_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-deps_v8_src_wasm_jump-table-assembler_h,v
>diff -u -p -r1.1 patch-deps_v8_src_wasm_jump-table-assembler_h
>--- patches/patch-deps_v8_src_wasm_jump-table-assembler_h	7 Jul 2023 10:44:15 -0000	1.1
>+++ patches/patch-deps_v8_src_wasm_jump-table-assembler_h	14 May 2024 17:29:42 -0000
>@@ -1,7 +1,7 @@
> Index: deps/v8/src/wasm/jump-table-assembler.h
> --- deps/v8/src/wasm/jump-table-assembler.h.orig
> +++ deps/v8/src/wasm/jump-table-assembler.h
>-@@ -176,9 +176,10 @@ class V8_EXPORT_PRIVATE JumpTableAssembler : public Ma
>+@@ -185,9 +185,10 @@ class V8_EXPORT_PRIVATE JumpTableAssembler : public Ma
>  // boundaries. The jump table line size has been chosen to satisfy this.
>  #if V8_TARGET_ARCH_X64
>    static constexpr int kJumpTableLineSize = 64;
>Index: patches/patch-include_node_common_gypi
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-include_node_common_gypi,v
>diff -u -p -r1.4 patch-include_node_common_gypi
>--- patches/patch-include_node_common_gypi	26 Sep 2023 10:44:19 -0000	1.4
>+++ patches/patch-include_node_common_gypi	14 May 2024 17:29:42 -0000
>@@ -1,7 +1,7 @@
> Index: include/node/common.gypi
> --- include/node/common.gypi.orig
> +++ include/node/common.gypi
>-@@ -180,7 +180,6 @@
>+@@ -189,7 +189,6 @@
>              }],
>            ],
>          },
>@@ -9,7 +9,7 @@ Index: include/node/common.gypi
>          'conditions': [
>            ['enable_lto=="true"', {
>              'cflags': ['<(lto)'],
>-@@ -426,7 +425,7 @@
>+@@ -490,7 +489,7 @@
>                  'ldflags': [ '-m32' ],
>                }],
>                [ 'host_arch=="ppc64" and OS not in "aix os400"', {
>@@ -18,7 +18,7 @@ Index: include/node/common.gypi
>                  'ldflags': [ '-m64' ],
>                }],
>                [ 'host_arch=="s390x" and OS=="linux"', {
>-@@ -450,7 +449,7 @@
>+@@ -514,7 +513,7 @@
>                  'ldflags': [ '-m32' ],
>                }],
>                [ 'target_arch=="ppc64" and OS not in "aix os400"', {
>Index: patches/patch-lib_internal_modules_cjs_loader_js
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-lib_internal_modules_cjs_loader_js,v
>diff -u -p -r1.12 patch-lib_internal_modules_cjs_loader_js
>--- patches/patch-lib_internal_modules_cjs_loader_js	7 Dec 2023 17:01:27 -0000	1.12
>+++ patches/patch-lib_internal_modules_cjs_loader_js	14 May 2024 17:29:42 -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
>-@@ -1516,7 +1516,10 @@ Module._initPaths = function() {
>+@@ -1518,7 +1518,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
>diff -u -p -r1.9 patch-lib_net_js
>--- patches/patch-lib_net_js	26 Sep 2023 10:44:19 -0000	1.9
>+++ patches/patch-lib_net_js	14 May 2024 17:29:42 -0000
>@@ -13,7 +13,7 @@ for "any address" but that's not really
> Index: lib/net.js
> --- lib/net.js.orig
> +++ lib/net.js
>-@@ -1779,22 +1779,12 @@ function setupListenHandle(address, port, addressType,
>+@@ -1860,22 +1860,12 @@ function setupListenHandle(address, port, addressType,
>
>      let rval = null;
>
>@@ -38,4 +38,4 @@ Index: lib/net.js
> +    rval = createServerHandle(address, port, addressType, fd, flags);
>
>      if (typeof rval === 'number') {
>-       const error = uvExceptionWithHostPort(rval, 'listen', address, port);
>+       const error = new UVExceptionWithHostPort(rval, 'listen', address, port);
>Index: patches/patch-node_gyp
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-node_gyp,v
>diff -u -p -r1.21 patch-node_gyp
>--- patches/patch-node_gyp	7 Dec 2023 17:01:27 -0000	1.21
>+++ patches/patch-node_gyp	14 May 2024 17:29:42 -0000
>@@ -4,7 +4,7 @@ devel/gtest if installed.
> Index: node.gyp
> --- node.gyp.orig
> +++ node.gyp
>-@@ -468,7 +468,7 @@
>+@@ -826,7 +826,7 @@
>        ],
>        'dependencies': [
>          'deps/base64/base64.gyp:base64',
>@@ -13,7 +13,7 @@ Index: node.gyp
>          'deps/histogram/histogram.gyp:histogram',
>          'deps/uvwasi/uvwasi.gyp:uvwasi',
>          'deps/simdutf/simdutf.gyp:simdutf',
>-@@ -1222,8 +1222,8 @@
>+@@ -1056,8 +1056,8 @@
>        'dependencies': [
>          '<(node_lib_target_name)',
>          'deps/base64/base64.gyp:base64',
>@@ -23,8 +23,8 @@ Index: node.gyp
> +        #'deps/googletest/googletest.gyp:gtest_main',
>          'deps/histogram/histogram.gyp:histogram',
>          'deps/uvwasi/uvwasi.gyp:uvwasi',
>-         'node_dtrace_header',
>-@@ -1299,6 +1299,10 @@
>+         'deps/simdutf/simdutf.gyp:simdutf',
>+@@ -1105,6 +1105,10 @@
>          }],
>          ['OS=="solaris"', {
>            'ldflags': [ '-I<(SHARED_INTERMEDIATE_DIR)' ]
>Index: patches/patch-src_cares_wrap_h
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-src_cares_wrap_h,v
>diff -u -p -r1.3 patch-src_cares_wrap_h
>--- patches/patch-src_cares_wrap_h	29 Dec 2022 23:34:13 -0000	1.3
>+++ patches/patch-src_cares_wrap_h	14 May 2024 17:29:42 -0000
>@@ -1,7 +1,7 @@
> Index: src/cares_wrap.h
> --- src/cares_wrap.h.orig
> +++ src/cares_wrap.h
>-@@ -521,4 +521,109 @@ using GetHostByAddrWrap = QueryWrap<ReverseTraits>;
>+@@ -524,4 +524,109 @@ using GetHostByAddrWrap = QueryWrap<ReverseTraits>;
>
>  #endif  // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
>
>Index: patches/patch-src_env_cc
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-src_env_cc,v
>diff -u -p -r1.8 patch-src_env_cc
>--- patches/patch-src_env_cc	7 Dec 2023 17:01:27 -0000	1.8
>+++ patches/patch-src_env_cc	14 May 2024 17:29:42 -0000
>@@ -1,10 +1,10 @@
> Index: src/env.cc
> --- src/env.cc.orig
> +++ src/env.cc
>-@@ -621,29 +621,7 @@ std::unique_ptr<v8::BackingStore> Environment::release
>+@@ -745,29 +745,7 @@ std::unique_ptr<v8::BackingStore> Environment::release
>  }
>
>- std::string GetExecPath(const std::vector<std::string>& argv) {
>+ std::string Environment::GetExecPath(const std::vector<std::string>& argv) {
> -  char exec_path_buf[2 * PATH_MAX];
> -  size_t exec_path_len = sizeof(exec_path_buf);
> -  std::string exec_path;
>Index: patches/patch-tools_test_py
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-tools_test_py,v
>diff -u -p -r1.13 patch-tools_test_py
>--- patches/patch-tools_test_py	15 Aug 2023 13:46:36 -0000	1.13
>+++ patches/patch-tools_test_py	14 May 2024 17:29:42 -0000
>@@ -1,7 +1,7 @@
> Index: tools/test.py
> --- tools/test.py.orig
> +++ tools/test.py
>-@@ -937,9 +937,9 @@ class Context(object):
>+@@ -944,9 +944,9 @@ class Context(object):
>      if self.vm is not None:
>        return self.vm
>      if arch == 'none':
>Index: patches/patch-tools_v8_gypfiles_toolchain_gypi
>===================================================================
>RCS file: /cvs/ports/lang/node/patches/patch-tools_v8_gypfiles_toolchain_gypi,v
>diff -u -p -r1.1 patch-tools_v8_gypfiles_toolchain_gypi
>--- patches/patch-tools_v8_gypfiles_toolchain_gypi	29 Dec 2022 23:34:13 -0000	1.1
>+++ patches/patch-tools_v8_gypfiles_toolchain_gypi	14 May 2024 17:29:42 -0000
>@@ -1,7 +1,7 @@
> Index: tools/v8_gypfiles/toolchain.gypi
> --- tools/v8_gypfiles/toolchain.gypi.orig
> +++ tools/v8_gypfiles/toolchain.gypi
>-@@ -1304,11 +1304,9 @@
>+@@ -861,11 +861,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
>diff -u -p -r1.11 patch-tools_v8_gypfiles_v8_gyp
>--- patches/patch-tools_v8_gypfiles_v8_gyp	15 Aug 2023 13:46:36 -0000	1.11
>+++ patches/patch-tools_v8_gypfiles_v8_gyp	14 May 2024 17:29:42 -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
>-@@ -372,6 +372,9 @@
>+@@ -373,6 +373,9 @@
>              'v8_libplatform',
>            ]
>          }],
>@@ -17,34 +17,34 @@ Index: tools/v8_gypfiles/v8.gyp
>        ],
>        'sources': [
>          '<(V8_ROOT)/src/init/setup-isolate-deserialize.cc',
>-@@ -581,7 +584,7 @@
>+@@ -605,7 +608,7 @@
>                }],
>                ['v8_enable_webassembly==1', {
>                  'conditions': [
> -                  ['OS=="linux" or OS=="mac" or OS=="ios" or OS=="freebsd"', {
> +                  ['OS=="linux" or OS=="mac" or OS=="ios" or OS=="freebsd" or OS=="openbsd"', {
>                      'sources': [
>-                       '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn"  "v8_header_set.\\"v8_internal_headers\\".*?v8_current_cpu == \\"x64\\".*?v8_enable_webassembly.*?is_linux.*?sources \\+= ")',
>+                       '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn"  "v8_header_set.\\"v8_internal_headers\\".*?v8_enable_i18n_support.*?v8_current_cpu == \\"x64\\".*?v8_enable_webassembly.*?is_linux.*?sources \\+= ")',
>                      ],
>-@@ -821,7 +824,7 @@
>+@@ -940,7 +943,7 @@
>              }],
>              ['v8_enable_webassembly==1', {
>                'conditions': [
> -                ['OS=="linux" or OS=="mac" or OS=="ios" or OS=="freebsd"', {
> +                ['OS=="linux" or OS=="mac" or OS=="ios" or OS=="freebsd" or OS=="openbsd"', {
>                    'sources': [
>-                     '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn"  "\\"v8_base_without_compiler.*?v8_current_cpu == \\"x64\\".*?v8_enable_webassembly.*?is_linux.*?sources \\+= ")',
>+                     '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn"  "\\"v8_base_without_compiler.*?v8_enable_wasm_gdb_remote_debugging.*?v8_current_cpu == \\"x64\\".*?v8_enable_webassembly.*?is_linux.*?sources \\+= ")',
>                    ],
>-@@ -977,7 +980,7 @@
>+@@ -1095,7 +1098,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 ["mips", "mipsel", "mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', {
>-+        ['v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"] and llvm_version == "0.0"', {
>+-        ['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', ],
>            },
>-@@ -1438,6 +1441,9 @@
>+@@ -1558,6 +1561,9 @@
>          '<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn"  "\\"mksnapshot.*?sources = ")',
>        ],
>        'conditions': [
>Index: pkg/PLIST
>===================================================================
>RCS file: /cvs/ports/lang/node/pkg/PLIST,v
>diff -u -p -r1.60 PLIST
>--- pkg/PLIST	19 Feb 2024 07:45:40 -0000	1.60
>+++ pkg/PLIST	14 May 2024 17:29:42 -0000
>@@ -6,7 +6,49 @@ include/node/
> include/node/common.gypi
> include/node/config.gypi
> include/node/cppgc/
>+include/node/cppgc/allocation.h
> include/node/cppgc/common.h
>+include/node/cppgc/cross-thread-persistent.h
>+include/node/cppgc/custom-space.h
>+include/node/cppgc/default-platform.h
>+include/node/cppgc/ephemeron-pair.h
>+include/node/cppgc/explicit-management.h
>+include/node/cppgc/garbage-collected.h
>+include/node/cppgc/heap-consistency.h
>+include/node/cppgc/heap-handle.h
>+include/node/cppgc/heap-state.h
>+include/node/cppgc/heap-statistics.h
>+include/node/cppgc/heap.h
>+include/node/cppgc/internal/
>+include/node/cppgc/internal/api-constants.h
>+include/node/cppgc/internal/atomic-entry-flag.h
>+include/node/cppgc/internal/base-page-handle.h
>+include/node/cppgc/internal/caged-heap-local-data.h
>+include/node/cppgc/internal/caged-heap.h
>+include/node/cppgc/internal/compiler-specific.h
>+include/node/cppgc/internal/finalizer-trait.h
>+include/node/cppgc/internal/gc-info.h
>+include/node/cppgc/internal/logging.h
>+include/node/cppgc/internal/member-storage.h
>+include/node/cppgc/internal/name-trait.h
>+include/node/cppgc/internal/persistent-node.h
>+include/node/cppgc/internal/pointer-policies.h
>+include/node/cppgc/internal/write-barrier.h
>+include/node/cppgc/liveness-broker.h
>+include/node/cppgc/macros.h
>+include/node/cppgc/member.h
>+include/node/cppgc/name-provider.h
>+include/node/cppgc/object-size-trait.h
>+include/node/cppgc/persistent.h
>+include/node/cppgc/platform.h
>+include/node/cppgc/prefinalizer.h
>+include/node/cppgc/process-heap-statistics.h
>+include/node/cppgc/sentinel-pointer.h
>+include/node/cppgc/source-location.h
>+include/node/cppgc/testing.h
>+include/node/cppgc/trace-trait.h
>+include/node/cppgc/type-traits.h
>+include/node/cppgc/visitor.h
> include/node/js_native_api.h
> include/node/js_native_api_types.h
> include/node/libplatform/
>@@ -23,6 +65,7 @@ include/node/v8-array-buffer.h
> include/node/v8-callbacks.h
> include/node/v8-container.h
> include/node/v8-context.h
>+include/node/v8-cppgc.h
> include/node/v8-data.h
> include/node/v8-date.h
> include/node/v8-debug.h
>@@ -105,6 +148,10 @@ lib/node_modules/@isaacs/cliui/build/lib
> lib/node_modules/@isaacs/cliui/build/lib/index.js
> lib/node_modules/@isaacs/cliui/index.mjs
> lib/node_modules/@isaacs/cliui/node_modules/
>+lib/node_modules/@isaacs/cliui/node_modules/ansi-regex/
>+lib/node_modules/@isaacs/cliui/node_modules/ansi-regex/index.js
>+lib/node_modules/@isaacs/cliui/node_modules/ansi-regex/license
>+lib/node_modules/@isaacs/cliui/node_modules/ansi-regex/package.json
> lib/node_modules/@isaacs/cliui/node_modules/emoji-regex/
> lib/node_modules/@isaacs/cliui/node_modules/emoji-regex/LICENSE-MIT.txt
> lib/node_modules/@isaacs/cliui/node_modules/emoji-regex/RGI_Emoji.js
>@@ -119,6 +166,10 @@ lib/node_modules/@isaacs/cliui/node_modu
> lib/node_modules/@isaacs/cliui/node_modules/string-width/index.js
> lib/node_modules/@isaacs/cliui/node_modules/string-width/license
> lib/node_modules/@isaacs/cliui/node_modules/string-width/package.json
>+lib/node_modules/@isaacs/cliui/node_modules/strip-ansi/
>+lib/node_modules/@isaacs/cliui/node_modules/strip-ansi/index.js
>+lib/node_modules/@isaacs/cliui/node_modules/strip-ansi/license
>+lib/node_modules/@isaacs/cliui/node_modules/strip-ansi/package.json
> lib/node_modules/@isaacs/cliui/package.json
> lib/node_modules/@isaacs/string-locale-compare/
> lib/node_modules/@isaacs/string-locale-compare/LICENSE
>@@ -156,17 +207,13 @@ lib/node_modules/@npmcli/arborist/bin/vi
> lib/node_modules/@npmcli/arborist/lib/
> lib/node_modules/@npmcli/arborist/lib/add-rm-pkg-deps.js
> lib/node_modules/@npmcli/arborist/lib/arborist/
>-lib/node_modules/@npmcli/arborist/lib/arborist/audit.js
> lib/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
>-lib/node_modules/@npmcli/arborist/lib/arborist/deduper.js
> lib/node_modules/@npmcli/arborist/lib/arborist/index.js
> lib/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js
> lib/node_modules/@npmcli/arborist/lib/arborist/load-actual.js
> lib/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js
>-lib/node_modules/@npmcli/arborist/lib/arborist/pruner.js
> lib/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
> lib/node_modules/@npmcli/arborist/lib/arborist/reify.js
>-lib/node_modules/@npmcli/arborist/lib/arborist/set-workspaces.js
> lib/node_modules/@npmcli/arborist/lib/audit-report.js
> lib/node_modules/@npmcli/arborist/lib/calc-dep-flags.js
> lib/node_modules/@npmcli/arborist/lib/can-place-dep.js
>@@ -179,7 +226,6 @@ lib/node_modules/@npmcli/arborist/lib/di
> lib/node_modules/@npmcli/arborist/lib/edge.js
> lib/node_modules/@npmcli/arborist/lib/from-path.js
> lib/node_modules/@npmcli/arborist/lib/gather-dep-set.js
>-lib/node_modules/@npmcli/arborist/lib/get-workspace-nodes.js
> lib/node_modules/@npmcli/arborist/lib/index.js
> lib/node_modules/@npmcli/arborist/lib/inventory.js
> lib/node_modules/@npmcli/arborist/lib/link.js
>@@ -314,11 +360,15 @@ lib/node_modules/@npmcli/query/LICENSE
> lib/node_modules/@npmcli/query/lib/
> lib/node_modules/@npmcli/query/lib/index.js
> lib/node_modules/@npmcli/query/package.json
>+lib/node_modules/@npmcli/redact/
>+lib/node_modules/@npmcli/redact/LICENSE
>+lib/node_modules/@npmcli/redact/lib/
>+lib/node_modules/@npmcli/redact/lib/index.js
>+lib/node_modules/@npmcli/redact/package.json
> lib/node_modules/@npmcli/run-script/
> lib/node_modules/@npmcli/run-script/LICENSE
> lib/node_modules/@npmcli/run-script/lib/
> lib/node_modules/@npmcli/run-script/lib/is-server-package.js
>-lib/node_modules/@npmcli/run-script/lib/is-windows.js
> lib/node_modules/@npmcli/run-script/lib/make-spawn-args.js
> lib/node_modules/@npmcli/run-script/lib/node-gyp-bin/
> lib/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp
>@@ -360,6 +410,35 @@ lib/node_modules/@sigstore/bundle/dist/s
> lib/node_modules/@sigstore/bundle/dist/utility.js
> lib/node_modules/@sigstore/bundle/dist/validate.js
> lib/node_modules/@sigstore/bundle/package.json
>+lib/node_modules/@sigstore/core/
>+lib/node_modules/@sigstore/core/LICENSE
>+lib/node_modules/@sigstore/core/dist/
>+lib/node_modules/@sigstore/core/dist/asn1/
>+lib/node_modules/@sigstore/core/dist/asn1/error.js
>+lib/node_modules/@sigstore/core/dist/asn1/index.js
>+lib/node_modules/@sigstore/core/dist/asn1/length.js
>+lib/node_modules/@sigstore/core/dist/asn1/obj.js
>+lib/node_modules/@sigstore/core/dist/asn1/parse.js
>+lib/node_modules/@sigstore/core/dist/asn1/tag.js
>+lib/node_modules/@sigstore/core/dist/crypto.js
>+lib/node_modules/@sigstore/core/dist/dsse.js
>+lib/node_modules/@sigstore/core/dist/encoding.js
>+lib/node_modules/@sigstore/core/dist/index.js
>+lib/node_modules/@sigstore/core/dist/json.js
>+lib/node_modules/@sigstore/core/dist/oid.js
>+lib/node_modules/@sigstore/core/dist/pem.js
>+lib/node_modules/@sigstore/core/dist/rfc3161/
>+lib/node_modules/@sigstore/core/dist/rfc3161/error.js
>+lib/node_modules/@sigstore/core/dist/rfc3161/index.js
>+lib/node_modules/@sigstore/core/dist/rfc3161/timestamp.js
>+lib/node_modules/@sigstore/core/dist/rfc3161/tstinfo.js
>+lib/node_modules/@sigstore/core/dist/stream.js
>+lib/node_modules/@sigstore/core/dist/x509/
>+lib/node_modules/@sigstore/core/dist/x509/cert.js
>+lib/node_modules/@sigstore/core/dist/x509/ext.js
>+lib/node_modules/@sigstore/core/dist/x509/index.js
>+lib/node_modules/@sigstore/core/dist/x509/sct.js
>+lib/node_modules/@sigstore/core/package.json
> lib/node_modules/@sigstore/protobuf-specs/
> lib/node_modules/@sigstore/protobuf-specs/LICENSE
> lib/node_modules/@sigstore/protobuf-specs/dist/
>@@ -410,13 +489,8 @@ lib/node_modules/@sigstore/sign/dist/sig
> lib/node_modules/@sigstore/sign/dist/types/
> lib/node_modules/@sigstore/sign/dist/types/fetch.js
> lib/node_modules/@sigstore/sign/dist/util/
>-lib/node_modules/@sigstore/sign/dist/util/crypto.js
>-lib/node_modules/@sigstore/sign/dist/util/dsse.js
>-lib/node_modules/@sigstore/sign/dist/util/encoding.js
> lib/node_modules/@sigstore/sign/dist/util/index.js
>-lib/node_modules/@sigstore/sign/dist/util/json.js
> lib/node_modules/@sigstore/sign/dist/util/oidc.js
>-lib/node_modules/@sigstore/sign/dist/util/pem.js
> lib/node_modules/@sigstore/sign/dist/util/ua.js
> lib/node_modules/@sigstore/sign/dist/witness/
> lib/node_modules/@sigstore/sign/dist/witness/index.js
>@@ -438,8 +512,38 @@ lib/node_modules/@sigstore/tuf/dist/erro
> lib/node_modules/@sigstore/tuf/dist/index.js
> lib/node_modules/@sigstore/tuf/dist/target.js
> lib/node_modules/@sigstore/tuf/package.json
>-lib/node_modules/@sigstore/tuf/store/
>-lib/node_modules/@sigstore/tuf/store/public-good-instance-root.json
>+lib/node_modules/@sigstore/tuf/seeds.json
>+lib/node_modules/@sigstore/verify/
>+lib/node_modules/@sigstore/verify/dist/
>+lib/node_modules/@sigstore/verify/dist/bundle/
>+lib/node_modules/@sigstore/verify/dist/bundle/dsse.js
>+lib/node_modules/@sigstore/verify/dist/bundle/index.js
>+lib/node_modules/@sigstore/verify/dist/bundle/message.js
>+lib/node_modules/@sigstore/verify/dist/error.js
>+lib/node_modules/@sigstore/verify/dist/index.js
>+lib/node_modules/@sigstore/verify/dist/key/
>+lib/node_modules/@sigstore/verify/dist/key/certificate.js
>+lib/node_modules/@sigstore/verify/dist/key/index.js
>+lib/node_modules/@sigstore/verify/dist/key/sct.js
>+lib/node_modules/@sigstore/verify/dist/policy.js
>+lib/node_modules/@sigstore/verify/dist/shared.types.js
>+lib/node_modules/@sigstore/verify/dist/timestamp/
>+lib/node_modules/@sigstore/verify/dist/timestamp/checkpoint.js
>+lib/node_modules/@sigstore/verify/dist/timestamp/index.js
>+lib/node_modules/@sigstore/verify/dist/timestamp/merkle.js
>+lib/node_modules/@sigstore/verify/dist/timestamp/set.js
>+lib/node_modules/@sigstore/verify/dist/timestamp/tsa.js
>+lib/node_modules/@sigstore/verify/dist/tlog/
>+lib/node_modules/@sigstore/verify/dist/tlog/dsse.js
>+lib/node_modules/@sigstore/verify/dist/tlog/hashedrekord.js
>+lib/node_modules/@sigstore/verify/dist/tlog/index.js
>+lib/node_modules/@sigstore/verify/dist/tlog/intoto.js
>+lib/node_modules/@sigstore/verify/dist/trust/
>+lib/node_modules/@sigstore/verify/dist/trust/filter.js
>+lib/node_modules/@sigstore/verify/dist/trust/index.js
>+lib/node_modules/@sigstore/verify/dist/trust/trust.types.js
>+lib/node_modules/@sigstore/verify/dist/verifier.js
>+lib/node_modules/@sigstore/verify/package.json
> lib/node_modules/@tufjs/
> lib/node_modules/@tufjs/canonical-json/
> lib/node_modules/@tufjs/canonical-json/LICENSE
>@@ -475,18 +579,8 @@ lib/node_modules/abbrev/LICENSE
> lib/node_modules/abbrev/lib/
> lib/node_modules/abbrev/lib/index.js
> lib/node_modules/abbrev/package.json
>-lib/node_modules/abort-controller/
>-lib/node_modules/abort-controller/LICENSE
>-lib/node_modules/abort-controller/browser.js
>-lib/node_modules/abort-controller/browser.mjs
>-lib/node_modules/abort-controller/dist/
>-lib/node_modules/abort-controller/dist/abort-controller.js
>-lib/node_modules/abort-controller/dist/abort-controller.mjs
>-lib/node_modules/abort-controller/dist/abort-controller.umd.js
>-lib/node_modules/abort-controller/package.json
>-lib/node_modules/abort-controller/polyfill.js
>-lib/node_modules/abort-controller/polyfill.mjs
> lib/node_modules/agent-base/
>+lib/node_modules/agent-base/LICENSE
> lib/node_modules/agent-base/dist/
> lib/node_modules/agent-base/dist/helpers.js
> lib/node_modules/agent-base/dist/index.js
>@@ -527,11 +621,6 @@ lib/node_modules/balanced-match/
> lib/node_modules/balanced-match/LICENSE.md
> lib/node_modules/balanced-match/index.js
> lib/node_modules/balanced-match/package.json
>-lib/node_modules/base64-js/
>-lib/node_modules/base64-js/LICENSE
>-lib/node_modules/base64-js/base64js.min.js
>-lib/node_modules/base64-js/index.js
>-lib/node_modules/base64-js/package.json
> lib/node_modules/bin-links/
> lib/node_modules/bin-links/LICENSE
> lib/node_modules/bin-links/lib/
>@@ -560,11 +649,6 @@ lib/node_modules/brace-expansion/
> lib/node_modules/brace-expansion/LICENSE
> lib/node_modules/brace-expansion/index.js
> lib/node_modules/brace-expansion/package.json
>-lib/node_modules/buffer/
>-lib/node_modules/buffer/AUTHORS.md
>-lib/node_modules/buffer/LICENSE
>-lib/node_modules/buffer/index.js
>-lib/node_modules/buffer/package.json
> lib/node_modules/builtins/
> lib/node_modules/builtins/License
> lib/node_modules/builtins/index.js
>@@ -622,15 +706,6 @@ lib/node_modules/cli-columns/
> lib/node_modules/cli-columns/color.js
> lib/node_modules/cli-columns/index.js
> lib/node_modules/cli-columns/license
>-lib/node_modules/cli-columns/node_modules/
>-lib/node_modules/cli-columns/node_modules/ansi-regex/
>-lib/node_modules/cli-columns/node_modules/ansi-regex/index.js
>-lib/node_modules/cli-columns/node_modules/ansi-regex/license
>-lib/node_modules/cli-columns/node_modules/ansi-regex/package.json
>-lib/node_modules/cli-columns/node_modules/strip-ansi/
>-lib/node_modules/cli-columns/node_modules/strip-ansi/index.js
>-lib/node_modules/cli-columns/node_modules/strip-ansi/license
>-lib/node_modules/cli-columns/node_modules/strip-ansi/package.json
> lib/node_modules/cli-columns/package.json
> lib/node_modules/cli-columns/test.js
> lib/node_modules/cli-table3/
>@@ -676,15 +751,6 @@ lib/node_modules/columnify/LICENSE
> lib/node_modules/columnify/Makefile
> lib/node_modules/columnify/columnify.js
> lib/node_modules/columnify/index.js
>-lib/node_modules/columnify/node_modules/
>-lib/node_modules/columnify/node_modules/ansi-regex/
>-lib/node_modules/columnify/node_modules/ansi-regex/index.js
>-lib/node_modules/columnify/node_modules/ansi-regex/license
>-lib/node_modules/columnify/node_modules/ansi-regex/package.json
>-lib/node_modules/columnify/node_modules/strip-ansi/
>-lib/node_modules/columnify/node_modules/strip-ansi/index.js
>-lib/node_modules/columnify/node_modules/strip-ansi/license
>-lib/node_modules/columnify/node_modules/strip-ansi/package.json
> lib/node_modules/columnify/package.json
> lib/node_modules/columnify/utils.js
> lib/node_modules/columnify/width.js
>@@ -801,12 +867,6 @@ lib/node_modules/defaults/LICENSE
> lib/node_modules/defaults/index.js
> lib/node_modules/defaults/package.json
> lib/node_modules/defaults/test.js
>-lib/node_modules/delegates/
>-lib/node_modules/delegates/History.md
>-lib/node_modules/delegates/License
>-lib/node_modules/delegates/Makefile
>-lib/node_modules/delegates/index.js
>-lib/node_modules/delegates/package.json
> lib/node_modules/diff/
> lib/node_modules/diff/CONTRIBUTING.md
> lib/node_modules/diff/LICENSE
>@@ -834,6 +894,7 @@ lib/node_modules/diff/lib/patch/apply.js
> lib/node_modules/diff/lib/patch/create.js
> lib/node_modules/diff/lib/patch/merge.js
> lib/node_modules/diff/lib/patch/parse.js
>+lib/node_modules/diff/lib/patch/reverse.js
> lib/node_modules/diff/lib/util/
> lib/node_modules/diff/lib/util/array.js
> lib/node_modules/diff/lib/util/distance-iterator.js
>@@ -866,44 +927,6 @@ lib/node_modules/err-code/bower.json
> lib/node_modules/err-code/index.js
> lib/node_modules/err-code/index.umd.js
> lib/node_modules/err-code/package.json
>-lib/node_modules/event-target-shim/
>-lib/node_modules/event-target-shim/LICENSE
>-lib/node_modules/event-target-shim/dist/
>-lib/node_modules/event-target-shim/dist/event-target-shim.js
>-lib/node_modules/event-target-shim/dist/event-target-shim.mjs
>-lib/node_modules/event-target-shim/dist/event-target-shim.umd.js
>-lib/node_modules/event-target-shim/package.json
>-lib/node_modules/events/
>-lib/node_modules/events/.airtap.yml
>-lib/node_modules/events/History.md
>-lib/node_modules/events/LICENSE
>-lib/node_modules/events/events.js
>-lib/node_modules/events/package.json
>-lib/node_modules/events/security.md
>-lib/node_modules/events/tests/
>-lib/node_modules/events/tests/add-listeners.js
>-lib/node_modules/events/tests/check-listener-leaks.js
>-lib/node_modules/events/tests/common.js
>-lib/node_modules/events/tests/errors.js
>-lib/node_modules/events/tests/events-list.js
>-lib/node_modules/events/tests/events-once.js
>-lib/node_modules/events/tests/index.js
>-lib/node_modules/events/tests/legacy-compat.js
>-lib/node_modules/events/tests/listener-count.js
>-lib/node_modules/events/tests/listeners-side-effects.js
>-lib/node_modules/events/tests/listeners.js
>-lib/node_modules/events/tests/max-listeners.js
>-lib/node_modules/events/tests/method-names.js
>-lib/node_modules/events/tests/modify-in-emit.js
>-lib/node_modules/events/tests/num-args.js
>-lib/node_modules/events/tests/once.js
>-lib/node_modules/events/tests/prepend.js
>-lib/node_modules/events/tests/remove-all-listeners.js
>-lib/node_modules/events/tests/remove-listeners.js
>-lib/node_modules/events/tests/set-max-listeners-side-effects.js
>-lib/node_modules/events/tests/special-event-names.js
>-lib/node_modules/events/tests/subclass.js
>-lib/node_modules/events/tests/symbols.js
> lib/node_modules/exponential-backoff/
> lib/node_modules/exponential-backoff/LICENSE
> lib/node_modules/exponential-backoff/dist/
>@@ -974,15 +997,6 @@ lib/node_modules/gauge/lib/template-item
> lib/node_modules/gauge/lib/theme-set.js
> lib/node_modules/gauge/lib/themes.js
> lib/node_modules/gauge/lib/wide-truncate.js
>-lib/node_modules/gauge/node_modules/
>-lib/node_modules/gauge/node_modules/ansi-regex/
>-lib/node_modules/gauge/node_modules/ansi-regex/index.js
>-lib/node_modules/gauge/node_modules/ansi-regex/license
>-lib/node_modules/gauge/node_modules/ansi-regex/package.json
>-lib/node_modules/gauge/node_modules/strip-ansi/
>-lib/node_modules/gauge/node_modules/strip-ansi/index.js
>-lib/node_modules/gauge/node_modules/strip-ansi/license
>-lib/node_modules/gauge/node_modules/strip-ansi/package.json
> lib/node_modules/gauge/package.json
> lib/node_modules/glob/
> lib/node_modules/glob/LICENSE
>@@ -1087,6 +1101,7 @@ lib/node_modules/http-proxy-agent/dist/
> lib/node_modules/http-proxy-agent/dist/index.js
> lib/node_modules/http-proxy-agent/package.json
> lib/node_modules/https-proxy-agent/
>+lib/node_modules/https-proxy-agent/LICENSE
> lib/node_modules/https-proxy-agent/dist/
> lib/node_modules/https-proxy-agent/dist/index.js
> lib/node_modules/https-proxy-agent/dist/parse-proxy-response.js
>@@ -1118,10 +1133,6 @@ lib/node_modules/iconv-lite/lib/bom-hand
> lib/node_modules/iconv-lite/lib/index.js
> lib/node_modules/iconv-lite/lib/streams.js
> lib/node_modules/iconv-lite/package.json
>-lib/node_modules/ieee754/
>-lib/node_modules/ieee754/LICENSE
>-lib/node_modules/ieee754/index.js
>-lib/node_modules/ieee754/package.json
> lib/node_modules/ignore-walk/
> lib/node_modules/ignore-walk/LICENSE
> lib/node_modules/ignore-walk/lib/
>@@ -1146,16 +1157,38 @@ lib/node_modules/init-package-json/lib/
> lib/node_modules/init-package-json/lib/default-input.js
> lib/node_modules/init-package-json/lib/init-package-json.js
> lib/node_modules/init-package-json/package.json
>-lib/node_modules/ip/
>+lib/node_modules/ip-address/
>+lib/node_modules/ip-address/LICENSE
>+lib/node_modules/ip-address/dist/
>+lib/node_modules/ip-address/dist/address-error.js
>+lib/node_modules/ip-address/dist/common.js
>+lib/node_modules/ip-address/dist/ip-address.js
>+lib/node_modules/ip-address/dist/ipv4.js
>+lib/node_modules/ip-address/dist/ipv6.js
>+lib/node_modules/ip-address/dist/v4/
>+lib/node_modules/ip-address/dist/v4/constants.js
>+lib/node_modules/ip-address/dist/v6/
>+lib/node_modules/ip-address/dist/v6/constants.js
>+lib/node_modules/ip-address/dist/v6/helpers.js
>+lib/node_modules/ip-address/dist/v6/regular-expressions.js
>+lib/node_modules/ip-address/node_modules/
>+lib/node_modules/ip-address/node_modules/sprintf-js/
>+lib/node_modules/ip-address/node_modules/sprintf-js/CONTRIBUTORS.md
>+lib/node_modules/ip-address/node_modules/sprintf-js/LICENSE
>+lib/node_modules/ip-address/node_modules/sprintf-js/dist/
>+lib/node_modules/ip-address/node_modules/sprintf-js/dist/.gitattributes
>+lib/node_modules/ip-address/node_modules/sprintf-js/dist/angular-sprintf.min.js
>+lib/node_modules/ip-address/node_modules/sprintf-js/dist/sprintf.min.js
>+lib/node_modules/ip-address/node_modules/sprintf-js/package.json
>+lib/node_modules/ip-address/node_modules/sprintf-js/src/
>+lib/node_modules/ip-address/node_modules/sprintf-js/src/angular-sprintf.js
>+lib/node_modules/ip-address/node_modules/sprintf-js/src/sprintf.js
>+lib/node_modules/ip-address/package.json
> lib/node_modules/ip-regex/
> lib/node_modules/ip-regex/index.js
> lib/node_modules/ip-regex/license
> lib/node_modules/ip-regex/package.json
>-lib/node_modules/ip/lib/
>-lib/node_modules/ip/lib/ip.js
>-lib/node_modules/ip/package.json
> lib/node_modules/is-cidr/
>-lib/node_modules/is-cidr/LICENSE
> lib/node_modules/is-cidr/index.js
> lib/node_modules/is-cidr/package.json
> lib/node_modules/is-core-module/
>@@ -1190,6 +1223,12 @@ lib/node_modules/jackspeak/dist/esm/inde
> lib/node_modules/jackspeak/dist/esm/package.json
> lib/node_modules/jackspeak/dist/esm/parse-args.js
> lib/node_modules/jackspeak/package.json
>+lib/node_modules/jsbn/
>+lib/node_modules/jsbn/LICENSE
>+lib/node_modules/jsbn/example.html
>+lib/node_modules/jsbn/example.js
>+lib/node_modules/jsbn/index.js
>+lib/node_modules/jsbn/package.json
> lib/node_modules/json-parse-even-better-errors/
> lib/node_modules/json-parse-even-better-errors/LICENSE.md
> lib/node_modules/json-parse-even-better-errors/lib/
>@@ -1334,32 +1373,27 @@ lib/node_modules/make-fetch-happen/packa
> lib/node_modules/minimatch/
> lib/node_modules/minimatch/LICENSE
> lib/node_modules/minimatch/dist/
>-lib/node_modules/minimatch/dist/cjs/
>-lib/node_modules/minimatch/dist/cjs/assert-valid-pattern.js
>-lib/node_modules/minimatch/dist/cjs/ast.js
>-lib/node_modules/minimatch/dist/cjs/brace-expressions.js
>-lib/node_modules/minimatch/dist/cjs/escape.js
>-lib/node_modules/minimatch/dist/cjs/index.js
>-lib/node_modules/minimatch/dist/cjs/package.json
>-lib/node_modules/minimatch/dist/cjs/unescape.js
>-lib/node_modules/minimatch/dist/mjs/
>-lib/node_modules/minimatch/dist/mjs/assert-valid-pattern.js
>-lib/node_modules/minimatch/dist/mjs/ast.js
>-lib/node_modules/minimatch/dist/mjs/brace-expressions.js
>-lib/node_modules/minimatch/dist/mjs/escape.js
>-lib/node_modules/minimatch/dist/mjs/index.js
>-lib/node_modules/minimatch/dist/mjs/package.json
>-lib/node_modules/minimatch/dist/mjs/unescape.js
>+lib/node_modules/minimatch/dist/commonjs/
>+lib/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js
>+lib/node_modules/minimatch/dist/commonjs/ast.js
>+lib/node_modules/minimatch/dist/commonjs/brace-expressions.js
>+lib/node_modules/minimatch/dist/commonjs/escape.js
>+lib/node_modules/minimatch/dist/commonjs/index.js
>+lib/node_modules/minimatch/dist/commonjs/package.json
>+lib/node_modules/minimatch/dist/commonjs/unescape.js
>+lib/node_modules/minimatch/dist/esm/
>+lib/node_modules/minimatch/dist/esm/assert-valid-pattern.js
>+lib/node_modules/minimatch/dist/esm/ast.js
>+lib/node_modules/minimatch/dist/esm/brace-expressions.js
>+lib/node_modules/minimatch/dist/esm/escape.js
>+lib/node_modules/minimatch/dist/esm/index.js
>+lib/node_modules/minimatch/dist/esm/package.json
>+lib/node_modules/minimatch/dist/esm/unescape.js
> lib/node_modules/minimatch/package.json
> lib/node_modules/minipass/
> lib/node_modules/minipass-collect/
> lib/node_modules/minipass-collect/LICENSE
> lib/node_modules/minipass-collect/index.js
>-lib/node_modules/minipass-collect/node_modules/
>-lib/node_modules/minipass-collect/node_modules/minipass/
>-lib/node_modules/minipass-collect/node_modules/minipass/LICENSE
>-lib/node_modules/minipass-collect/node_modules/minipass/index.js
>-lib/node_modules/minipass-collect/node_modules/minipass/package.json
> lib/node_modules/minipass-collect/package.json
> lib/node_modules/minipass-fetch/
> lib/node_modules/minipass-fetch/LICENSE
>@@ -1462,6 +1496,7 @@ lib/node_modules/negotiator/lib/language
> lib/node_modules/negotiator/lib/mediaType.js
> lib/node_modules/negotiator/package.json
> lib/node_modules/node-gyp/
>+lib/node_modules/node-gyp/.release-please-manifest.json
> lib/node_modules/node-gyp/CHANGELOG.md
> lib/node_modules/node-gyp/CONTRIBUTING.md
> lib/node_modules/node-gyp/LICENSE
>@@ -1472,7 +1507,6 @@ lib/node_modules/node-gyp/bin/
> lib/node_modules/node-gyp/bin/node-gyp.js
> lib/node_modules/node-gyp/gyp/
> lib/node_modules/node-gyp/gyp/LICENSE
>-lib/node_modules/node-gyp/gyp/README.md
> ${MODPY_COMMENT}lib/node_modules/node-gyp/gyp/${MODPY_PYCACHE}/
> lib/node_modules/node-gyp/gyp/${MODPY_PYCACHE}gyp_main.${MODPY_PYC_MAGIC_TAG}pyc
> lib/node_modules/node-gyp/gyp/${MODPY_PYCACHE}test_gyp.${MODPY_PYC_MAGIC_TAG}pyc
>@@ -1625,6 +1659,7 @@ lib/node_modules/node-gyp/lib/remove.js
> lib/node_modules/node-gyp/lib/util.js
> lib/node_modules/node-gyp/macOS_Catalina_acid_test.sh
> lib/node_modules/node-gyp/package.json
>+lib/node_modules/node-gyp/release-please-config.json
> lib/node_modules/node-gyp/src/
> lib/node_modules/node-gyp/src/win_delay_load_hook.cc
> lib/node_modules/node-pledge/
>@@ -1722,7 +1757,6 @@ lib/node_modules/npm-registry-fetch/LICE
> lib/node_modules/npm-registry-fetch/lib/
> lib/node_modules/npm-registry-fetch/lib/auth.js
> lib/node_modules/npm-registry-fetch/lib/check-response.js
>-lib/node_modules/npm-registry-fetch/lib/clean-url.js
> lib/node_modules/npm-registry-fetch/lib/default-opts.js
> lib/node_modules/npm-registry-fetch/lib/errors.js
> lib/node_modules/npm-registry-fetch/lib/index.js
>@@ -1741,6 +1775,7 @@ lib/node_modules/npm/bin/node-gyp-bin/no
> lib/node_modules/npm/bin/node-gyp-bin/node-gyp.cmd
> lib/node_modules/npm/bin/npm
> lib/node_modules/npm/bin/npm-cli.js
>+lib/node_modules/npm/bin/npm-prefix.js
> lib/node_modules/npm/bin/npm.cmd
> lib/node_modules/npm/bin/npm.ps1
> lib/node_modules/npm/bin/npx
>@@ -1748,7 +1783,6 @@ lib/node_modules/npm/bin/npx-cli.js
> lib/node_modules/npm/bin/npx.cmd
> lib/node_modules/npm/bin/npx.ps1
> lib/node_modules/npm/docs/
>-lib/node_modules/npm/docs/README.md
> lib/node_modules/npm/docs/content/
> lib/node_modules/npm/docs/content/commands/
> lib/node_modules/npm/docs/content/commands/npm-access.md
>@@ -1836,6 +1870,8 @@ lib/node_modules/npm/docs/content/using-
> lib/node_modules/npm/docs/content/using-npm/scope.md
> lib/node_modules/npm/docs/content/using-npm/scripts.md
> lib/node_modules/npm/docs/content/using-npm/workspaces.md
>+lib/node_modules/npm/docs/lib/
>+lib/node_modules/npm/docs/lib/index.js
> lib/node_modules/npm/docs/output/
> lib/node_modules/npm/docs/output/commands/
> lib/node_modules/npm/docs/output/commands/npm-access.html
>@@ -2033,7 +2069,6 @@ lib/node_modules/npm/lib/utils/queryable
> lib/node_modules/npm/lib/utils/read-user-info.js
> lib/node_modules/npm/lib/utils/reify-finish.js
> lib/node_modules/npm/lib/utils/reify-output.js
>-lib/node_modules/npm/lib/utils/replace-info.js
> lib/node_modules/npm/lib/utils/sbom-cyclonedx.js
> lib/node_modules/npm/lib/utils/sbom-spdx.js
> lib/node_modules/npm/lib/utils/tar.js
>@@ -2141,7 +2176,6 @@ lib/node_modules/npm/node_modules/@pkgjs
> lib/node_modules/npm/node_modules/@sigstore
> lib/node_modules/npm/node_modules/@tufjs
> lib/node_modules/npm/node_modules/abbrev
>-lib/node_modules/npm/node_modules/abort-controller
> lib/node_modules/npm/node_modules/agent-base
> lib/node_modules/npm/node_modules/aggregate-error
> lib/node_modules/npm/node_modules/ansi-regex
>@@ -2150,11 +2184,9 @@ lib/node_modules/npm/node_modules/aproba
> lib/node_modules/npm/node_modules/archy
> lib/node_modules/npm/node_modules/are-we-there-yet
> lib/node_modules/npm/node_modules/balanced-match
>-lib/node_modules/npm/node_modules/base64-js
> lib/node_modules/npm/node_modules/bin-links
> lib/node_modules/npm/node_modules/binary-extensions
> lib/node_modules/npm/node_modules/brace-expansion
>-lib/node_modules/npm/node_modules/buffer
> lib/node_modules/npm/node_modules/builtins
> lib/node_modules/npm/node_modules/cacache
> lib/node_modules/npm/node_modules/chalk
>@@ -2176,15 +2208,12 @@ lib/node_modules/npm/node_modules/cross-
> lib/node_modules/npm/node_modules/cssesc
> lib/node_modules/npm/node_modules/debug
> lib/node_modules/npm/node_modules/defaults
>-lib/node_modules/npm/node_modules/delegates
> lib/node_modules/npm/node_modules/diff
> lib/node_modules/npm/node_modules/eastasianwidth
> lib/node_modules/npm/node_modules/emoji-regex
> lib/node_modules/npm/node_modules/encoding
> lib/node_modules/npm/node_modules/env-paths
> lib/node_modules/npm/node_modules/err-code
>-lib/node_modules/npm/node_modules/event-target-shim
>-lib/node_modules/npm/node_modules/events
> lib/node_modules/npm/node_modules/exponential-backoff
> lib/node_modules/npm/node_modules/fastest-levenshtein
> lib/node_modules/npm/node_modules/foreground-child
>@@ -2200,13 +2229,12 @@ lib/node_modules/npm/node_modules/http-c
> lib/node_modules/npm/node_modules/http-proxy-agent
> lib/node_modules/npm/node_modules/https-proxy-agent
> lib/node_modules/npm/node_modules/iconv-lite
>-lib/node_modules/npm/node_modules/ieee754
> lib/node_modules/npm/node_modules/ignore-walk
> lib/node_modules/npm/node_modules/imurmurhash
> lib/node_modules/npm/node_modules/indent-string
> lib/node_modules/npm/node_modules/ini
> lib/node_modules/npm/node_modules/init-package-json
>-lib/node_modules/npm/node_modules/ip
>+lib/node_modules/npm/node_modules/ip-address
> lib/node_modules/npm/node_modules/ip-regex
> lib/node_modules/npm/node_modules/is-cidr
> lib/node_modules/npm/node_modules/is-core-module
>@@ -2214,6 +2242,7 @@ lib/node_modules/npm/node_modules/is-ful
> lib/node_modules/npm/node_modules/is-lambda
> lib/node_modules/npm/node_modules/isexe
> lib/node_modules/npm/node_modules/jackspeak
>+lib/node_modules/npm/node_modules/jsbn
> lib/node_modules/npm/node_modules/json-parse-even-better-errors
> lib/node_modules/npm/node_modules/json-stringify-nice
> lib/node_modules/npm/node_modules/jsonparse
>@@ -2267,7 +2296,6 @@ lib/node_modules/npm/node_modules/path-k
> lib/node_modules/npm/node_modules/path-scurry
> lib/node_modules/npm/node_modules/postcss-selector-parser
> lib/node_modules/npm/node_modules/proc-log
>-lib/node_modules/npm/node_modules/process
> lib/node_modules/npm/node_modules/promise-all-reject-late
> lib/node_modules/npm/node_modules/promise-call-limit
> lib/node_modules/npm/node_modules/promise-inflight
>@@ -2278,9 +2306,7 @@ lib/node_modules/npm/node_modules/read
> lib/node_modules/npm/node_modules/read-cmd-shim
> lib/node_modules/npm/node_modules/read-package-json
> lib/node_modules/npm/node_modules/read-package-json-fast
>-lib/node_modules/npm/node_modules/readable-stream
> lib/node_modules/npm/node_modules/retry
>-lib/node_modules/npm/node_modules/safe-buffer
> lib/node_modules/npm/node_modules/safer-buffer
> lib/node_modules/npm/node_modules/semver
> lib/node_modules/npm/node_modules/set-blocking
>@@ -2298,7 +2324,6 @@ lib/node_modules/npm/node_modules/spdx-l
> lib/node_modules/npm/node_modules/ssri
> lib/node_modules/npm/node_modules/string-width
> lib/node_modules/npm/node_modules/string-width-cjs
>-lib/node_modules/npm/node_modules/string_decoder
> lib/node_modules/npm/node_modules/strip-ansi
> lib/node_modules/npm/node_modules/strip-ansi-cjs
> lib/node_modules/npm/node_modules/supports-color
>@@ -2362,12 +2387,12 @@ lib/node_modules/path-key/package.json
> lib/node_modules/path-scurry/
> lib/node_modules/path-scurry/LICENSE.md
> lib/node_modules/path-scurry/dist/
>-lib/node_modules/path-scurry/dist/cjs/
>-lib/node_modules/path-scurry/dist/cjs/index.js
>-lib/node_modules/path-scurry/dist/cjs/package.json
>-lib/node_modules/path-scurry/dist/mjs/
>-lib/node_modules/path-scurry/dist/mjs/index.js
>-lib/node_modules/path-scurry/dist/mjs/package.json
>+lib/node_modules/path-scurry/dist/commonjs/
>+lib/node_modules/path-scurry/dist/commonjs/index.js
>+lib/node_modules/path-scurry/dist/commonjs/package.json
>+lib/node_modules/path-scurry/dist/esm/
>+lib/node_modules/path-scurry/dist/esm/index.js
>+lib/node_modules/path-scurry/dist/esm/package.json
> lib/node_modules/path-scurry/package.json
> lib/node_modules/postcss-selector-parser/
> lib/node_modules/postcss-selector-parser/API.md
>@@ -2411,19 +2436,19 @@ lib/node_modules/proc-log/LICENSE
> lib/node_modules/proc-log/lib/
> lib/node_modules/proc-log/lib/index.js
> lib/node_modules/proc-log/package.json
>-lib/node_modules/process/
>-lib/node_modules/process/LICENSE
>-lib/node_modules/process/browser.js
>-lib/node_modules/process/index.js
>-lib/node_modules/process/package.json
>-lib/node_modules/process/test.js
> lib/node_modules/promise-all-reject-late/
> lib/node_modules/promise-all-reject-late/LICENSE
> lib/node_modules/promise-all-reject-late/index.js
> lib/node_modules/promise-all-reject-late/package.json
> lib/node_modules/promise-call-limit/
> lib/node_modules/promise-call-limit/LICENSE
>-lib/node_modules/promise-call-limit/index.js
>+lib/node_modules/promise-call-limit/dist/
>+lib/node_modules/promise-call-limit/dist/commonjs/
>+lib/node_modules/promise-call-limit/dist/commonjs/index.js
>+lib/node_modules/promise-call-limit/dist/commonjs/package.json
>+lib/node_modules/promise-call-limit/dist/esm/
>+lib/node_modules/promise-call-limit/dist/esm/index.js
>+lib/node_modules/promise-call-limit/dist/esm/package.json
> lib/node_modules/promise-call-limit/package.json
> lib/node_modules/promise-inflight/
> lib/node_modules/promise-inflight/LICENSE
>@@ -2481,48 +2506,14 @@ lib/node_modules/read-package-json/lib/
> lib/node_modules/read-package-json/lib/read-json.js
> lib/node_modules/read-package-json/package.json
> lib/node_modules/read/LICENSE
>-lib/node_modules/read/lib/
>-lib/node_modules/read/lib/read.js
>+lib/node_modules/read/dist/
>+lib/node_modules/read/dist/commonjs/
>+lib/node_modules/read/dist/commonjs/package.json
>+lib/node_modules/read/dist/commonjs/read.js
>+lib/node_modules/read/dist/esm/
>+lib/node_modules/read/dist/esm/package.json
>+lib/node_modules/read/dist/esm/read.js
> lib/node_modules/read/package.json
>-lib/node_modules/readable-stream/
>-lib/node_modules/readable-stream/LICENSE
>-lib/node_modules/readable-stream/lib/
>-lib/node_modules/readable-stream/lib/_stream_duplex.js
>-lib/node_modules/readable-stream/lib/_stream_passthrough.js
>-lib/node_modules/readable-stream/lib/_stream_readable.js
>-lib/node_modules/readable-stream/lib/_stream_transform.js
>-lib/node_modules/readable-stream/lib/_stream_writable.js
>-lib/node_modules/readable-stream/lib/internal/
>-lib/node_modules/readable-stream/lib/internal/streams/
>-lib/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js
>-lib/node_modules/readable-stream/lib/internal/streams/buffer_list.js
>-lib/node_modules/readable-stream/lib/internal/streams/compose.js
>-lib/node_modules/readable-stream/lib/internal/streams/destroy.js
>-lib/node_modules/readable-stream/lib/internal/streams/duplex.js
>-lib/node_modules/readable-stream/lib/internal/streams/duplexify.js
>-lib/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
>-lib/node_modules/readable-stream/lib/internal/streams/from.js
>-lib/node_modules/readable-stream/lib/internal/streams/lazy_transform.js
>-lib/node_modules/readable-stream/lib/internal/streams/legacy.js
>-lib/node_modules/readable-stream/lib/internal/streams/operators.js
>-lib/node_modules/readable-stream/lib/internal/streams/passthrough.js
>-lib/node_modules/readable-stream/lib/internal/streams/pipeline.js
>-lib/node_modules/readable-stream/lib/internal/streams/readable.js
>-lib/node_modules/readable-stream/lib/internal/streams/state.js
>-lib/node_modules/readable-stream/lib/internal/streams/transform.js
>-lib/node_modules/readable-stream/lib/internal/streams/utils.js
>-lib/node_modules/readable-stream/lib/internal/streams/writable.js
>-lib/node_modules/readable-stream/lib/internal/validators.js
>-lib/node_modules/readable-stream/lib/ours/
>-lib/node_modules/readable-stream/lib/ours/browser.js
>-lib/node_modules/readable-stream/lib/ours/errors.js
>-lib/node_modules/readable-stream/lib/ours/index.js
>-lib/node_modules/readable-stream/lib/ours/primordials.js
>-lib/node_modules/readable-stream/lib/ours/util.js
>-lib/node_modules/readable-stream/lib/stream/
>-lib/node_modules/readable-stream/lib/stream.js
>-lib/node_modules/readable-stream/lib/stream/promises.js
>-lib/node_modules/readable-stream/package.json
> lib/node_modules/retry/
> lib/node_modules/retry/License
> lib/node_modules/retry/Makefile
>@@ -2535,10 +2526,6 @@ lib/node_modules/retry/lib/
> lib/node_modules/retry/lib/retry.js
> lib/node_modules/retry/lib/retry_operation.js
> lib/node_modules/retry/package.json
>-lib/node_modules/safe-buffer/
>-lib/node_modules/safe-buffer/LICENSE
>-lib/node_modules/safe-buffer/index.js
>-lib/node_modules/safe-buffer/package.json
> lib/node_modules/safer-buffer/
> lib/node_modules/safer-buffer/LICENSE
> lib/node_modules/safer-buffer/Porting-Buffer.md
>@@ -2637,49 +2624,9 @@ lib/node_modules/signal-exit/package.jso
> lib/node_modules/sigstore/
> lib/node_modules/sigstore/LICENSE
> lib/node_modules/sigstore/dist/
>-lib/node_modules/sigstore/dist/ca/
>-lib/node_modules/sigstore/dist/ca/verify/
>-lib/node_modules/sigstore/dist/ca/verify/chain.js
>-lib/node_modules/sigstore/dist/ca/verify/index.js
>-lib/node_modules/sigstore/dist/ca/verify/sct.js
>-lib/node_modules/sigstore/dist/ca/verify/signer.js
> lib/node_modules/sigstore/dist/config.js
>-lib/node_modules/sigstore/dist/error.js
> lib/node_modules/sigstore/dist/index.js
> lib/node_modules/sigstore/dist/sigstore.js
>-lib/node_modules/sigstore/dist/tlog/
>-lib/node_modules/sigstore/dist/tlog/verify/
>-lib/node_modules/sigstore/dist/tlog/verify/body.js
>-lib/node_modules/sigstore/dist/tlog/verify/checkpoint.js
>-lib/node_modules/sigstore/dist/tlog/verify/index.js
>-lib/node_modules/sigstore/dist/tlog/verify/merkle.js
>-lib/node_modules/sigstore/dist/tlog/verify/set.js
>-lib/node_modules/sigstore/dist/types/
>-lib/node_modules/sigstore/dist/types/fetch.js
>-lib/node_modules/sigstore/dist/types/sigstore.js
>-lib/node_modules/sigstore/dist/types/utility.js
>-lib/node_modules/sigstore/dist/util/
>-lib/node_modules/sigstore/dist/util/asn1/
>-lib/node_modules/sigstore/dist/util/asn1/dump.js
>-lib/node_modules/sigstore/dist/util/asn1/error.js
>-lib/node_modules/sigstore/dist/util/asn1/index.js
>-lib/node_modules/sigstore/dist/util/asn1/length.js
>-lib/node_modules/sigstore/dist/util/asn1/obj.js
>-lib/node_modules/sigstore/dist/util/asn1/parse.js
>-lib/node_modules/sigstore/dist/util/asn1/tag.js
>-lib/node_modules/sigstore/dist/util/crypto.js
>-lib/node_modules/sigstore/dist/util/dsse.js
>-lib/node_modules/sigstore/dist/util/encoding.js
>-lib/node_modules/sigstore/dist/util/index.js
>-lib/node_modules/sigstore/dist/util/json.js
>-lib/node_modules/sigstore/dist/util/pem.js
>-lib/node_modules/sigstore/dist/util/stream.js
>-lib/node_modules/sigstore/dist/verify.js
>-lib/node_modules/sigstore/dist/x509/
>-lib/node_modules/sigstore/dist/x509/cert.js
>-lib/node_modules/sigstore/dist/x509/ext.js
>-lib/node_modules/sigstore/dist/x509/sct.js
>-lib/node_modules/sigstore/dist/x509/verify.js
> lib/node_modules/sigstore/package.json
> lib/node_modules/smart-buffer/
> lib/node_modules/smart-buffer/LICENSE
>@@ -2691,6 +2638,7 @@ lib/node_modules/smart-buffer/docs/ROADM
> lib/node_modules/smart-buffer/package.json
> lib/node_modules/socks/
> lib/node_modules/socks-proxy-agent/
>+lib/node_modules/socks-proxy-agent/LICENSE
> lib/node_modules/socks-proxy-agent/dist/
> lib/node_modules/socks-proxy-agent/dist/index.js
> lib/node_modules/socks-proxy-agent/package.json
>@@ -2721,8 +2669,17 @@ lib/node_modules/socks/package.json
> lib/node_modules/spdx-correct/
> lib/node_modules/spdx-correct/LICENSE
> lib/node_modules/spdx-correct/index.js
>+lib/node_modules/spdx-correct/node_modules/
>+lib/node_modules/spdx-correct/node_modules/spdx-expression-parse/
>+lib/node_modules/spdx-correct/node_modules/spdx-expression-parse/AUTHORS
>+lib/node_modules/spdx-correct/node_modules/spdx-expression-parse/LICENSE
>+lib/node_modules/spdx-correct/node_modules/spdx-expression-parse/index.js
>+lib/node_modules/spdx-correct/node_modules/spdx-expression-parse/package.json
>+lib/node_modules/spdx-correct/node_modules/spdx-expression-parse/parse.js
>+lib/node_modules/spdx-correct/node_modules/spdx-expression-parse/scan.js
> lib/node_modules/spdx-correct/package.json
> lib/node_modules/spdx-exceptions/
>+lib/node_modules/spdx-exceptions/deprecated.json
> lib/node_modules/spdx-exceptions/index.json
> lib/node_modules/spdx-exceptions/package.json
> lib/node_modules/spdx-expression-parse/
>@@ -2745,42 +2702,14 @@ lib/node_modules/string-width/
> lib/node_modules/string-width-cjs/
> lib/node_modules/string-width-cjs/index.js
> lib/node_modules/string-width-cjs/license
>-lib/node_modules/string-width-cjs/node_modules/
>-lib/node_modules/string-width-cjs/node_modules/ansi-regex/
>-lib/node_modules/string-width-cjs/node_modules/ansi-regex/index.js
>-lib/node_modules/string-width-cjs/node_modules/ansi-regex/license
>-lib/node_modules/string-width-cjs/node_modules/ansi-regex/package.json
>-lib/node_modules/string-width-cjs/node_modules/strip-ansi/
>-lib/node_modules/string-width-cjs/node_modules/strip-ansi/index.js
>-lib/node_modules/string-width-cjs/node_modules/strip-ansi/license
>-lib/node_modules/string-width-cjs/node_modules/strip-ansi/package.json
> lib/node_modules/string-width-cjs/package.json
> lib/node_modules/string-width/index.js
> lib/node_modules/string-width/license
>-lib/node_modules/string-width/node_modules/
>-lib/node_modules/string-width/node_modules/ansi-regex/
>-lib/node_modules/string-width/node_modules/ansi-regex/index.js
>-lib/node_modules/string-width/node_modules/ansi-regex/license
>-lib/node_modules/string-width/node_modules/ansi-regex/package.json
>-lib/node_modules/string-width/node_modules/strip-ansi/
>-lib/node_modules/string-width/node_modules/strip-ansi/index.js
>-lib/node_modules/string-width/node_modules/strip-ansi/license
>-lib/node_modules/string-width/node_modules/strip-ansi/package.json
> lib/node_modules/string-width/package.json
>-lib/node_modules/string_decoder/
>-lib/node_modules/string_decoder/LICENSE
>-lib/node_modules/string_decoder/lib/
>-lib/node_modules/string_decoder/lib/string_decoder.js
>-lib/node_modules/string_decoder/package.json
> lib/node_modules/strip-ansi/
> lib/node_modules/strip-ansi-cjs/
> lib/node_modules/strip-ansi-cjs/index.js
> lib/node_modules/strip-ansi-cjs/license
>-lib/node_modules/strip-ansi-cjs/node_modules/
>-lib/node_modules/strip-ansi-cjs/node_modules/ansi-regex/
>-lib/node_modules/strip-ansi-cjs/node_modules/ansi-regex/index.js
>-lib/node_modules/strip-ansi-cjs/node_modules/ansi-regex/license
>-lib/node_modules/strip-ansi-cjs/node_modules/ansi-regex/package.json
> lib/node_modules/strip-ansi-cjs/package.json
> lib/node_modules/strip-ansi/index.js
> lib/node_modules/strip-ansi/license
>@@ -2900,6 +2829,14 @@ lib/node_modules/util-deprecate/package.
> lib/node_modules/validate-npm-package-license/
> lib/node_modules/validate-npm-package-license/LICENSE
> lib/node_modules/validate-npm-package-license/index.js
>+lib/node_modules/validate-npm-package-license/node_modules/
>+lib/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/
>+lib/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/AUTHORS
>+lib/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE
>+lib/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js
>+lib/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json
>+lib/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parse.js
>+lib/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/scan.js
> lib/node_modules/validate-npm-package-license/package.json
> lib/node_modules/validate-npm-package-name/
> lib/node_modules/validate-npm-package-name/LICENSE
>@@ -2957,22 +2894,18 @@ lib/node_modules/wrap-ansi-cjs/
> lib/node_modules/wrap-ansi-cjs/index.js
> lib/node_modules/wrap-ansi-cjs/license
> lib/node_modules/wrap-ansi-cjs/node_modules/
>-lib/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/
>-lib/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/index.js
>-lib/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/license
>-lib/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/package.json
> lib/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/
> lib/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/index.js
> lib/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/license
> lib/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/package.json
>-lib/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/
>-lib/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/index.js
>-lib/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/license
>-lib/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/package.json
> lib/node_modules/wrap-ansi-cjs/package.json
> lib/node_modules/wrap-ansi/index.js
> lib/node_modules/wrap-ansi/license
> lib/node_modules/wrap-ansi/node_modules/
>+lib/node_modules/wrap-ansi/node_modules/ansi-regex/
>+lib/node_modules/wrap-ansi/node_modules/ansi-regex/index.js
>+lib/node_modules/wrap-ansi/node_modules/ansi-regex/license
>+lib/node_modules/wrap-ansi/node_modules/ansi-regex/package.json
> lib/node_modules/wrap-ansi/node_modules/emoji-regex/
> lib/node_modules/wrap-ansi/node_modules/emoji-regex/LICENSE-MIT.txt
> lib/node_modules/wrap-ansi/node_modules/emoji-regex/RGI_Emoji.js
>@@ -2987,6 +2920,10 @@ lib/node_modules/wrap-ansi/node_modules/
> lib/node_modules/wrap-ansi/node_modules/string-width/index.js
> lib/node_modules/wrap-ansi/node_modules/string-width/license
> lib/node_modules/wrap-ansi/node_modules/string-width/package.json
>+lib/node_modules/wrap-ansi/node_modules/strip-ansi/
>+lib/node_modules/wrap-ansi/node_modules/strip-ansi/index.js
>+lib/node_modules/wrap-ansi/node_modules/strip-ansi/license
>+lib/node_modules/wrap-ansi/node_modules/strip-ansi/package.json
> lib/node_modules/wrap-ansi/package.json
> lib/node_modules/write-file-atomic/
> lib/node_modules/write-file-atomic/LICENSE.md
>@@ -3004,6 +2941,3 @@ share/doc/node/gdbinit
> share/doc/node/lldb_commands.py
> share/node/
> share/node/${DISTNAME}-headers.tar.gz
>-share/systemtap/
>-share/systemtap/tapset/
>-share/systemtap/tapset/node.stp