https://github.com/yao-pkg/pkg-fetch/raw/refs/tags/v3.5.21/patches/node.v22.14.0.cpp.patch + local FreeBSD patches --- yao-pkg/node_modules/@yao-pkg/pkg-fetch/patches/node.v22.14.0.cpp.patch 2025-04-28 21:32:13.877330000 +0000 +++ yao-pkg/node_modules/@yao-pkg/pkg-fetch/patches/node.v22.14.0.cpp.patch @@ -11,6 +11,15 @@ }], ], }, +@@ -494,7 +494,8 @@ + '-fno-exceptions', + '-fno-strict-aliasing', + '-std=gnu++17', ++ '-Wno-error=enum-constexpr-conversion', + ], + 'defines': [ '__STDC_FORMAT_MACROS' ], + 'ldflags': [ '-rdynamic' ], + 'target_conditions': diff --git node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c index 7d3ab39bf8..67a48dee53 100644 --- node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c @@ -682,3 +691,161 @@ 'cflags_cc!': [ '-fno-rtti' ], }], [ 'OS == "mac" or OS == "ios"', { +--- node/deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi.orig 2023-05-16 06:58:19 UTC ++++ node/deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi +@@ -13,7 +13,7 @@ + '-Wall -O3 -fomit-frame-pointer', + ], + 'openssl_ex_libs_linux-elf': [ +- '-ldl -pthread', ++ '-pthread', + ], + 'openssl_cli_srcs_linux-elf': [ + 'openssl/apps/lib/cmp_mock_srv.c', +--- node/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi.orig 2023-05-16 06:58:19 UTC ++++ node/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi +@@ -976,7 +976,7 @@ + '-Wall -O3 -fomit-frame-pointer', + ], + 'openssl_ex_libs_linux-elf': [ +- '-ldl -pthread', ++ '-pthread', + ], + }, + 'include_dirs': [ +--- node/deps/openssl/openssl-cl_no_asm.gypi.orig 2023-10-24 10:04:40 UTC ++++ node/deps/openssl/openssl-cl_no_asm.gypi +@@ -1,4 +1,5 @@ + { ++ 'defines': ['OPENSSL_NO_ASM'], + 'conditions': [ + ['target_arch=="ppc64" and OS in ("aix", "os400")', { + 'includes': ['config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi'], +@@ -45,7 +46,7 @@ + 'includes': ['config/archs/linux64-loongarch64/no-asm/openssl-cl.gypi'], + }, { + # Other architectures don't use assembly +- 'includes': ['config/archs/linux-x86_64/no-asm/openssl-cl.gypi'], ++ 'includes': ['config/archs/linux-elf/no-asm/openssl-cl.gypi'], + }], + ], + } +--- node/deps/openssl/openssl_no_asm.gypi.orig 2023-05-16 06:58:20 UTC ++++ node/deps/openssl/openssl_no_asm.gypi +@@ -46,7 +46,7 @@ + 'includes': ['config/archs/linux64-riscv64/no-asm/openssl.gypi'], + }, { + # Other architectures don't use assembly +- 'includes': ['config/archs/linux-x86_64/no-asm/openssl.gypi'], ++ 'includes': ['config/archs/linux-elf/no-asm/openssl.gypi'], + }], + ], + } +--- node/deps/v8/src/base/platform/platform-freebsd.cc.orig 2023-05-16 06:58:20 UTC ++++ node/deps/v8/src/base/platform/platform-freebsd.cc +@@ -82,8 +82,8 @@ std::vector OS::GetSharedLib + lib_name = std::string(path); + } + result.push_back(SharedLibraryAddress( +- lib_name, reinterpret_cast(map->kve_start), +- reinterpret_cast(map->kve_end))); ++ lib_name, static_cast(map->kve_start), ++ static_cast(map->kve_end))); + } + + start += ssize; +--- node/deps/v8/src/base/small-vector.h.orig 2024-04-24 14:03:50 UTC ++++ node/deps/v8/src/base/small-vector.h +@@ -22,7 +22,6 @@ class SmallVector { + class SmallVector { + // Currently only support trivially copyable and trivially destructible data + // types, as it uses memcpy to copy elements and never calls destructors. +- ASSERT_TRIVIALLY_COPYABLE(T); + static_assert(std::is_trivially_destructible::value); + + public: +--- node/deps/v8/src/codegen/arm/cpu-arm.cc.orig 2023-05-16 06:58:20 UTC ++++ node/deps/v8/src/codegen/arm/cpu-arm.cc +@@ -2,12 +2,15 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include "include/v8config.h" ++ + // CPU specific code for arm independent of OS goes here. + #ifdef __arm__ + #ifdef __QNXNTO__ + #include // for cache flushing. + #undef MAP_TYPE + #elif V8_OS_FREEBSD ++#include + #include // for cache flushing + #include + #elif V8_OS_STARBOARD +--- node/deps/v8/src/codegen/ppc/constants-ppc.h.orig 2023-05-16 06:58:20 UTC ++++ node/deps/v8/src/codegen/ppc/constants-ppc.h +@@ -36,7 +36,7 @@ + #endif + + #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || !V8_TARGET_ARCH_PPC64 || \ +- V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2) ++ (defined(_CALL_ELF) && _CALL_ELF == 2) + #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1 + #else + #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0 +@@ -44,7 +44,7 @@ + + #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || \ + (V8_TARGET_ARCH_PPC64 && \ +- (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2))) ++ (defined(_CALL_ELF) && _CALL_ELF == 2)) + #define ABI_CALL_VIA_IP 1 + #else + #define ABI_CALL_VIA_IP 0 +--- node/deps/v8/src/libsampler/sampler.cc.orig 2023-05-16 06:58:20 UTC ++++ node/deps/v8/src/libsampler/sampler.cc +@@ -513,6 +513,10 @@ void SignalHandler::FillRegisterState(void* context, R + state->pc = reinterpret_cast(mcontext.__gregs[_REG_PC]); + state->sp = reinterpret_cast(mcontext.__gregs[_REG_SP]); + state->fp = reinterpret_cast(mcontext.__gregs[_REG_FP]); ++#elif V8_TARGET_ARCH_PPC64 ++ state->pc = reinterpret_cast(mcontext.mc_srr0); ++ state->sp = reinterpret_cast(mcontext.mc_frame[1]); ++ state->fp = reinterpret_cast(mcontext.mc_frame[31]); + #endif // V8_HOST_ARCH_* + #elif V8_OS_NETBSD + #if V8_HOST_ARCH_IA32 +--- node/node.gypi.orig 2023-05-16 06:58:21 UTC ++++ node/node.gypi +@@ -370,6 +370,9 @@ + [ 'node_use_openssl=="true"', { + 'defines': [ 'HAVE_OPENSSL=1' ], + 'conditions': [ ++ ['openssl_no_asm==1', { ++ 'defines': [ 'OPENSSL_NO_ASM' ], ++ }], + [ 'node_shared_openssl=="false"', { + 'defines': [ 'OPENSSL_API_COMPAT=0x10100000L', ], + 'dependencies': [ +--- node/src/cares_wrap.h.orig 2023-05-16 06:58:21 UTC ++++ node/src/cares_wrap.h +@@ -23,7 +23,7 @@ + # include + #endif // __POSIX__ + +-# include ++# include + + namespace node { + namespace cares_wrap { +--- node/tools/v8_gypfiles/v8.gyp.orig 2023-05-16 06:58:22 UTC ++++ node/tools/v8_gypfiles/v8.gyp +@@ -1290,7 +1290,7 @@ + }], + # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library + # to implement atomic memory access +- ['v8_current_cpu in ["mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', { ++ ['v8_current_cpu in ["mips64", "mips64el", "ppc", "riscv64", "loong64"]', { + 'link_settings': { + 'libraries': ['-latomic', ], + },