Index: common.gypi
--- common.gypi.orig	2025-06-24 22:18:20.000000000 +0200
+++ common.gypi	2025-06-25 16:22:29.622842000 +0200
@@ -195,7 +195,7 @@
             }],
           ],
         },
-        'cflags': [ '-O3' ],
+        'cflags': [ '-O0' ],
         'conditions': [
           ['enable_lto=="true"', {
             'cflags': ['<(lto)'],
@@ -508,7 +508,7 @@
         'ldflags': [ '-pthread' ],
       }],
       [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi openharmony"', {
-        'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
+        'cflags': [ '-Wno-unused-parameter', ],
         'cflags_cc': [
           '-fno-rtti',
           '-fno-exceptions',
@@ -650,10 +650,7 @@
           'MACOSX_DEPLOYMENT_TARGET': '11.0',       # -mmacosx-version-min=11.0
           'USE_HEADERMAP': 'NO',
           'WARNING_CFLAGS': [
-            '-Wall',
-            '-Wendif-labels',
-            '-W',
-            '-Wno-unused-parameter',
+            '-Wno-unused-parameter'
           ],
         },
         'target_conditions': [
Index: deps/uv/common.gypi
--- deps/uv/common.gypi.orig	2025-06-24 22:18:22.000000000 +0200
+++ deps/uv/common.gypi	2025-06-25 16:18:51.852002000 +0200
@@ -46,7 +46,7 @@
       'Release': {
         'defines': [ 'NDEBUG' ],
         'cflags': [
-          '-O3',
+          '-O0',
         ],
         'msvs_settings': {
           'VCCLCompilerTool': {
Index: deps/uv/uv.gyp
--- deps/uv/uv.gyp.orig	2025-06-24 22:18:22.000000000 +0200
+++ deps/uv/uv.gyp	2025-06-25 16:18:51.852155000 +0200
@@ -232,7 +232,7 @@
               }],
               ['OS!="mac"', {
                 'libraries': [
-                  '-lm'
+                  '-lz', '-lm'
                 ],
               }],
             ],
Index: deps/v8/src/base/numbers/bignum.cc
--- deps/v8/src/base/numbers/bignum.cc.orig	2025-06-24 22:18:22.000000000 +0200
+++ deps/v8/src/base/numbers/bignum.cc	2025-06-25 16:18:51.852350000 +0200
@@ -5,6 +5,7 @@
 #include "src/base/numbers/bignum.h"
 
 #include "src/base/strings.h"
+#include <stdarg.h>
 
 namespace v8 {
 namespace base {
Index: deps/v8/src/base/platform/platform-freebsd.cc
--- deps/v8/src/base/platform/platform-freebsd.cc.orig	2025-06-24 22:18:22.000000000 +0200
+++ deps/v8/src/base/platform/platform-freebsd.cc	2025-06-25 16:18:51.852477000 +0200
@@ -28,6 +28,7 @@
 #include <strings.h>    // index
 
 #include <cmath>
+#include <cstdio>
 
 #undef MAP_TYPE
 
Index: deps/v8/src/base/strings.h
--- deps/v8/src/base/strings.h.orig	2025-06-24 22:18:22.000000000 +0200
+++ deps/v8/src/base/strings.h	2025-06-25 16:18:51.852585000 +0200
@@ -8,6 +8,7 @@
 #include "src/base/base-export.h"
 #include "src/base/macros.h"
 #include "src/base/vector.h"
+#include <cstdarg>
 
 namespace v8 {
 namespace base {
Index: deps/v8/src/wasm/wasm-result.cc
--- deps/v8/src/wasm/wasm-result.cc.orig	2025-06-24 22:18:23.000000000 +0200
+++ deps/v8/src/wasm/wasm-result.cc	2025-06-25 16:18:51.852716000 +0200
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <cstdarg>
+
 #include "src/wasm/wasm-result.h"
 
 #include "src/base/strings.h"
Index: lib/dns.js
--- lib/dns.js.orig	2025-06-24 22:18:24.000000000 +0200
+++ lib/dns.js	2025-06-25 16:18:51.852869000 +0200
@@ -233,6 +233,10 @@
     order = DNS_ORDER_IPV6_FIRST;
   }
 
+  /*  FreeBSD getaddrinfo(3) knows AI_V4MAPPED, but dislikes it  */
+  if (process.platform === "freebsd")
+      hints &= ~(exports.V4MAPPED);
+
   const err = cares.getaddrinfo(
     req, hostname, family, hints, order,
   );
Index: lib/internal/modules/cjs/loader.js
--- lib/internal/modules/cjs/loader.js.orig	2025-06-24 22:18:24.000000000 +0200
+++ lib/internal/modules/cjs/loader.js	2025-06-25 16:18:51.853224000 +0200
@@ -2000,7 +2000,10 @@
     path.resolve(process.execPath, '..') :
     path.resolve(process.execPath, '..', '..');
 
-  const paths = [path.resolve(prefixDir, 'lib', 'node')];
+  const paths = [
+      path.resolve(prefixDir, '..', 'lib', 'node', 'usr'),
+      path.resolve(prefixDir, '..', 'lib', 'node', 'pkg')
+  ];
 
   if (homeDir) {
     ArrayPrototypeUnshift(paths, path.resolve(homeDir, '.node_libraries'));
Index: src/crypto/crypto_aes.cc
--- src/crypto/crypto_aes.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_aes.cc	2025-06-25 16:18:51.853399000 +0200
@@ -9,8 +9,8 @@
 #include "threadpoolwork-inl.h"
 #include "v8.h"
 
-#include <openssl/bn.h>
-#include <openssl/aes.h>
+#include "openssl/bn.h"
+#include "openssl/aes.h"
 
 #include <vector>
 
Index: src/crypto/crypto_bio.cc
--- src/crypto/crypto_bio.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_bio.cc	2025-06-25 16:18:51.853542000 +0200
@@ -24,7 +24,7 @@
 #include "memory_tracker-inl.h"
 #include "util-inl.h"
 
-#include <openssl/bio.h>
+#include "openssl/bio.h"
 
 #include <climits>
 #include <cstring>
Index: src/crypto/crypto_common.cc
--- src/crypto/crypto_common.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_common.cc	2025-06-25 16:18:51.853676000 +0200
@@ -13,14 +13,14 @@
 #include "string_bytes.h"
 #include "v8.h"
 
-#include <openssl/ec.h>
-#include <openssl/ecdh.h>
-#include <openssl/evp.h>
-#include <openssl/pem.h>
-#include <openssl/x509v3.h>
-#include <openssl/hmac.h>
-#include <openssl/rand.h>
-#include <openssl/pkcs12.h>
+#include "openssl/ec.h"
+#include "openssl/ecdh.h"
+#include "openssl/evp.h"
+#include "openssl/pem.h"
+#include "openssl/x509v3.h"
+#include "openssl/hmac.h"
+#include "openssl/rand.h"
+#include "openssl/pkcs12.h"
 
 #include <string>
 #include <unordered_map>
Index: src/crypto/crypto_common.h
--- src/crypto/crypto_common.h.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_common.h	2025-06-25 16:18:51.853782000 +0200
@@ -3,8 +3,8 @@
 
 #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
 
-#include <openssl/ssl.h>
-#include <openssl/x509v3.h>
+#include "openssl/ssl.h"
+#include "openssl/x509v3.h"
 #include "ncrypto.h"
 #include "node_crypto.h"
 #include "v8.h"
Index: src/crypto/crypto_context.cc
--- src/crypto/crypto_context.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_context.cc	2025-06-25 16:18:51.854098000 +0200
@@ -12,11 +12,11 @@
 #include "util.h"
 #include "v8.h"
 
-#include <openssl/x509.h>
-#include <openssl/pkcs12.h>
-#include <openssl/rand.h>
+#include "openssl/x509.h"
+#include "openssl/pkcs12.h"
+#include "openssl/rand.h"
 #ifndef OPENSSL_NO_ENGINE
-#include <openssl/engine.h>
+#include "openssl/engine.h"
 #endif  // !OPENSSL_NO_ENGINE
 #ifdef __APPLE__
 #include <Security/Security.h>
Index: src/crypto/crypto_dsa.cc
--- src/crypto/crypto_dsa.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_dsa.cc	2025-06-25 16:18:51.854253000 +0200
@@ -7,8 +7,8 @@
 #include "threadpoolwork-inl.h"
 #include "v8.h"
 
-#include <openssl/bn.h>
-#include <openssl/dsa.h>
+#include "openssl/bn.h"
+#include "openssl/dsa.h"
 
 #include <cstdio>
 
Index: src/crypto/crypto_keys.h
--- src/crypto/crypto_keys.h.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_keys.h	2025-06-25 16:18:51.854410000 +0200
@@ -11,7 +11,7 @@
 #include "node_worker.h"
 #include "v8.h"
 
-#include <openssl/evp.h>
+#include "openssl/evp.h"
 
 #include <memory>
 #include <string>
Index: src/crypto/crypto_rsa.cc
--- src/crypto/crypto_rsa.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_rsa.cc	2025-06-25 16:18:51.854594000 +0200
@@ -9,8 +9,8 @@
 #include "threadpoolwork-inl.h"
 #include "v8.h"
 
-#include <openssl/bn.h>
-#include <openssl/rsa.h>
+#include "openssl/bn.h"
+#include "openssl/rsa.h"
 
 namespace node {
 
Index: src/crypto/crypto_spkac.h
--- src/crypto/crypto_spkac.h.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_spkac.h	2025-06-25 16:18:51.854711000 +0200
@@ -6,7 +6,7 @@
 #include "env.h"
 #include "v8.h"
 
-#include <openssl/evp.h>
+#include "openssl/evp.h"
 
 namespace node {
 namespace crypto {
Index: src/crypto/crypto_timing.cc
--- src/crypto/crypto_timing.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_timing.cc	2025-06-25 16:18:51.854842000 +0200
@@ -6,7 +6,7 @@
 #include "node_errors.h"
 #include "v8.h"
 
-#include <openssl/crypto.h>
+#include "openssl/crypto.h"
 
 namespace node {
 
Index: src/crypto/crypto_tls.h
--- src/crypto/crypto_tls.h.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_tls.h	2025-06-25 16:18:51.854985000 +0200
@@ -31,7 +31,7 @@
 #include "stream_wrap.h"
 #include "v8.h"
 
-#include <openssl/ssl.h>
+#include "openssl/ssl.h"
 
 #include <string>
 #include <vector>
Index: src/crypto/crypto_util.h
--- src/crypto/crypto_util.h.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/crypto/crypto_util.h	2025-06-25 16:18:51.855180000 +0200
@@ -14,19 +14,19 @@
 
 #include "ncrypto.h"
 
-#include <openssl/dsa.h>
-#include <openssl/ec.h>
-#include <openssl/err.h>
-#include <openssl/evp.h>
-#include <openssl/hmac.h>
-#include <openssl/kdf.h>
-#include <openssl/rsa.h>
-#include <openssl/ssl.h>
+#include "openssl/dsa.h"
+#include "openssl/ec.h"
+#include "openssl/err.h"
+#include "openssl/evp.h"
+#include "openssl/hmac.h"
+#include "openssl/kdf.h"
+#include "openssl/rsa.h"
+#include "openssl/ssl.h"
 
 // The FIPS-related functions are only available
 // when the OpenSSL itself was compiled with FIPS support.
 #if defined(OPENSSL_FIPS) && OPENSSL_VERSION_MAJOR < 3
-#  include <openssl/fips.h>
+#  include "openssl/fips.h"
 #endif  // OPENSSL_FIPS
 
 #include <algorithm>
Index: src/inspector_socket_server.cc
--- src/inspector_socket_server.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/inspector_socket_server.cc	2025-06-25 16:18:51.855335000 +0200
@@ -20,7 +20,7 @@
                             bool include_protocol);
 namespace {
 
-static const uint8_t PROTOCOL_JSON[] = {
+static uint8_t PROTOCOL_JSON[] = {
   #include "v8_inspector_protocol_json.h"  // NOLINT(build/include_order)
 };
 
Index: src/node_constants.cc
--- src/node_constants.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/node_constants.cc	2025-06-25 16:18:51.855538000 +0200
@@ -36,10 +36,10 @@
 
 
 #if HAVE_OPENSSL
-#include <openssl/ec.h>
-#include <openssl/ssl.h>
+#include "openssl/ec.h"
+#include "openssl/ssl.h"
 #ifndef OPENSSL_NO_ENGINE
-#include <openssl/engine.h>
+#include "openssl/engine.h"
 #endif  // !OPENSSL_NO_ENGINE
 #endif  // HAVE_OPENSSL
 
Index: src/node_metadata.cc
--- src/node_metadata.cc.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/node_metadata.cc	2025-06-25 16:18:51.855650000 +0200
@@ -28,10 +28,10 @@
 #endif  // NODE_BUNDLED_ZLIB
 
 #if HAVE_OPENSSL
-#include <openssl/crypto.h>
+#include "openssl/crypto.h"
 #include "ncrypto.h"
 #if NODE_OPENSSL_HAS_QUIC
-#include <openssl/quic.h>
+#include "openssl/quic.h"
 #endif
 #endif  // HAVE_OPENSSL
 
Index: src/util.h
--- src/util.h.orig	2025-06-24 22:18:25.000000000 +0200
+++ src/util.h	2025-06-25 16:18:51.855865000 +0200
@@ -178,14 +178,23 @@
     }                                                                          \
   } while (0)
 
+#undef  CHECK_EQ
 #define CHECK_EQ(a, b) CHECK((a) == (b))
+#undef  CHECK_GE
 #define CHECK_GE(a, b) CHECK((a) >= (b))
+#undef  CHECK_GT
 #define CHECK_GT(a, b) CHECK((a) > (b))
+#undef  CHECK_LE
 #define CHECK_LE(a, b) CHECK((a) <= (b))
+#undef  CHECK_LT
 #define CHECK_LT(a, b) CHECK((a) < (b))
+#undef  CHECK_NE
 #define CHECK_NE(a, b) CHECK((a) != (b))
+#undef  CHECK_NULL
 #define CHECK_NULL(val) CHECK((val) == nullptr)
+#undef  CHECK_NOT_NULL
 #define CHECK_NOT_NULL(val) CHECK((val) != nullptr)
+#undef  CHECK_IMPLIES
 #define CHECK_IMPLIES(a, b) CHECK(!(a) || (b))
 
 #ifdef DEBUG
@@ -213,6 +222,7 @@
 #endif
 
 
+#undef  UNREACHABLE
 #define UNREACHABLE(...)                                                      \
   ERROR_AND_ABORT("Unreachable code reached" __VA_OPT__(": ") __VA_ARGS__)
 
Index: tools/install.py
--- tools/install.py.orig	2025-06-24 22:18:25.000000000 +0200
+++ tools/install.py	2025-06-25 16:18:51.856015000 +0200
@@ -198,10 +198,7 @@
   action(options, [os.path.join(options.v8_dir, 'tools/gdbinit')], 'share/doc/node/')
   action(options, [os.path.join(options.v8_dir, 'tools/lldb_commands.py')], 'share/doc/node/')
 
-  if 'openbsd' in sys.platform:
-    action(options, ['doc/node.1'], 'man/man1/')
-  else:
-    action(options, ['doc/node.1'], 'share/man/man1/')
+  action(options, ['doc/node.1'], 'man/man1/')
 
   if 'true' == options.variables.get('node_install_npm'):
     npm_files(options, action)
Index: tools/v8_gypfiles/toolchain.gypi
--- tools/v8_gypfiles/toolchain.gypi.orig	2025-06-24 22:18:25.000000000 +0200
+++ tools/v8_gypfiles/toolchain.gypi	2025-06-25 16:18:51.856229000 +0200
@@ -672,12 +672,6 @@
       ['OS=="solaris"', {
         'defines': [ '__C99FEATURES__=1' ],  # isinf() etc.
       }],
-      ['OS=="freebsd" or OS=="openbsd"', {
-        'cflags': [ '-I/usr/local/include' ],
-      }],
-      ['OS=="netbsd"', {
-        'cflags': [ '-I/usr/pkg/include' ],
-      }],
       ['OS=="aix" or OS=="os400"', {
         'defines': [
           # Support for malloc(0)
@@ -812,8 +806,8 @@
                   # Don't use -O3 with sanitizers.
                   ['asan==0 and msan==0 and lsan==0 \
                 and tsan==0 and ubsan==0 and ubsan_vptr==0', {
-                    'cflags': ['-O3'],
-                    'cflags!': ['-O2'],
+                    'cflags': ['-O0'],
+                    'cflags!': ['-O0'],
                   }, {
                      'cflags': ['-O2'],
                      'cflags!': ['-O3'],
@@ -858,8 +852,8 @@
               # Don't use -O3 with sanitizers.
               ['asan==0 and msan==0 and lsan==0 \
                 and tsan==0 and ubsan==0 and ubsan_vptr==0', {
-                'cflags': ['-O3'],
-                'cflags!': ['-O2'],
+                'cflags': ['-O0'],
+                'cflags!': ['-O0'],
               }, {
                 'cflags': ['-O2'],
                 'cflags!': ['-O3'],
