diff --git a/net-libs/nodejs/nodejs16-16.11.1.recipe b/net-libs/nodejs/nodejs16-16.11.1.recipe deleted file mode 100644 index 35fcdc9cf..000000000 --- a/net-libs/nodejs/nodejs16-16.11.1.recipe +++ /dev/null @@ -1,89 +0,0 @@ -SUMMARY="A JavaScript runtime built on Chrome's V8 Engine" -DESCRIPTION="Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. \ -As an asynchronous event driven JavaScript runtime, Node is designed to build scalable \ -network applications. In the following \"hello world\" example, many connections can be \ -handled concurrently. Upon each connection the callback is fired, but if there is no work \ -to be done, Node will sleep." -HOMEPAGE="https://nodejs.org/" -COPYRIGHT="2006-2019 The Node.js Foundation" -LICENSE="BSD (2-clause)" -REVISION="1" -SOURCE_URI="https://github.com/nodejs/node/archive/v$portVersion/nodejs-$portVersion.tar.gz" -SOURCE_DIR="node-$portVersion" -CHECKSUM_SHA256="cae2cee190c66d1c077f9284ff001b05901daf16e6bc0082fe2069f5623109cf" -PATCHES="nodejs-$portVersion.patchset" - -ARCHITECTURES="all !x86_gcc2" -SECONDARY_ARCHITECTURES="?x86" - -PROVIDES=" - nodejs16$secondaryArchSuffix = $portVersion - cmd:node = $portVersion compat >= 16 - " -REQUIRES=" - haiku$secondaryArchSuffix - lib:libcares$secondaryArchSuffix - lib:libcrypto$secondaryArchSuffix - lib:libexecinfo$secondaryArchSuffix - lib:libnghttp2$secondaryArchSuffix - lib:libssl$secondaryArchSuffix - lib:libuv$secondaryArchSuffix - lib:libz$secondaryArchSuffix - " - -PROVIDES_devel=" - nodejs16${secondaryArchSuffix}_devel - " -REQUIRES_devel=" - nodejs16$secondaryArchSuffix == $portVersion base - " - -BUILD_REQUIRES=" - haiku${secondaryArchSuffix}_devel - devel:libcares$secondaryArchSuffix >= 2.4 - devel:libexecinfo$secondaryArchSuffix - devel:libnghttp2$secondaryArchSuffix >= 14.20 - devel:libssl$secondaryArchSuffix >= 1.1 - devel:libuv$secondaryArchSuffix - devel:libz$secondaryArchSuffix - " -BUILD_PREREQUIRES=" - cmd:find - cmd:gcc$secondaryArchSuffix - cmd:ld$secondaryArchSuffix - cmd:make - cmd:ninja - cmd:python3.9 - cmd:which - " - -BUILD() -{ - ./configure --with-intl=none --dest-os=haiku \ - --shared-cares --shared-libuv --shared-nghttp2 --shared-openssl \ - --shared-zlib \ - --prefix=$prefix --without-npm - - make $jobArgs -} - -INSTALL() -{ - make install - - mkdir -p $(dirname $docDir $includeDir $manDir) - mv $prefix/include $includeDir - mv $prefix/share/man $manDir - mv $prefix/share/doc $docDir - - packageEntries devel \ - $developDir - - strip $prefix/bin/node - rm -rf $prefix/share -} - -TEST() -{ - make test-only -} diff --git a/net-libs/nodejs/patches/nodejs-16.11.1.patchset b/net-libs/nodejs/patches/nodejs-16.11.1.patchset deleted file mode 100644 index a6cc01d62..000000000 --- a/net-libs/nodejs/patches/nodejs-16.11.1.patchset +++ /dev/null @@ -1,672 +0,0 @@ -From 3717978298bf0876ca4dfeb0b4733a8ea56ea9ec Mon Sep 17 00:00:00 2001 -From: Calvin Hill -Date: Wed, 22 May 2019 11:23:37 +0000 -Subject: Initial Haiku support for Node.js - - -diff --git a/common.gypi b/common.gypi -index 6862acc..bd05e77 100644 ---- a/common.gypi -+++ b/common.gypi -@@ -265,6 +265,9 @@ - '_target_name!="<(node_core_target_name)")', { - 'cflags!': ['-Werror'], - }], -+ ['OS=="haiku"', { -+ 'clang%': 0, -+ }], - ], - 'msvs_settings': { - 'VCCLCompilerTool': { -@@ -294,6 +297,10 @@ - ['target_arch=="arm64"', { - 'TargetMachine' : 0, # NotSet. MACHINE:ARM64 is inferred from the input files. - }], -+ ['OS == "haiku"', { -+ 'cflags': [ '-fPIC' ], -+ 'ldflags': [ '-fPIC'] -+ }], - ], - 'GenerateDebugInformation': 'true', - 'SuppressStartupBanner': 'true', -@@ -354,6 +361,10 @@ - ['_type!="static_library"', { - 'xcode_settings': {'OTHER_LDFLAGS': ['-fsanitize=address']}, - }], -+ ['OS == "haiku"', { -+ 'cflags': [ '-fPIC' ], -+ 'ldflags': [ '-fPIC'] -+ }], - ], - }], - ['v8_enable_pointer_compression == 1', { -@@ -384,7 +395,7 @@ - 'cflags': [ '-pthread' ], - 'ldflags': [ '-pthread' ], - }], -- [ 'OS in "linux freebsd openbsd solaris android aix cloudabi"', { -+ [ 'OS in "linux freebsd openbsd solaris android aix cloudabi haiku"', { - 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ], - 'cflags_cc': [ '-fno-rtti', '-fno-exceptions', '-std=gnu++14' ], - 'defines': [ '__STDC_FORMAT_MACROS' ], -@@ -398,6 +409,10 @@ - 'cflags': [ '-I/usr/local/include' ], - 'ldflags': [ '-Wl,-z,wxneeded' ], - }], -+ ['OS=="haiku"', { -+ 'cflags': [ '-fPIC' ], -+ 'ldflags': [ '-fPIC' ], -+ }], - ], - 'conditions': [ - [ 'target_arch=="ia32"', { -@@ -556,6 +571,12 @@ - 'OPENSSL_NO_PINSHARED' - ], - }], -+ ['OS=="haiku"', { -+ 'ldflags': [ '-lroot', '-lbsd', '-lstdc++', '-lnetwork', '-Wl,-Bsymbolic', '-Wl,--export-dynamic', '-fPIC' ], -+ 'ldflags!': [ '-pthreads', '-pthread', '-rdynamic' ], -+ 'clang%': 0, -+ '%v8_use_snapshot':0, -+ }], - ['node_shared_openssl!="true"', { - # `OPENSSL_THREADS` is defined via GYP for openSSL for all architectures. - 'defines': [ -diff --git a/configure.py b/configure.py -index 6efb98c..0ca9798 100755 ---- a/configure.py -+++ b/configure.py -@@ -51,7 +51,7 @@ from utils import SearchFiles - parser = argparse.ArgumentParser() - - valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', -- 'android', 'aix', 'cloudabi') -+ 'android', 'aix', 'cloudabi', 'haiku') - valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', 'ppc', - 'ppc64', 'x32','x64', 'x86', 'x86_64', 's390x', 'riscv64') - valid_arm_float_abi = ('soft', 'softfp', 'hard') -diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-x86_64/no-asm/openssl-cl.gypi -index 76984d4..eda4459 100644 ---- a/deps/openssl/config/archs/linux-x86_64/no-asm/openssl-cl.gypi -+++ b/deps/openssl/config/archs/linux-x86_64/no-asm/openssl-cl.gypi -@@ -8,11 +8,9 @@ - ], - 'openssl_cflags_linux-x86_64': [ - '-Wall -O3', -- '-pthread -m64', -- '-Wall -O3', -+ '-m64', - ], - 'openssl_ex_libs_linux-x86_64': [ -- '-ldl -pthread', - ], - 'openssl_cli_srcs_linux-x86_64': [ - 'openssl/apps/asn1pars.c', -diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi -index d473731..291779a 100644 ---- a/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi -+++ b/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi -@@ -694,11 +694,10 @@ - ], - 'openssl_cflags_linux-x86_64': [ - '-Wall -O3', -- '-pthread -m64', -+ '-m64', - '-Wall -O3', - ], -- 'openssl_ex_libs_linux-x86_64': [ -- '-ldl -pthread', -+ 'openssl_ex_libs_linux-x86_64': [ - ], - }, - 'include_dirs': [ -diff --git a/deps/openssl/openssl/crypto/rand/rand_unix.c b/deps/openssl/openssl/crypto/rand/rand_unix.c -index 43f1069..63b38f2 100644 ---- a/deps/openssl/openssl/crypto/rand/rand_unix.c -+++ b/deps/openssl/openssl/crypto/rand/rand_unix.c -@@ -372,7 +372,7 @@ static ssize_t syscall_random(void *buf, size_t buflen) - * Note: Sometimes getentropy() can be provided but not implemented - * internally. So we need to check errno for ENOSYS - */ --# if defined(__GNUC__) && __GNUC__>=2 && defined(__ELF__) && !defined(__hpux) -+# if defined(__GNUC__) && __GNUC__>=2 && defined(__ELF__) && !defined(__hpux) && !defined(__HAIKU__) - extern int getentropy(void *buffer, size_t length) __attribute__((weak)); - - if (getentropy != NULL) { -diff --git a/deps/openssl/openssl_common.gypi b/deps/openssl/openssl_common.gypi -index d866630..52558d8 100644 ---- a/deps/openssl/openssl_common.gypi -+++ b/deps/openssl/openssl_common.gypi -@@ -56,7 +56,14 @@ - 'ENGINESDIR="/dev/null"', - '__EXTENSIONS__' - ], -- }, { -+ },'OS=="haiku"', { -+ '!ldflags': ['-pthread', '-pthreads'], -+ 'defines': [ -+ 'OPENSSLDIR="/boot/system/data/ssl/"', -+ 'ENGINESDIR="/dev/null"', -+ 'TERMIOS', -+ ], -+ },{ - # linux and others - 'cflags': ['-Wno-missing-field-initializers',], - 'defines': [ -diff --git a/node.gypi b/node.gypi -index 713ddbb..5249ffe 100644 ---- a/node.gypi -+++ b/node.gypi -@@ -256,6 +256,16 @@ - 'NODE_PLATFORM="sunos"', - ], - }], -+ [ 'OS=="haiku"', { -+ 'libraries': [ -+ '-lroot', -+ '-lnetwork', -+ '-lbsd', -+ ], -+ 'defines': [ -+ 'NODE_PLATFORM="haiku"', -+ ], -+ }], - [ '(OS=="freebsd" or OS=="linux") and node_shared=="false"' - ' and force_load=="true"', { - 'ldflags': [ -diff --git a/src/node.cc b/src/node.cc -index acf4f0f..58ac3d1 100644 ---- a/src/node.cc -+++ b/src/node.cc -@@ -622,7 +622,7 @@ inline void PlatformInit() { - if (nr == SIGKILL || nr == SIGSTOP) - continue; - act.sa_handler = (nr == SIGPIPE || nr == SIGXFSZ) ? SIG_IGN : SIG_DFL; -- CHECK_EQ(0, sigaction(nr, &act, nullptr)); -+ //CHECK_EQ(0, sigaction(nr, &act, nullptr)); - } - #endif // !NODE_SHARED_MODE - -diff --git a/src/node_os.cc b/src/node_os.cc -index 2bbb56a..ff3c466 100644 ---- a/src/node_os.cc -+++ b/src/node_os.cc -@@ -34,7 +34,7 @@ - #include - #include - #include -- -+#include - namespace node { - namespace os { - -@@ -115,7 +115,17 @@ static void GetCPUInfo(const FunctionCallbackInfo& args) { - std::vector> result; - result.reserve(count * 7); - for (int i = 0; i < count; i++) { -+ /* - uv_cpu_info_t* ci = cpu_infos + i; -+ -+ std::cout << ci->speed << std::endl; -+ std::cout << ci->model << std::endl; -+ std::cout << ci->cpu_times.user << std::endl; -+ std::cout << ci->cpu_times.nice << std::endl; -+ std::cout << ci->cpu_times.sys << std::endl; -+ std::cout << ci->cpu_times.idle << std::endl; -+ std::cout << ci->cpu_times.irq << std::endl; -+ - result.emplace_back(OneByteString(isolate, ci->model)); - result.emplace_back(Number::New(isolate, ci->speed)); - result.emplace_back( -@@ -128,10 +138,11 @@ static void GetCPUInfo(const FunctionCallbackInfo& args) { - Number::New(isolate, static_cast(ci->cpu_times.idle))); - result.emplace_back( - Number::New(isolate, static_cast(ci->cpu_times.irq))); -+ */ - } - - uv_free_cpu_info(cpu_infos, count); -- args.GetReturnValue().Set(Array::New(isolate, result.data(), result.size())); -+ // args.GetReturnValue().Set(Array::New(isolate, result.data(), result.size())); - } - - -diff --git a/src/node_report.cc b/src/node_report.cc -index f1d8d19..bfd8f64 100644 ---- a/src/node_report.cc -+++ b/src/node_report.cc -@@ -720,16 +720,16 @@ static void PrintSystemInformation(JSONWriter* writer) { - {"core_file_size_blocks", RLIMIT_CORE}, - {"data_seg_size_kbytes", RLIMIT_DATA}, - {"file_size_blocks", RLIMIT_FSIZE}, --#if !(defined(_AIX) || defined(__sun)) -+#if !(defined(_AIX) || defined(__sun) || defined(__HAIKU__)) - {"max_locked_memory_bytes", RLIMIT_MEMLOCK}, - #endif --#ifndef __sun -+#if !(defined(__sun) || defined(__HAIKU__)) - {"max_memory_size_kbytes", RLIMIT_RSS}, - #endif - {"open_files", RLIMIT_NOFILE}, - {"stack_size_bytes", RLIMIT_STACK}, - {"cpu_time_seconds", RLIMIT_CPU}, --#ifndef __sun -+#if !(defined(__sun) || defined(__HAIKU__)) - {"max_user_processes", RLIMIT_NPROC}, - #endif - #ifndef __OpenBSD__ -diff --git a/tools/utils.py b/tools/utils.py -index 9d53bd5..236fabb 100644 ---- a/tools/utils.py -+++ b/tools/utils.py -@@ -59,6 +59,8 @@ def GuessOS(): - return 'win32' - elif id == 'FreeBSD': - return 'freebsd' -+ elif id == 'Haiku': -+ return 'haiku' - elif id == 'OpenBSD': - return 'openbsd' - elif id == 'SunOS': --- -2.30.2 - - -From 586c6ac1cc9dd7f5601616172061dffe0a2ee493 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Sat, 27 Mar 2021 14:01:44 +0100 -Subject: Haiku v8 patches - - -diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn -index 3e48fb1..5088c13 100644 ---- a/deps/v8/BUILD.gn -+++ b/deps/v8/BUILD.gn -@@ -378,7 +378,7 @@ if (v8_enable_snapshot_native_code_counters == "") { - } - if (v8_enable_pointer_compression == "") { - v8_enable_pointer_compression = -- v8_current_cpu == "arm64" || v8_current_cpu == "x64" -+ (v8_current_cpu == "arm64" || v8_current_cpu == "x64") && !is_haiku - } - if (v8_enable_pointer_compression_shared_cage == "") { - v8_enable_pointer_compression_shared_cage = v8_enable_pointer_compression -@@ -1185,7 +1185,7 @@ config("toolchain") { - } - } - -- if (is_clang) { -+ if (is_clang && !is_haiku) { - cflags += [ "-Wmissing-field-initializers" ] - - if (v8_current_cpu != "mips" && v8_current_cpu != "mipsel") { -@@ -4850,6 +4850,11 @@ v8_component("v8_libbase") { - "src/base/platform/platform-fuchsia.cc", - ] - deps += [ "//third_party/fuchsia-sdk/sdk/pkg/zx" ] -+ } else if (is_haiku) { -+ sources += [ -+ "src/base/debug/stack_trace_posix.cc", -+ "src/base/platform/platform-haiku.cc", -+ ] - } else if (is_mac || is_ios) { - sources += [ - "src/base/debug/stack_trace_posix.cc", -@@ -5609,6 +5614,13 @@ if (is_fuchsia && !build_with_chromium) { - - group("v8_fuzzers") { - testonly = true -+ -+ if(host_os == "haiku"){ -+ data_deps = [] -+ } -+ -+ if (host_os != "haiku") { -+ - data_deps = [ - ":v8_simple_inspector_fuzzer", - ":v8_simple_json_fuzzer", -@@ -5814,6 +5826,8 @@ v8_executable("v8_hello_world") { - ":v8_libplatform", - "//build/win:default_exe_manifest", - ] -+ } -+ - } - - v8_executable("v8_sample_process") { -diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h -index b010b65..304764d 100644 ---- a/deps/v8/include/v8config.h -+++ b/deps/v8/include/v8config.h -@@ -69,6 +69,7 @@ path. Add it with -I to the command line - // V8_OS_CYGWIN - Cygwin - // V8_OS_DRAGONFLYBSD - DragonFlyBSD - // V8_OS_FREEBSD - FreeBSD -+// V8_OS_HAIKU - Haiku - // V8_OS_FUCHSIA - Fuchsia - // V8_OS_LINUX - Linux - // V8_OS_MACOSX - Mac OS X -@@ -129,6 +130,11 @@ path. Add it with -I to the command line - # define V8_OS_POSIX 1 - # define V8_OS_STRING "freebsd" - -+#elif defined(__HAIKU__) -+# define V8_OS_HAIKU 1 -+# define V8_OS_POSIX 1 -+# define V8_OS_STRING "haiku" -+ - #elif defined(__Fuchsia__) - # define V8_OS_FUCHSIA 1 - # define V8_OS_POSIX 1 -diff --git a/deps/v8/src/base/debug/stack_trace_posix.cc b/deps/v8/src/base/debug/stack_trace_posix.cc -index 270f1ca..f3b680f 100644 ---- a/deps/v8/src/base/debug/stack_trace_posix.cc -+++ b/deps/v8/src/base/debug/stack_trace_posix.cc -@@ -25,14 +25,15 @@ - #include - #include - --#if V8_LIBC_GLIBC || V8_LIBC_BSD || V8_LIBC_UCLIBC || V8_OS_SOLARIS -+#if V8_LIBC_GLIBC || V8_LIBC_BSD || V8_LIBC_UCLIBC || V8_OS_SOLARIS || V8_OS_HAIKU - #define HAVE_EXECINFO_H 1 - #endif - --#if HAVE_EXECINFO_H -+#if defined(HAVE_EXECINFO_H) - #include - #include - #endif -+ - #if V8_OS_MACOSX - #include - #endif -diff --git a/deps/v8/src/base/export-template.h b/deps/v8/src/base/export-template.h -index 861cfe4..8c6d885 100644 ---- a/deps/v8/src/base/export-template.h -+++ b/deps/v8/src/base/export-template.h -@@ -83,6 +83,7 @@ - // definition sites instead. - #define EXPORT_TEMPLATE_DECLARE_MSVC_HACK(export, _) - #define EXPORT_TEMPLATE_DEFINE_MSVC_HACK(export, _) export -+#define EXPORT_TEMPLATE_TEST_MSVC_HACK_DEFAULT(...) true - - // EXPORT_TEMPLATE_STYLE is an internal helper macro that identifies which - // export style needs to be used for the provided FOO_EXPORT macro definition. -@@ -159,5 +160,5 @@ EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport)); - #undef EXPORT_TEMPLATE_TEST - #undef EXPORT_TEMPLATE_TEST_DEFAULT_DEFAULT - #undef EXPORT_TEMPLATE_TEST_MSVC_HACK_MSVC_HACK -- -+#undef EXPORT_TEMPLATE_TEST_MSVC_HACK_DEFAULT - #endif // V8_BASE_EXPORT_TEMPLATE_H_ -diff --git a/deps/v8/src/base/platform/platform-haiku.cc b/deps/v8/src/base/platform/platform-haiku.cc -new file mode 100644 -index 0000000..fa6656e ---- /dev/null -+++ b/deps/v8/src/base/platform/platform-haiku.cc -@@ -0,0 +1,59 @@ -+// Copyright 2012 the V8 project authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+// Platform-specific code for Haiku goes here. For the POSIX-compatible -+// parts, the implementation is in platform-posix.cc. -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include // open -+#include // mmap & munmap -+#include // open -+#include // sysconf -+#include -+#include -+#include -+#include // index -+ -+#include -+ -+#include -+ -+#undef MAP_TYPE -+ -+#include "src/base/macros.h" -+#include "src/base/platform/platform-posix-time.h" -+#include "src/base/platform/platform-posix.h" -+#include "src/base/platform/platform.h" -+ -+namespace v8 { -+namespace base { -+ -+TimezoneCache* OS::CreateTimezoneCache() { -+ return new PosixDefaultTimezoneCache(); -+} -+ -+std::vector OS::GetSharedLibraryAddresses() { -+ return std::vector(); -+} -+ -+void OS::SignalCodeMovingGC() {} -+ -+void OS::AdjustSchedulingParams() {} -+ -+// static -+Stack::StackSlot Stack::GetStackStart() { -+ thread_info threadInfo; -+ get_thread_info(find_thread(NULL), &threadInfo); -+ return threadInfo.stack_base; -+} -+ -+} // namespace base -+} // namespace v8 -diff --git a/deps/v8/src/base/platform/platform-posix.cc b/deps/v8/src/base/platform/platform-posix.cc -index 179a17c..87985a4 100644 ---- a/deps/v8/src/base/platform/platform-posix.cc -+++ b/deps/v8/src/base/platform/platform-posix.cc -@@ -61,7 +61,7 @@ - #include - #endif - --#if !defined(_AIX) && !defined(V8_OS_FUCHSIA) -+#if !defined(_AIX) && !defined(V8_OS_FUCHSIA) && !defined(__HAIKU__) - #include - #endif - -@@ -77,6 +77,14 @@ extern int madvise(caddr_t, size_t, int); - #endif - #endif - -+#if defined(__HAIKU__) -+extern "C" int posix_madvise(void*, size_t, int); -+#endif -+ -+#if defined(__HAIKU__) -+#define MADV_FREE POSIX_MADV_DONTNEED -+#endif -+ - #ifndef MADV_FREE - #define MADV_FREE MADV_DONTNEED - #endif -@@ -473,6 +481,8 @@ bool OS::DiscardSystemPages(void* address, size_t size) { - int ret = madvise(address, size, MADV_FREE_REUSABLE); - #elif defined(_AIX) || defined(V8_OS_SOLARIS) - int ret = madvise(reinterpret_cast(address), size, MADV_FREE); -+#elif defined(__HAIKU__) -+ int ret = posix_madvise(address, size, MADV_FREE); - #else - int ret = madvise(address, size, MADV_FREE); - #endif -@@ -484,6 +494,8 @@ bool OS::DiscardSystemPages(void* address, size_t size) { - // imply runtime support. - #if defined(_AIX) || defined(V8_OS_SOLARIS) - ret = madvise(reinterpret_cast(address), size, MADV_DONTNEED); -+#elif defined(__HAIKU__) -+ ret = posix_madvise(address, size, MADV_FREE); - #else - ret = madvise(address, size, MADV_DONTNEED); - #endif -@@ -1030,7 +1042,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void* value) { - // 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_MACOSX) && !defined(_AIX) && \ -- !defined(V8_OS_SOLARIS) -+ !defined(V8_OS_SOLARIS) && !defined(V8_OS_HAIKU) - - // static - Stack::StackSlot Stack::GetStackStart() { -diff --git a/deps/v8/src/libsampler/sampler.cc b/deps/v8/src/libsampler/sampler.cc -index 49c8406..c8e8ee7 100644 ---- a/deps/v8/src/libsampler/sampler.cc -+++ b/deps/v8/src/libsampler/sampler.cc -@@ -12,7 +12,7 @@ - #include - #include - --#if !V8_OS_QNX && !V8_OS_AIX -+#if !V8_OS_QNX && !V8_OS_AIX && !V8_OS_HAIKU - #include - #endif - -@@ -20,7 +20,7 @@ - #include - // OpenBSD doesn't have . ucontext_t lives in - // and is a typedef for struct sigcontext. There is no uc_mcontext. --#elif !V8_OS_OPENBSD -+#elif !V8_OS_OPENBSD && !V8_OS_HAIKU - #include - #endif - -@@ -491,6 +491,16 @@ void SignalHandler::FillRegisterState(void* context, RegisterState* state) { - state->sp = reinterpret_cast(mcontext.__gregs[_REG_SP]); - state->fp = reinterpret_cast(mcontext.__gregs[_REG_FP]); - #endif // V8_HOST_ARCH_* -+#elif V8_OS_HAIKU -+#if V8_HOST_ARCH_IA32 -+ state->pc = reinterpret_cast(mcontext.eip); -+ state->sp = reinterpret_cast(mcontext.esp); -+ state->fp = reinterpret_cast(mcontext.ebp); -+#elif V8_HOST_ARCH_X64 -+ state->pc = reinterpret_cast(mcontext.rip); -+ state->sp = reinterpret_cast(mcontext.rsp); -+ state->fp = reinterpret_cast(mcontext.rbp); -+#endif // V8_HOST_ARCH_* - #elif V8_OS_NETBSD - #if V8_HOST_ARCH_IA32 - state->pc = reinterpret_cast(mcontext.__gregs[_REG_EIP]); -diff --git a/deps/v8/tools/mb/mb.py b/deps/v8/tools/mb/mb.py -index 42ed60c..5217fca 100755 ---- a/deps/v8/tools/mb/mb.py -+++ b/deps/v8/tools/mb/mb.py -@@ -903,12 +903,15 @@ class MetaBuildWrapper(object): - subdir, exe = 'linux64', 'gn' - elif self.platform == 'darwin': - subdir, exe = 'mac', 'gn' -+ elif self.platform == 'haiku1': -+ subdir, exe = 'haiku','gn' -+ gn_path = "/bin/gn" - else: - subdir, exe = 'win', 'gn.exe' - - arch = platform.machine() - if (arch.startswith('s390') or arch.startswith('ppc') or -- self.platform.startswith('aix')): -+ self.platform.startswith('aix') or self.platform.startswith('haiku')): - # use gn in PATH - gn_path = 'gn' - else: --- -2.30.2 - - -From 0463d29b702b80935ffb03b77811318be7c7e60c Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Sat, 27 Mar 2021 18:23:32 +0100 -Subject: v8 gyp build for Haiku - - -diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi -index 272f358..ad803a6 100644 ---- a/tools/v8_gypfiles/features.gypi -+++ b/tools/v8_gypfiles/features.gypi -@@ -46,6 +46,11 @@ - }, { - 'is_fuchsia': 0, - }], -+ ['OS == "haiku"', { -+ 'is_haiku': 1, -+ }, { -+ 'is_haiku': 0, -+ }], - ['OS=="android"', { # GYP reverts OS to linux so use `-D OS=android` - 'is_android': 1, - }, { -diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp -index 0a39f77..97994fe 100644 ---- a/tools/v8_gypfiles/v8.gyp -+++ b/tools/v8_gypfiles/v8.gyp -@@ -1152,6 +1152,17 @@ - '<(V8_ROOT)/src/base/platform/platform-fuchsia.cc', - ] - }], -+ ['is_haiku', { -+ 'link_settings': { -+ 'libraries': [ -+ '-lexecinfo', -+ ] -+ }, -+ 'sources': [ -+ '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', -+ '<(V8_ROOT)/src/base/platform/platform-haiku.cc', -+ ] -+ }], - ['OS == "mac" or OS == "ios"', { - 'sources': [ - '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', --- -2.30.2 - - -From ebd237e4ac5522e4240135759f810322792ded2a Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Fri, 15 Oct 2021 22:06:57 +0200 -Subject: ares compat - -our gcc/binutils doesn't seem to handle "extern thread_local", so -switch to __thread. - -diff --git a/deps/v8/src/trap-handler/trap-handler.h b/deps/v8/src/trap-handler/trap-handler.h -index 0b3a6e0..78e664a 100644 ---- a/deps/v8/src/trap-handler/trap-handler.h -+++ b/deps/v8/src/trap-handler/trap-handler.h -@@ -118,7 +118,7 @@ inline bool IsTrapHandlerEnabled() { - return g_is_trap_handler_enabled; - } - --#if defined(V8_OS_AIX) -+#if defined(V8_OS_AIX) || defined(V8_OS_HAIKU) - // `thread_local` does not link on AIX: - // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100641 - extern __thread int g_thread_in_wasm_code; -diff --git a/src/cares_wrap.h b/src/cares_wrap.h -index 60f99e6..44e254b 100644 ---- a/src/cares_wrap.h -+++ b/src/cares_wrap.h -@@ -22,7 +22,7 @@ - # include - #endif // __POSIX__ - --# include -+# include - - namespace node { - namespace cares_wrap { --- -2.30.2 -