lang/node: Update to 24.15.0

This commit is contained in:
volker
2026-05-09 13:26:28 +00:00
parent adc2516048
commit fc053346bf
36 changed files with 327 additions and 742 deletions
+2 -2
View File
@@ -5,7 +5,7 @@ USE_WXNEEDED = Yes
COMMENT = JavaScript runtime built on Chrome's V8 JavaScript engine
NODE_VERSION = v22.22.2
NODE_VERSION = v24.15.0
DISTFILES = ${DISTNAME}-headers.tar.gz \
${DISTNAME}.tar.xz
DIST_TUPLE = github qbit node-pledge 1.1.3 \
@@ -17,7 +17,7 @@ EPOCH = 0
CATEGORIES = lang devel
HOMEPAGE = https://nodejs.org/
MAINTAINER = Volker Schlecht <openbsd-ports@schlecht.dev>
MAINTAINER = Volker Schlecht <volker@openbsd.org>
# MIT
PERMIT_PACKAGE = Yes
+4 -4
View File
@@ -1,6 +1,6 @@
SHA256 (node-v22.22.2-headers.tar.gz) = kOXvD98C+ISH+QSnmINrNb1EiWBG1QKHO8YlrCuu3tI=
SHA256 (node-v22.22.2.tar.xz) = tr7dOoys1d998BWlCIJksSx0one6YGhMuWQq6Ot0MTI=
SHA256 (node-v24.15.0-headers.tar.gz) = mpJQA5/vVy0LzBEKxeeAVfr1YEQhIR0tX1eOvFo05wM=
SHA256 (node-v24.15.0.tar.xz) = pPZT157RQKqtkh6MIqO1hcqFz9q4DUAw9jCeRmOoocg=
SHA256 (qbit-node-pledge-1.1.3.tar.gz) = fEaXvLg6hYEJ69K+mgQFizf8DiJY2/DtyFJB/pEanVU=
SIZE (node-v22.22.2-headers.tar.gz) = 9927000
SIZE (node-v22.22.2.tar.xz) = 51257208
SIZE (node-v24.15.0-headers.tar.gz) = 9958714
SIZE (node-v24.15.0.tar.xz) = 54197668
SIZE (qbit-node-pledge-1.1.3.tar.gz) = 3167
+1 -1
View File
@@ -10,7 +10,7 @@ Index: Makefile
$(PYTHON) tools/install.py $@ --dest-dir '$(DESTDIR)' --prefix '$(PREFIX)'
.PHONY: uninstall
@@ -451,6 +451,12 @@ test/addons/.buildstamp: $(ADDONS_PREREQS) \
@@ -450,6 +450,12 @@ test/addons/.buildstamp: $(ADDONS_PREREQS) \
# Just goes to show that recursive make really is harmful...
# TODO(bnoordhuis) Force rebuild after gyp update.
build-addons: | $(NODE_EXE) test/addons/.buildstamp ## Build addons for Node.js.
+4 -4
View File
@@ -19,7 +19,7 @@ Index: common.gypi
'conditions': [
['enable_lto=="true"', {
'cflags': ['<(lto)'],
@@ -521,8 +523,10 @@
@@ -524,8 +526,10 @@
'standalone_static_library': 1,
}],
['OS=="openbsd"', {
@@ -32,9 +32,9 @@ Index: common.gypi
}],
['_toolset=="host"', {
'conditions': [
@@ -538,7 +542,7 @@
'cflags': [ '-m32' ],
'ldflags': [ '-m32' ],
@@ -537,7 +541,7 @@
'cflags': [ '-m64' ],
'ldflags': [ '-m64' ],
}],
- [ 'host_arch=="ppc64" and OS not in "aix os400"', {
+ [ 'host_arch=="ppc64" and OS not in "aix os400 openbsd"', {
+1 -2
View File
@@ -1,7 +1,7 @@
Index: configure
--- configure.orig
+++ configure
@@ -4,13 +4,6 @@
@@ -4,12 +4,6 @@
# Note that the mix of single and double quotes is intentional,
# as is the fact that the ] goes on a new line.
_=[ 'exec' '/bin/sh' '-c' '''
@@ -11,7 +11,6 @@ Index: configure
-command -v python3.11 >/dev/null && exec python3.11 "$0" "$@"
-command -v python3.10 >/dev/null && exec python3.10 "$0" "$@"
-command -v python3.9 >/dev/null && exec python3.9 "$0" "$@"
-command -v python3.8 >/dev/null && exec python3.8 "$0" "$@"
command -v python3 >/dev/null && exec python3 "$0" "$@"
exec python "$0" "$@"
''' "$0" "$@"
+1 -1
View File
@@ -1,7 +1,7 @@
Index: configure.py
--- configure.py.orig
+++ configure.py
@@ -1762,7 +1762,11 @@ def configure_v8(o, configs):
@@ -1874,7 +1874,11 @@ def configure_v8(o, configs):
if sys.platform != 'darwin':
if o['variables']['v8_enable_webassembly'] and o['variables']['target_arch'] == 'x64':
o['variables']['v8_enable_wasm_simd256_revec'] = 1
+19 -19
View File
@@ -1,7 +1,7 @@
Index: deps/ada/ada.cpp
--- deps/ada/ada.cpp.orig
+++ deps/ada/ada.cpp
@@ -10486,7 +10486,7 @@ ada_unused std::string get_state(ada::state s) {
@@ -11266,7 +11266,7 @@ ada_unused std::string get_state(ada::state s) {
return "Special Authority Slashes";
case ada::state::SPECIAL_RELATIVE_OR_AUTHORITY:
return "Special Relative or Authority";
@@ -10,57 +10,57 @@ Index: deps/ada/ada.cpp
return "Query";
case ada::state::PATH:
return "Path";
@@ -12575,7 +12575,7 @@ result_type parse_url_impl(std::string_view user_input
@@ -13649,7 +13649,7 @@ result_type parse_url_impl(std::string_view user_input
// state to query state.
if ((input_position != input_size) &&
(url_data[input_position] == '?')) {
- state = ada::state::QUERY;
+ state = ada::state::ADAQUERY;
- state = state::QUERY;
+ state = state::ADAQUERY;
}
// Otherwise, if c is not the EOF code point:
else if (input_position != input_size) {
@@ -12670,7 +12670,7 @@ result_type parse_url_impl(std::string_view user_input
@@ -13741,7 +13741,7 @@ result_type parse_url_impl(std::string_view user_input
break;
}
- case ada::state::QUERY: {
+ case ada::state::ADAQUERY: {
- case state::QUERY: {
+ case state::ADAQUERY: {
ada_log("QUERY ", helpers::substring(url_data, input_position));
if constexpr (store_values) {
// Let queryPercentEncodeSet be the special-query percent-encode set
@@ -12755,7 +12755,7 @@ result_type parse_url_impl(std::string_view user_input
@@ -13824,7 +13824,7 @@ result_type parse_url_impl(std::string_view user_input
size_t location = view.find('?');
if (location != std::string_view::npos) {
view.remove_suffix(view.size() - location);
- state = ada::state::QUERY;
+ state = ada::state::ADAQUERY;
- state = state::QUERY;
+ state = state::ADAQUERY;
input_position += location + 1;
} else {
input_position = input_size + 1;
@@ -12810,7 +12810,7 @@ result_type parse_url_impl(std::string_view user_input
@@ -13885,7 +13885,7 @@ result_type parse_url_impl(std::string_view user_input
// set url's query to the empty string and state to query state.
else if ((input_position != input_size) &&
(url_data[input_position] == '?')) {
- state = ada::state::QUERY;
+ state = ada::state::ADAQUERY;
- state = state::QUERY;
+ state = state::ADAQUERY;
}
// Otherwise, if c is not the EOF code point:
else if (input_position != input_size) {
@@ -12834,7 +12834,7 @@ result_type parse_url_impl(std::string_view user_input
@@ -13909,7 +13909,7 @@ result_type parse_url_impl(std::string_view user_input
// Furthermore, we can immediately locate the '?'.
size_t locofquestionmark = view.find('?');
if (locofquestionmark != std::string_view::npos) {
- state = ada::state::QUERY;
+ state = ada::state::ADAQUERY;
- state = state::QUERY;
+ state = state::ADAQUERY;
view.remove_suffix(view.size() - locofquestionmark);
input_position += locofquestionmark + 1;
} else {
@@ -12996,7 +12996,7 @@ result_type parse_url_impl(std::string_view user_input
@@ -14071,7 +14071,7 @@ result_type parse_url_impl(std::string_view user_input
// If c is U+003F (?), then set url's query to the empty string and
// state to query state.
if (input_position != input_size && url_data[input_position] == '?') {
- state = ada::state::QUERY;
+ state = ada::state::ADAQUERY;
- state = state::QUERY;
+ state = state::ADAQUERY;
}
// Otherwise, if c is not the EOF code point:
else if (input_position != input_size) {
+1 -1
View File
@@ -1,7 +1,7 @@
Index: deps/ada/ada.h
--- deps/ada/ada.h.orig
+++ deps/ada/ada.h
@@ -1304,7 +1304,7 @@ enum class state {
@@ -6723,7 +6723,7 @@ enum class state {
/**
* @see https://url.spec.whatwg.org/#query-state
*/
@@ -1,7 +1,7 @@
Index: deps/v8/include/v8-internal.h
--- deps/v8/include/v8-internal.h.orig
+++ deps/v8/include/v8-internal.h
@@ -175,7 +175,7 @@ using SandboxedPointer_t = Address;
@@ -232,7 +232,7 @@ using SandboxedPointer_t = Address;
#ifdef V8_ENABLE_SANDBOX
// Size of the sandbox, excluding the guard regions surrounding it.
@@ -1,7 +1,7 @@
Index: deps/v8/include/v8config.h
--- deps/v8/include/v8config.h.orig
+++ deps/v8/include/v8config.h
@@ -185,6 +185,8 @@ path. Add it with -I<path> to the command line
@@ -201,6 +201,8 @@ path. Add it with -I<path> to the command line
&& !defined(V8_TARGET_OS_FUCHSIA) \
&& !defined(V8_TARGET_OS_IOS) \
&& !defined(V8_TARGET_OS_LINUX) \
@@ -10,7 +10,7 @@ Index: deps/v8/include/v8config.h
&& !defined(V8_TARGET_OS_MACOS) \
&& !defined(V8_TARGET_OS_WIN) \
&& !defined(V8_TARGET_OS_CHROMEOS)
@@ -197,6 +199,8 @@ path. Add it with -I<path> to the command line
@@ -213,6 +215,8 @@ path. Add it with -I<path> to the command line
|| defined(V8_TARGET_OS_FUCHSIA) \
|| defined(V8_TARGET_OS_IOS) \
|| defined(V8_TARGET_OS_LINUX) \
@@ -19,7 +19,7 @@ Index: deps/v8/include/v8config.h
|| defined(V8_TARGET_OS_MACOS) \
|| defined(V8_TARGET_OS_WIN) \
|| defined(V8_TARGET_OS_CHROMEOS)
@@ -220,6 +224,16 @@ path. Add it with -I<path> to the command line
@@ -236,6 +240,16 @@ path. Add it with -I<path> to the command line
# define V8_TARGET_OS_LINUX
#endif
@@ -36,7 +36,7 @@ Index: deps/v8/include/v8config.h
#ifdef V8_OS_MACOS
# define V8_TARGET_OS_MACOS
#endif
@@ -366,6 +380,7 @@ path. Add it with -I<path> to the command line
@@ -383,6 +397,7 @@ path. Add it with -I<path> to the command line
#if (defined(_M_X64) || defined(__x86_64__) /* x64 (everywhere) */ \
|| ((defined(__AARCH64EL__) || defined(_M_ARM64)) /* arm64, but ... */ \
&& !defined(_WIN32))) /* not on windows */ \
@@ -1,7 +1,7 @@
Index: deps/v8/src/api/api.cc
--- deps/v8/src/api/api.cc.orig
+++ deps/v8/src/api/api.cc
@@ -144,7 +144,7 @@
@@ -153,7 +153,7 @@
#include "src/wasm/wasm-serialization.h"
#endif // V8_ENABLE_WEBASSEMBLY
@@ -10,7 +10,7 @@ Index: deps/v8/src/api/api.cc
#include <signal.h>
#include <unistd.h>
@@ -6396,7 +6396,7 @@ bool v8::V8::Initialize(const int build_config) {
@@ -6483,7 +6483,7 @@ bool v8::V8::Initialize(const int build_config) {
return true;
}
@@ -4,7 +4,7 @@ OpenBSD/riscv64 always uses floating-point support.
Index: deps/v8/src/base/cpu.cc
--- deps/v8/src/base/cpu.cc.orig
+++ deps/v8/src/base/cpu.cc
@@ -933,7 +933,10 @@ CPU::CPU()
@@ -1005,7 +1005,10 @@ CPU::CPU()
if (HasListItem(mmu, "sv57")) {
riscv_mmu_ = RV_MMU_MODE::kRiscvSV57;
}
@@ -25,5 +25,5 @@ Index: deps/v8/src/base/platform/platform-openbsd.cc
+ return reinterpret_cast<uint8_t*>(base) + ss.ss_size;
+}
std::vector<OS::MemoryRange> OS::GetFreeMemoryRangesWithin(
std::optional<OS::MemoryRange> OS::GetFirstFreeMemoryRangeWithin(
OS::Address boundary_start, OS::Address boundary_end, size_t minimum_size,
@@ -1,16 +1,7 @@
Index: deps/v8/src/base/platform/platform-posix.cc
--- deps/v8/src/base/platform/platform-posix.cc.orig
+++ deps/v8/src/base/platform/platform-posix.cc
@@ -54,7 +54,7 @@
#if V8_OS_DARWIN
#include <mach/mach.h>
#include <malloc/malloc.h>
-#else
+#elif !V8_OS_BSD
#include <malloc.h>
#endif
@@ -72,7 +72,7 @@
@@ -76,7 +76,7 @@
#include <sys/syscall.h>
#endif
@@ -19,7 +10,7 @@ Index: deps/v8/src/base/platform/platform-posix.cc
#define MAP_ANONYMOUS MAP_ANON
#endif
@@ -315,8 +315,15 @@ void OS::SetRandomMmapSeed(int64_t seed) {
@@ -327,8 +327,15 @@ void OS::SetRandomMmapSeed(int64_t seed) {
}
}
@@ -35,7 +26,7 @@ Index: deps/v8/src/base/platform/platform-posix.cc
uintptr_t raw_addr;
{
MutexGuard guard(rng_mutex.Pointer());
@@ -411,6 +418,7 @@ void* OS::GetRandomMmapAddr() {
@@ -425,6 +432,7 @@ void* OS::GetRandomMmapAddr() {
#endif
return reinterpret_cast<void*>(raw_addr);
}
@@ -43,8 +34,8 @@ Index: deps/v8/src/base/platform/platform-posix.cc
// TODO(bbudge) Move Cygwin and Fuchsia stuff into platform-specific files.
#if !V8_OS_CYGWIN && !V8_OS_FUCHSIA
@@ -684,7 +692,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor
@@ -713,7 +721,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor
#if !V8_OS_ZOS
// static
bool OS::HasLazyCommits() {
-#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN
@@ -52,7 +43,7 @@ Index: deps/v8/src/base/platform/platform-posix.cc
return true;
#else
// TODO(bbudge) Return true for all POSIX platforms.
@@ -1316,7 +1324,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void*
@@ -1358,7 +1366,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void*
// 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_DARWIN) && !defined(_AIX) && \
@@ -1,17 +0,0 @@
Index: deps/v8/src/base/platform/memory.h
--- deps/v8/src/base/platform/memory.h.orig
+++ deps/v8/src/base/platform/memory.h
@@ -19,11 +19,11 @@
#if V8_OS_DARWIN
#include <malloc/malloc.h>
-#else // !V8_OS_DARWIN
+#elif !V8_OS_BSD
#include <malloc.h>
#endif // !V8_OS_DARWIN
-#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
+#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_BSD) || V8_OS_WIN
#define V8_HAS_MALLOC_USABLE_SIZE 1
#endif // (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
@@ -1,6 +1,7 @@
--- deps/v8/src/base/sys-info.cc.orig Sat Jan 1 17:10:10 2022
+++ deps/v8/src/base/sys-info.cc Sat Jan 1 17:10:10 2022
@@ -38,7 +38,7 @@ namespace base {
Index: deps/v8/src/base/sys-info.cc
--- deps/v8/src/base/sys-info.cc.orig
+++ deps/v8/src/base/sys-info.cc
@@ -36,7 +36,7 @@ namespace base {
// static
int SysInfo::NumberOfProcessors() {
#if V8_OS_OPENBSD
@@ -11,8 +11,8 @@ Fix build errors due to type mismatch between intptr_t (long) and int64_t
Index: deps/v8/src/codegen/riscv/assembler-riscv.cc
--- deps/v8/src/codegen/riscv/assembler-riscv.cc.orig
+++ deps/v8/src/codegen/riscv/assembler-riscv.cc
@@ -366,7 +366,7 @@ int Assembler::target_at(int pos, bool is_internal) {
pc = target_address_at(pc);
@@ -421,7 +421,7 @@ int Assembler::target_at(int pos, bool is_internal) {
pc = target_constant_address_at(pc);
uintptr_t instr_address =
reinterpret_cast<uintptr_t>(buffer_start_ + pos);
- uintptr_t imm = reinterpret_cast<uintptr_t>(pc);
@@ -20,43 +20,16 @@ Index: deps/v8/src/codegen/riscv/assembler-riscv.cc
if (imm == kEndOfJumpChain) {
return kEndOfChain;
} else {
@@ -917,7 +917,7 @@ inline int64_t signExtend(uint64_t V, int N) {
@@ -988,7 +988,7 @@ inline int64_t signExtend(uint64_t V, int N) {
}
#if V8_TARGET_ARCH_RISCV64
-void Assembler::RV_li(Register rd, int64_t imm) {
+void Assembler::RV_li(Register rd, intptr_t imm) {
UseScratchRegisterScope temps(this);
if (RecursiveLiCount(imm) > GeneralLiCount(imm, temps.hasAvailable())) {
if (RecursiveLiCount(imm) > GeneralLiCount(imm, temps.CanAcquire())) {
GeneralLi(rd, imm);
@@ -1086,7 +1086,7 @@ void Assembler::GeneralLi(Register rd, int64_t imm) {
}
}
-void Assembler::li_ptr(Register rd, int64_t imm) {
+void Assembler::li_ptr(Register rd, intptr_t imm) {
// Initialize rd with an address
// Pointers are 48 bits
// 6 fixed instructions are generated
@@ -1104,7 +1104,7 @@ void Assembler::li_ptr(Register rd, int64_t imm) {
ori(rd, rd, a6); // 6 bits are put in. 48 bis in rd
}
-void Assembler::li_constant(Register rd, int64_t imm) {
+void Assembler::li_constant(Register rd, intptr_t imm) {
DEBUG_PRINTF("\tli_constant(%d, %lx <%ld>)\n", ToNumber(rd), imm, imm);
lui(rd, (imm + (1LL << 47) + (1LL << 35) + (1LL << 23) + (1LL << 11)) >>
48); // Bits 63:48
@@ -1549,7 +1549,7 @@ Address Assembler::target_address_at(Address pc) {
//
// Patching the address must replace all instructions, and flush the i-cache.
// Note that this assumes the use of SV48, the 48-bit virtual memory system.
-void Assembler::set_target_value_at(Address pc, uint64_t target,
+void Assembler::set_target_value_at(Address pc, uintptr_t target,
ICacheFlushMode icache_flush_mode) {
DEBUG_PRINTF("set_target_value_at: pc: %lx\ttarget: %lx\n", pc, target);
uint32_t* p = reinterpret_cast<uint32_t*>(pc);
@@ -1825,7 +1825,7 @@ const size_t ConstantPool::kApproxMaxEntryCount = 512;
@@ -1978,7 +1978,7 @@ const size_t ConstantPool::kApproxMaxEntryCount = 512;
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
@@ -65,7 +38,7 @@ Index: deps/v8/src/codegen/riscv/assembler-riscv.cc
if (val > 0 && RecursiveLiImplCount(val) > 2) {
unsigned LeadingZeros = base::bits::CountLeadingZeros((uint64_t)val);
uint64_t ShiftedVal = (uint64_t)val << LeadingZeros;
@@ -1839,7 +1839,7 @@ void Assembler::RecursiveLi(Register rd, int64_t val)
@@ -1992,7 +1992,7 @@ void Assembler::RecursiveLi(Register rd, int64_t val)
RecursiveLiImpl(rd, val);
}
@@ -74,7 +47,7 @@ Index: deps/v8/src/codegen/riscv/assembler-riscv.cc
if (val > 0 && RecursiveLiImplCount(val) > 2) {
unsigned LeadingZeros = base::bits::CountLeadingZeros((uint64_t)val);
uint64_t ShiftedVal = (uint64_t)val << LeadingZeros;
@@ -1854,7 +1854,7 @@ int Assembler::RecursiveLiCount(int64_t val) {
@@ -2007,7 +2007,7 @@ int Assembler::RecursiveLiCount(int64_t val) {
return RecursiveLiImplCount(val);
}
@@ -83,7 +56,7 @@ Index: deps/v8/src/codegen/riscv/assembler-riscv.cc
if (is_int32(Val)) {
// Depending on the active bits in the immediate Value v, the following
// instruction sequences are emitted:
@@ -1931,7 +1931,7 @@ void Assembler::RecursiveLiImpl(Register rd, int64_t V
@@ -2084,7 +2084,7 @@ void Assembler::RecursiveLiImpl(Register rd, int64_t V
}
}
@@ -92,7 +65,7 @@ Index: deps/v8/src/codegen/riscv/assembler-riscv.cc
int count = 0;
if (is_int32(Val)) {
// Depending on the active bits in the immediate Value v, the following
@@ -2012,7 +2012,7 @@ int Assembler::RecursiveLiImplCount(int64_t Val) {
@@ -2165,7 +2165,7 @@ int Assembler::RecursiveLiImplCount(int64_t Val) {
return count;
}
@@ -1,12 +0,0 @@
Index: deps/v8/src/codegen/riscv/macro-assembler-riscv.cc
--- deps/v8/src/codegen/riscv/macro-assembler-riscv.cc.orig
+++ deps/v8/src/codegen/riscv/macro-assembler-riscv.cc
@@ -2442,7 +2442,7 @@ void MacroAssembler::li(Register rd, Operand j, LiFlag
int reverse_count = RV_li_count(~j.immediate(), temps.hasAvailable());
if (v8_flags.riscv_constant_pool && count >= 4 && reverse_count >= 4) {
// Ld/Lw a Address from a constant pool.
- RecordEntry((uintptr_t)j.immediate(), j.rmode());
+ RecordEntry((uint64_t)j.immediate(), j.rmode());
auipc(rd, 0);
// Record a value into constant pool.
LoadWord(rd, MemOperand(rd, 0));
@@ -1,7 +1,7 @@
Index: deps/v8/src/execution/isolate.cc
--- deps/v8/src/execution/isolate.cc.orig
+++ deps/v8/src/execution/isolate.cc
@@ -153,6 +153,10 @@
@@ -173,6 +173,10 @@
#include "src/execution/simulator-base.h"
#endif
@@ -12,7 +12,7 @@ Index: deps/v8/src/execution/isolate.cc
extern "C" const uint8_t v8_Default_embedded_blob_code_[];
extern "C" uint32_t v8_Default_embedded_blob_code_size_;
extern "C" const uint8_t v8_Default_embedded_blob_data_[];
@@ -4232,6 +4236,13 @@ void Isolate::InitializeDefaultEmbeddedBlob() {
@@ -5125,6 +5129,13 @@ void Isolate::InitializeDefaultEmbeddedBlob() {
uint32_t code_size = DefaultEmbeddedBlobCodeSize();
const uint8_t* data = DefaultEmbeddedBlobData();
uint32_t data_size = DefaultEmbeddedBlobDataSize();
@@ -1,7 +1,7 @@
Index: deps/v8/src/flags/flags.cc
--- deps/v8/src/flags/flags.cc.orig
+++ deps/v8/src/flags/flags.cc
@@ -15,6 +15,10 @@
@@ -16,6 +16,10 @@
#include <set>
#include <sstream>
@@ -9,22 +9,10 @@ Index: deps/v8/src/flags/flags.cc
+#include <sys/mman.h>
+#endif
+
#include "src/base/functional.h"
#include "src/base/hashing.h"
#include "src/base/lazy-instance.h"
#include "src/base/platform/platform.h"
@@ -34,7 +38,11 @@
namespace v8::internal {
// Define {v8_flags}, declared in flags.h.
+#if V8_OS_OPENBSD
+FlagValues v8_flags __attribute__((section(".openbsd.mutable")));
+#else
FlagValues v8_flags;
+#endif
// {v8_flags} needs to be aligned to a memory page, and the size needs to be a
// multiple of a page size. This is required for memory-protection of the memory
@@ -789,6 +797,10 @@ void FlagList::FreezeFlags() {
@@ -832,6 +836,10 @@ void FlagList::FreezeFlags() {
// Note that for string flags we only protect the pointer itself, but not the
// string storage. TODO(12887): Fix this.
base::OS::SetDataReadOnly(&v8_flags, sizeof(v8_flags));
@@ -1,12 +1,12 @@
Index: deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc
--- deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc.orig
+++ deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc
@@ -143,6 +143,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(const char* s) {
@@ -146,6 +146,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(const char* s) {
return EmbeddedTargetOs::kWin;
} else if (string == "starboard") {
return EmbeddedTargetOs::kStarboard;
+ } else if (string == "openbsd") {
+ return EmbeddedTargetOs::kOpenBSD;
} else if (string == "zos") {
return EmbeddedTargetOs::kZOS;
} else {
return EmbeddedTargetOs::kGeneric;
}
@@ -1,11 +1,11 @@
Index: deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.h
--- deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.h.orig
+++ deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.h
@@ -31,6 +31,7 @@ enum class EmbeddedTargetOs {
@@ -35,6 +35,7 @@ enum class EmbeddedTargetOs {
kMac,
kWin,
kStarboard,
+ kOpenBSD,
kZOS,
kGeneric, // Everything not covered above falls in here.
};
@@ -1,9 +1,9 @@
Index: deps/v8/src/trap-handler/trap-handler.h
--- deps/v8/src/trap-handler/trap-handler.h.orig
+++ deps/v8/src/trap-handler/trap-handler.h
@@ -17,10 +17,10 @@ namespace v8 {
namespace internal {
namespace trap_handler {
@@ -15,10 +15,10 @@
namespace v8::internal::trap_handler {
-// X64 on Linux, Windows, MacOS, FreeBSD.
+// X64 on Linux, Windows, MacOS, FreeBSD, OpenBSD
@@ -12,5 +12,5 @@ Index: deps/v8/src/trap-handler/trap-handler.h
- V8_OS_FREEBSD)
+ V8_OS_FREEBSD || V8_OS_OPENBSD)
#define V8_TRAP_HANDLER_SUPPORTED true
// Arm64 (non-simulator) on Mac and Linux.
// Arm64 (non-simulator) on Linux, Windows, MacOS.
#elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \
@@ -1,7 +1,7 @@
Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
--- deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h.orig
+++ deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
@@ -510,7 +510,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst
@@ -579,7 +579,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst
}
void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr,
@@ -10,7 +10,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LoadType type, uint32_t* protected_load_pc,
bool /* is_load_mem */, bool /* i64_offset */,
bool needs_shift) {
@@ -587,7 +587,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis
@@ -659,7 +659,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis
}
void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
@@ -19,7 +19,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
StoreType type, LiftoffRegList pinned,
uint32_t* protected_store_pc,
bool /* is_store_mem */, bool /* i64_offset */) {
@@ -663,7 +663,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist
@@ -738,7 +738,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist
}
void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr,
@@ -28,7 +28,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LoadType type, LiftoffRegList /* pinned */,
bool /* i64_offset */) {
if (type.value() != LoadType::kI64Load) {
@@ -681,7 +681,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst,
@@ -756,7 +756,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst,
}
void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg,
@@ -37,7 +37,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
StoreType type, LiftoffRegList pinned,
bool /* i64_offset */) {
DCHECK_LE(offset_imm, std::numeric_limits<int32_t>::max());
@@ -1030,7 +1030,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino
@@ -1105,7 +1105,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino
} // namespace liftoff
void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg,
@@ -46,7 +46,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
@@ -1044,7 +1044,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re
@@ -1119,7 +1119,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re
}
void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg,
@@ -55,7 +55,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
@@ -1057,7 +1057,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re
@@ -1132,7 +1132,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re
}
void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg,
@@ -64,7 +64,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
@@ -1071,7 +1071,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re
@@ -1146,7 +1146,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re
}
void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg,
@@ -73,7 +73,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
@@ -1085,7 +1085,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg
@@ -1160,7 +1160,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg
}
void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg,
@@ -82,7 +82,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
if (type.value() == StoreType::kI64Store) {
@@ -1099,7 +1099,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re
@@ -1174,7 +1174,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re
}
void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg,
@@ -91,7 +91,7 @@ Index: deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
LiftoffRegister value,
LiftoffRegister result, StoreType type,
bool /* i64_offset */) {
@@ -1114,7 +1114,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add
@@ -1189,7 +1189,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add
}
void LiftoffAssembler::AtomicCompareExchange(
@@ -1,7 +1,7 @@
Index: deps/v8/third_party/abseil-cpp/absl/base/config.h
--- deps/v8/third_party/abseil-cpp/absl/base/config.h.orig
+++ deps/v8/third_party/abseil-cpp/absl/base/config.h
@@ -448,7 +448,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
@@ -409,7 +409,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
#ifdef ABSL_HAVE_SCHED_YIELD
#error ABSL_HAVE_SCHED_YIELD cannot be directly set
#elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \
@@ -10,7 +10,7 @@ Index: deps/v8/third_party/abseil-cpp/absl/base/config.h
#define ABSL_HAVE_SCHED_YIELD 1
#endif
@@ -463,7 +463,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
@@ -424,7 +424,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] !=
// platforms.
#ifdef ABSL_HAVE_SEMAPHORE_H
#error ABSL_HAVE_SEMAPHORE_H cannot be directly set
@@ -10,7 +10,7 @@ Index: deps/v8/third_party/abseil-cpp/absl/base/internal/sysinfo.cc
#include <sys/sysctl.h>
#endif
@@ -194,6 +194,7 @@ static double GetNominalCPUFrequency() {
@@ -198,6 +198,7 @@ static double GetNominalCPUFrequency() {
#else
@@ -18,7 +18,7 @@ Index: deps/v8/third_party/abseil-cpp/absl/base/internal/sysinfo.cc
// Helper function for reading a long from a file. Returns true if successful
// and the memory location pointed to by value is set to the value read.
static bool ReadLongFromFile(const char *file, long *value) {
@@ -226,6 +227,7 @@ static bool ReadLongFromFile(const char *file, long *v
@@ -230,6 +231,7 @@ static bool ReadLongFromFile(const char *file, long *v
}
return ret;
}
@@ -26,7 +26,7 @@ Index: deps/v8/third_party/abseil-cpp/absl/base/internal/sysinfo.cc
#if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
@@ -325,9 +327,11 @@ static double GetNominalCPUFrequency() {
@@ -329,9 +331,11 @@ static double GetNominalCPUFrequency() {
// a new mode (turbo mode). Essentially, those frequencies cannot
// always be relied upon. The same reasons apply to /proc/cpuinfo as
// well.
@@ -38,7 +38,7 @@ Index: deps/v8/third_party/abseil-cpp/absl/base/internal/sysinfo.cc
#if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
// On these platforms, the TSC frequency is the nominal CPU
@@ -346,10 +350,12 @@ static double GetNominalCPUFrequency() {
@@ -350,10 +354,12 @@ static double GetNominalCPUFrequency() {
// If CPU scaling is in effect, we want to use the *maximum*
// frequency, not whatever CPU speed some random processor happens
// to be using now.
@@ -7,8 +7,8 @@ Index: deps/v8/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_conf
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
+ /* defined(__powerpc__) || defined(__ppc__) || */ defined(__riscv) || \
defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
- defined(__powerpc__) || defined(__ppc__) || defined(_M_IX86) || \
+ /* defined(__powerpc__) || defined(__ppc__) || */ defined(_M_IX86) || \
(defined(_M_X64) && !defined(_M_ARM64EC))
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
@@ -9,7 +9,7 @@ Index: include/node/common.gypi
'conditions': [
['enable_lto=="true"', {
'cflags': ['<(lto)'],
@@ -521,7 +520,6 @@
@@ -524,7 +523,6 @@
'standalone_static_library': 1,
}],
['OS=="openbsd"', {
@@ -17,18 +17,18 @@ Index: include/node/common.gypi
'ldflags': [ '-Wl,-z,wxneeded' ],
}],
['_toolset=="host"', {
@@ -538,7 +536,7 @@
'cflags': [ '-m32' ],
'ldflags': [ '-m32' ],
@@ -537,7 +535,7 @@
'cflags': [ '-m64' ],
'ldflags': [ '-m64' ],
}],
- [ 'host_arch=="ppc64" and OS not in "aix os400"', {
+ [ 'host_arch=="ppc64" and OS not in "aix os400 openbsd"', {
'conditions': [
[ 'clang==0', {
'cflags': [ '-mminimal-toc' ],
@@ -567,7 +565,7 @@
'cflags': [ '-m32' ],
'ldflags': [ '-m32' ],
@@ -562,7 +560,7 @@
'cflags': [ '-m64' ],
'ldflags': [ '-m64' ],
}],
- [ 'target_arch=="ppc64" and OS not in "aix os400"', {
+ [ 'target_arch=="ppc64" and OS not in "aix os400 openbsd"', {
@@ -1,7 +1,7 @@
Index: lib/internal/modules/cjs/loader.js
--- lib/internal/modules/cjs/loader.js.orig
+++ lib/internal/modules/cjs/loader.js
@@ -1951,7 +1951,10 @@ Module._initPaths = function() {
@@ -2077,7 +2077,10 @@ Module._initPaths = function() {
path.resolve(process.execPath, '..') :
path.resolve(process.execPath, '..', '..');
+1 -1
View File
@@ -13,7 +13,7 @@ for "any address" but that's not really a straightforward change).
Index: lib/net.js
--- lib/net.js.orig
+++ lib/net.js
@@ -1897,22 +1897,12 @@ function setupListenHandle(address, port, addressType,
@@ -1965,22 +1965,12 @@ function setupListenHandle(address, port, addressType,
let rval = null;
+1 -1
View File
@@ -1,7 +1,7 @@
Index: src/env.cc
--- src/env.cc.orig
+++ src/env.cc
@@ -795,7 +795,7 @@ std::string Environment::GetExecPath(const std::vector
@@ -775,7 +775,7 @@ std::string Environment::GetExecPath(const std::vector
uv_fs_req_cleanup(&req);
#endif
+1 -1
View File
@@ -1,7 +1,7 @@
Index: tools/test.py
--- tools/test.py.orig
+++ tools/test.py
@@ -965,9 +965,9 @@ class Context(object):
@@ -975,9 +975,9 @@ class Context(object):
if self.vm is not None:
return self.vm
if arch == 'none':
@@ -1,7 +1,7 @@
Index: tools/v8_gypfiles/features.gypi
--- tools/v8_gypfiles/features.gypi.orig
+++ tools/v8_gypfiles/features.gypi
@@ -339,7 +339,10 @@
@@ -335,7 +335,10 @@
'v8_advanced_bigint_algorithms%': 1,
# Enable 256-bit long vector re-vectorization pass in WASM compilation pipeline.
@@ -13,7 +13,7 @@ Index: tools/v8_gypfiles/features.gypi
},
'target_defaults': {
@@ -557,6 +560,9 @@
@@ -553,6 +556,9 @@
}],
['v8_enable_wasm_simd256_revec==1', {
'defines': ['V8_ENABLE_WASM_SIMD256_REVEC',],
@@ -1,7 +1,7 @@
Index: tools/v8_gypfiles/toolchain.gypi
--- tools/v8_gypfiles/toolchain.gypi.orig
+++ tools/v8_gypfiles/toolchain.gypi
@@ -692,7 +692,7 @@
@@ -580,7 +580,7 @@
'defines': [ '__C99FEATURES__=1' ], # isinf() etc.
}],
['OS=="freebsd" or OS=="openbsd"', {
@@ -10,7 +10,7 @@ Index: tools/v8_gypfiles/toolchain.gypi
}],
['OS=="netbsd"', {
'cflags': [ '-I/usr/pkg/include' ],
@@ -877,11 +877,9 @@
@@ -765,11 +765,9 @@
# Don't use -O3 with sanitizers.
['asan==0 and msan==0 and lsan==0 \
and tsan==0 and ubsan==0 and ubsan_vptr==0', {
@@ -7,7 +7,7 @@ from "0.0" if llvm (clang) is detected.
Index: tools/v8_gypfiles/v8.gyp
--- tools/v8_gypfiles/v8.gyp.orig
+++ tools/v8_gypfiles/v8.gyp
@@ -298,6 +298,9 @@
@@ -315,6 +315,9 @@
'<(icu_gyp_path):icuuc',
],
}],
@@ -17,7 +17,7 @@ Index: tools/v8_gypfiles/v8.gyp
],
}, # v8_initializers_slow
{
@@ -706,7 +709,7 @@
@@ -733,7 +736,7 @@
}],
['v8_enable_webassembly==1', {
'conditions': [
@@ -26,7 +26,7 @@ Index: tools/v8_gypfiles/v8.gyp
'sources': [
'<(V8_ROOT)/src/trap-handler/handler-inside-posix.h',
],
@@ -749,7 +752,7 @@
@@ -776,7 +779,7 @@
}],
['v8_enable_webassembly==1', {
'conditions': [
@@ -35,7 +35,7 @@ Index: tools/v8_gypfiles/v8.gyp
'sources': [
'<(V8_ROOT)/src/trap-handler/handler-inside-posix.h',
],
@@ -1170,7 +1173,7 @@
@@ -1153,7 +1156,7 @@
}],
['v8_enable_webassembly==1', {
'conditions': [
@@ -44,7 +44,7 @@ Index: tools/v8_gypfiles/v8.gyp
'sources': [
'<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc',
'<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc',
@@ -1198,7 +1201,7 @@
@@ -1181,7 +1184,7 @@
'conditions': [
['v8_enable_webassembly==1', {
'conditions': [
@@ -53,7 +53,7 @@ Index: tools/v8_gypfiles/v8.gyp
'sources': [
'<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc',
'<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc',
@@ -1251,7 +1254,7 @@
@@ -1229,7 +1232,7 @@
'conditions': [
['v8_enable_webassembly==1', {
'conditions': [
@@ -62,17 +62,8 @@ Index: tools/v8_gypfiles/v8.gyp
'sources': [
'<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc',
'<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc',
@@ -1347,7 +1350,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", "arm", "riscv64", "loong64"] and llvm_version == "0.0"', {
'link_settings': {
'libraries': ['-latomic', ],
},
@@ -1813,6 +1816,9 @@
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/BUILD.gn" "\\"mksnapshot.*?sources = ")',
@@ -1804,6 +1807,9 @@
# "build/win:default_exe_manifest",
],
'conditions': [
+ ['v8_control_flow_integrity==1', {
+209 -538
View File
File diff suppressed because it is too large Load Diff