https://github.com/yao-pkg/pkg-fetch/raw/refs/tags/v3.5.24/patches/node.v20.19.4.cpp.patch + local FreeBSD patches --- yao-pkg/node_modules/@yao-pkg/pkg-fetch/patches/node.v20.19.4.cpp.patch +++ yao-pkg/node_modules/@yao-pkg/pkg-fetch/patches/node.v20.19.4.cpp.patch @@ -600,3 +600,186 @@ index 2655b9e694..1d951571c7 100644 'cflags_cc!': [ '-fno-rtti' ], }], [ 'OS == "mac" or OS == "ios"', { +--- node/common.gypi.orig 2023-07-20 18:27:37 UTC ++++ node/common.gypi +@@ -426,7 +426,7 @@ + 'ldflags': [ '-m32' ], + }], + [ 'host_arch=="ppc64" and OS not in "aix os400"', { +- 'cflags': [ '-m64', '-mminimal-toc' ], ++ 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ], + }], + [ 'host_arch=="s390x" and OS=="linux"', { +@@ -450,7 +450,7 @@ + 'ldflags': [ '-m32' ], + }], + [ 'target_arch=="ppc64" and OS not in "aix os400"', { +- 'cflags': [ '-m64', '-mminimal-toc' ], ++ 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ], + }], + [ 'target_arch=="s390x" and OS=="linux"', { +--- 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 +@@ -977,7 +977,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-11-22 10:13:54 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 +@@ -44,7 +44,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/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 +@@ -511,6 +511,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.gypi.orig 2023-05-16 06:58:21 UTC ++++ node.gypi +@@ -349,6 +349,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/crypto/crypto_util.cc.orig 2023-05-16 06:58:21 UTC ++++ node/src/crypto/crypto_util.cc +@@ -205,10 +205,12 @@ void InitCryptoOnce() { + // No-op with OPENSSL_NO_COMP builds of OpenSSL. + sk_SSL_COMP_zero(SSL_COMP_get_compression_methods()); + ++#if OPENSSL_VERSION_MAJOR < 3 + #ifndef OPENSSL_NO_ENGINE + ERR_load_ENGINE_strings(); + ENGINE_load_builtin_engines(); + #endif // !OPENSSL_NO_ENGINE ++#endif + } + + void GetFipsCrypto(const FunctionCallbackInfo& args) { +--- 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 +@@ -1091,7 +1091,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', ], + },