Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions nodejs-lts-jod/configure-py314.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- configure.orig 2026-01-12 22:55:23.000000000 +0000
+++ configure 2026-02-04 05:27:17.040677777 +0000
@@ -23,7 +23,7 @@
from distutils.spawn import find_executable as which

print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info))
-acceptable_pythons = ((3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8))
+acceptable_pythons = ((3, 14), (3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8))
if sys.version_info[:2] in acceptable_pythons:
import configure
else:
61 changes: 61 additions & 0 deletions nodejs-lts-jod/riscv-v8-fix-sp.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
From b7ecaa8f7e903f7cf5190aa1e3150e739fffa1cc Mon Sep 17 00:00:00 2001
From: Vivian Wang <wangruikang@iscas.ac.cn>
Date: Tue, 3 Feb 2026 16:46:02 +0800
Subject: [PATCH] deps: V8: backport 6a0a25abaed3

Original commit message:

[riscv] Fix sp handling in MacroAssembler::LeaveFrame

Keep sp <= fp to ensure that data right above fp doesn't get clobbered
by an inopportune signal and its handler.

Such clobbering can happen in e.g. Node.js when JIT-compiled code is
interrupted by a SIGCHLD handler.

Bug: None
Change-Id: Ief0836032ada7942e89f081f7605f61632c4d414
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7540554
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Commit-Queue: Yahan Lu (LuYahan) <yahan@iscas.ac.cn>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#105069}

Refs: https://github.com/v8/v8/commit/6a0a25abaed397f83eb0d92e4b33a5e18204f8bc
Co-authored-by: kxxt <rsworktech@outlook.com>
---
deps/v8/AUTHORS | 1 +
deps/v8/src/codegen/riscv/macro-assembler-riscv.cc | 3 ++-
3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS
index 54fb45992db..93b3d9d5b23 100644
--- a/deps/v8/AUTHORS
+++ b/deps/v8/AUTHORS
@@ -282,6 +282,7 @@ Vadim Gorbachev <bmsdave@gmail.com>
Varun Varada <varuncvarada@gmail.com>
Victor Costan <costan@gmail.com>
Victor Polevoy <fx@thefx.co>
+Vivian Wang <wangruikang@iscas.ac.cn>
Vlad Burlik <vladbph@gmail.com>
Vladimir Krivosheev <develar@gmail.com>
Vladimir Shutoff <vovan@shutoff.ru>
diff --git a/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc b/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc
index fd5e97339b4..dc4e3aafcdb 100644
--- a/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc
+++ b/deps/v8/src/codegen/riscv/macro-assembler-riscv.cc
@@ -6036,9 +6036,10 @@ void MacroAssembler::EnterFrame(StackFrame::Type type) {

void MacroAssembler::LeaveFrame(StackFrame::Type type) {
ASM_CODE_COMMENT(this);
- addi(sp, fp, 2 * kSystemPointerSize);
+ Move(sp, fp);
LoadWord(ra, MemOperand(fp, 1 * kSystemPointerSize));
LoadWord(fp, MemOperand(fp, 0 * kSystemPointerSize));
+ AddWord(sp, sp, 2 * kSystemPointerSize);
}

void MacroAssembler::EnterExitFrame(int stack_space,
--
2.53.0

27 changes: 27 additions & 0 deletions nodejs-lts-jod/riscv64.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
--- PKGBUILD
+++ PKGBUILD
@@ -19,10 +19,14 @@ options=(!lto)
source=(
"https://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.xz"
update-icu-tests.patch
+ configure-py314.diff
+ riscv-v8-fix-sp.patch
)
# https://nodejs.org/download/release/latest-jod/SHASUMS256.txt.asc
sha256sums=('4c138012bb5352f49822a8f3e6d1db71e00639d0c36d5b6756f91e4c6f30b683'
- '43da0fb7469e34a239b2711876475f303a4012151e44f72e636a5a7fcf21bff8')
+ '43da0fb7469e34a239b2711876475f303a4012151e44f72e636a5a7fcf21bff8'
+ '9eefe84d90cedffd47878cfd4f027d18fd8724ce2f798ba11cc2b3b861d1f10d'
+ 'c3ecf573ef238c4d97fb051eefe0d4d47cdac8d6282f13cad69b04ec564460af')

_set_flags() {
# /usr/lib/libnode.so uses malloc_usable_size, which is incompatible with fortification level 3
@@ -32,6 +36,8 @@ _set_flags() {

prepare() {
cd node-v${pkgver}
+ patch -Np0 -i ../configure-py314.diff
+ patch -Np1 -i ../riscv-v8-fix-sp.patch
# Update ICU tests https://github.com/nodejs/node/pull/60523
patch -Np1 -i ../update-icu-tests.patch
}