Index: common.gypi --- common.gypi.orig 2019-09-25 23:12:57.000000000 +0200 +++ common.gypi 2019-09-26 22:24:34.316602000 +0200 @@ -195,7 +195,7 @@ }], ], }, - 'cflags': [ '-O3' ], + 'cflags': [ '-O2' ], 'conditions': [ ['OS=="solaris"', { # pull in V8's postmortem metadata @@ -359,7 +359,7 @@ 'ldflags': [ '-pthread' ], }], [ 'OS in "linux freebsd openbsd solaris android aix cloudabi"', { - 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ], + 'cflags': [ '-Wno-unused-parameter', ], 'cflags_cc': [ '-fno-rtti', '-fno-exceptions', '-std=gnu++1y' ], 'ldflags': [ '-rdynamic' ], 'target_conditions': [ @@ -457,10 +457,7 @@ '-fno-strict-aliasing', ], 'WARNING_CFLAGS': [ - '-Wall', - '-Wendif-labels', - '-W', - '-Wno-unused-parameter', + '-Wno-unused-parameter' ], }, 'target_conditions': [ Index: deps/uv/common.gypi --- deps/uv/common.gypi.orig 2019-09-25 23:12:59.000000000 +0200 +++ deps/uv/common.gypi 2019-09-26 22:24:34.316761000 +0200 @@ -46,7 +46,7 @@ 'Release': { 'defines': [ 'NDEBUG' ], 'cflags': [ - '-O3', + '-O2', ], 'msvs_settings': { 'VCCLCompilerTool': { Index: deps/uv/uv.gyp --- deps/uv/uv.gyp.orig 2019-09-25 23:12:59.000000000 +0200 +++ deps/uv/uv.gyp 2019-09-26 22:24:34.316905000 +0200 @@ -176,7 +176,7 @@ 'src/unix/udp.c', ], 'link_settings': { - 'libraries': [ '-lm' ], + 'libraries': [ '-lz', '-lm' ], 'conditions': [ ['OS=="solaris"', { 'ldflags': [ '-pthreads' ], Index: deps/v8/src/base/platform/platform-freebsd.cc --- deps/v8/src/base/platform/platform-freebsd.cc.orig 2019-09-25 23:12:59.000000000 +0200 +++ deps/v8/src/base/platform/platform-freebsd.cc 2019-09-26 22:24:34.317035000 +0200 @@ -25,6 +25,7 @@ #include // index #include +#include #undef MAP_TYPE Index: deps/v8/src/builtins/array.tq --- deps/v8/src/builtins/array.tq.orig 2019-09-25 23:12:59.000000000 +0200 +++ deps/v8/src/builtins/array.tq 2019-09-26 22:24:34.317161000 +0200 @@ -32,17 +32,6 @@ assert(array.elements.map != kCOWMap); } - macro IsJSArray(implicit context: Context)(o: Object): bool { - typeswitch (o) { - case (JSArray): { - return true; - } - case (Object): { - return false; - } - } - } - macro LoadElementOrUndefined(a: FixedArray, i: Smi): Object { const e: Object = a.objects[i]; return e == TheHole ? Undefined : e; Index: deps/v8/src/builtins/base.tq --- deps/v8/src/builtins/base.tq.orig 2019-09-25 23:12:59.000000000 +0200 +++ deps/v8/src/builtins/base.tq 2019-09-26 22:27:05.720021000 +0200 @@ -443,9 +443,6 @@ } extern class JSArray extends JSObject { - IsEmpty(): bool { - return this.length == 0; - } length: Number; } @@ -459,15 +456,6 @@ }; } -macro NewJSArray(implicit context: Context)(): JSArray { - return new JSArray{ - map: GetFastPackedSmiElementsJSArrayMap(), - properties_or_hash: kEmptyFixedArray, - elements: kEmptyFixedArray, - length: 0 - }; -} - // A HeapObject with a JSArray map, and either fast packed elements, or fast // holey elements when the global NoElementsProtector is not invalidated. transient type FastJSArray extends JSArray; @@ -2584,10 +2572,6 @@ return UnsafeCast( LoadNativeContext(context)[JS_ARRAY_PACKED_ELEMENTS_MAP_INDEX]); } -macro GetFastPackedSmiElementsJSArrayMap(implicit context: Context)(): Map { - return UnsafeCast( - LoadNativeContext(context)[JS_ARRAY_PACKED_SMI_ELEMENTS_MAP_INDEX]); -} macro GetProxyRevocableResultMap(implicit context: Context)(): Map { return UnsafeCast( LoadNativeContext(context)[PROXY_REVOCABLE_RESULT_MAP_INDEX]); @@ -3118,11 +3102,6 @@ unreachable; } -macro VerifiedUnreachable(): never { - StaticAssert(false); - unreachable; -} - macro Float64IsSomeInfinity(value: float64): bool { if (value == V8_INFINITY) { return true; Index: deps/v8/src/wasm/wasm-result.cc --- deps/v8/src/wasm/wasm-result.cc.orig 2019-09-25 23:12:59.000000000 +0200 +++ deps/v8/src/wasm/wasm-result.cc 2019-09-26 22:24:34.317697000 +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 + #include "src/wasm/wasm-result.h" #include "src/execution/isolate-inl.h" Index: lib/dns.js --- lib/dns.js.orig 2019-09-25 23:13:01.000000000 +0200 +++ lib/dns.js 2019-09-26 22:24:34.317841000 +0200 @@ -142,6 +142,10 @@ req.hostname = hostname; req.oncomplete = all ? onlookupall : onlookup; + /* FreeBSD getaddrinfo(3) knows AI_V4MAPPED, but dislikes it */ + if (process.platform === "freebsd") + hints &= ~(exports.V4MAPPED); + const err = cares.getaddrinfo( req, toASCII(hostname), family, hints, verbatim ); Index: lib/internal/modules/cjs/loader.js --- lib/internal/modules/cjs/loader.js.orig 2019-09-25 23:13:01.000000000 +0200 +++ lib/internal/modules/cjs/loader.js 2019-09-26 22:24:34.318063000 +0200 @@ -1076,7 +1076,10 @@ } else { prefixDir = path.resolve(process.execPath, '..', '..'); } - var paths = [path.resolve(prefixDir, 'lib', 'node')]; + var paths = [ + path.resolve(prefixDir, '..', 'lib', 'node', 'usr'), + path.resolve(prefixDir, '..', 'lib', 'node', 'pkg') + ]; if (homeDir) { paths.unshift(path.resolve(homeDir, '.node_libraries')); Index: src/inspector/node_string.h --- src/inspector/node_string.h.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/inspector/node_string.h 2019-09-26 22:24:34.318186000 +0200 @@ -3,6 +3,7 @@ #ifndef SRC_INSPECTOR_NODE_STRING_H_ #define SRC_INSPECTOR_NODE_STRING_H_ +#include "env.h" #include "util.h" #include "v8-inspector.h" Index: src/inspector_socket_server.cc --- src/inspector_socket_server.cc.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/inspector_socket_server.cc 2019-09-26 22:24:34.318337000 +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 2019-09-25 23:13:01.000000000 +0200 +++ src/node_constants.cc 2019-09-26 22:24:34.318546000 +0200 @@ -36,10 +36,10 @@ #if HAVE_OPENSSL -#include -#include +#include "openssl/ec.h" +#include "openssl/ssl.h" #ifndef OPENSSL_NO_ENGINE -#include +#include "openssl/engine.h" #endif // !OPENSSL_NO_ENGINE #endif // HAVE_OPENSSL Index: src/node_crypto.cc --- src/node_crypto.cc.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/node_crypto.cc 2019-09-26 22:24:34.319268000 +0200 @@ -38,17 +38,17 @@ #include "util-inl.h" #include "v8.h" -#include -#include +#include "openssl/ec.h" +#include "openssl/ecdh.h" #ifndef OPENSSL_NO_ENGINE -# include +# include "openssl/engine.h" #endif // !OPENSSL_NO_ENGINE -#include -#include -#include -#include -#include -#include +#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 #include // INT_MAX Index: src/node_crypto.h --- src/node_crypto.h.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/node_crypto.h 2019-09-26 22:24:34.319449000 +0200 @@ -33,8 +33,9 @@ #include "v8.h" -#include -#include +#include "openssl/err.h" +#include "openssl/ssl.h" +#include "openssl/evp.h" namespace node { namespace crypto { Index: src/node_metadata.cc --- src/node_metadata.cc.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/node_metadata.cc 2019-09-26 22:24:34.319563000 +0200 @@ -9,7 +9,7 @@ #include "zlib.h" #if HAVE_OPENSSL -#include +#include "openssl/opensslv.h" #endif // HAVE_OPENSSL #ifdef NODE_HAVE_I18N_SUPPORT Index: src/tls_wrap.h --- src/tls_wrap.h.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/tls_wrap.h 2019-09-26 22:24:34.319684000 +0200 @@ -31,7 +31,7 @@ #include "stream_wrap.h" #include "v8.h" -#include +#include "openssl/ssl.h" #include Index: src/tracing/traced_value.cc --- src/tracing/traced_value.cc.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/tracing/traced_value.cc 2019-09-26 22:24:34.319814000 +0200 @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "tracing/traced_value.h" +#include "base_object.h" #if defined(NODE_HAVE_I18N_SUPPORT) #include Index: src/util.h --- src/util.h.orig 2019-09-25 23:13:01.000000000 +0200 +++ src/util.h 2019-09-26 22:24:34.319976000 +0200 @@ -146,14 +146,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 @@ -181,6 +190,7 @@ #endif +#undef UNREACHABLE #define UNREACHABLE(...) \ ERROR_AND_ABORT("Unreachable code reached" __VA_OPT__(": ") __VA_ARGS__) Index: tools/install.py --- tools/install.py.orig 2019-09-25 23:13:01.000000000 +0200 +++ tools/install.py 2019-09-26 22:24:34.320217000 +0200 @@ -151,10 +151,7 @@ action(['deps/v8/tools/gdbinit'], 'share/doc/node/') action(['deps/v8/tools/lldb_commands.py'], 'share/doc/node/') - if 'freebsd' in sys.platform or 'openbsd' in sys.platform: - action(['doc/node.1'], 'man/man1/') - else: - action(['doc/node.1'], 'share/man/man1/') + action(['doc/node.1'], 'man/man1/') if 'true' == variables.get('node_install_npm'): npm_files(action) Index: tools/v8_gypfiles/toolchain.gypi --- tools/v8_gypfiles/toolchain.gypi.orig 2019-09-25 23:13:02.000000000 +0200 +++ tools/v8_gypfiles/toolchain.gypi 2019-09-26 22:24:34.320464000 +0200 @@ -1123,12 +1123,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"', { 'defines': [ # Support for malloc(0) @@ -1296,8 +1290,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': ['-O2'], + 'cflags!': ['-O3'], }, { 'cflags': ['-O2'], 'cflags!': ['-O3'], @@ -1345,8 +1339,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': ['-O2'], + 'cflags!': ['-O3'], }, { 'cflags': ['-O2'], 'cflags!': ['-O3'], Index: tools/v8_gypfiles/v8.gyp --- tools/v8_gypfiles/v8.gyp.orig 2019-09-25 23:13:02.000000000 +0200 +++ tools/v8_gypfiles/v8.gyp 2019-09-26 22:24:34.320690000 +0200 @@ -81,8 +81,7 @@ "<(V8_ROOT)/src/builtins/typed-array-some.tq", "<(V8_ROOT)/src/builtins/typed-array-subarray.tq", "<(V8_ROOT)/src/builtins/typed-array.tq", - "<(V8_ROOT)/third_party/v8/builtins/array-sort.tq", - "<(V8_ROOT)/test/torque/test-torque.tq", + "<(V8_ROOT)/third_party/v8/builtins/array-sort.tq" ], 'torque_output_root': '<(SHARED_INTERMEDIATE_DIR)/torque-output-root', 'torque_files_replaced': ['