On 2026-10-23 21:25, Aurelien Jarno wrote:
> Source: nodejs
> Version: 24.22.0+dfsg+~cs24.19.2-2
> Severity: serious
> Tags: ftbfs upstream
> Justification: fails to build from source (but built successfully in the past)
> X-Debbugs-Cc: [email protected]
> User: [email protected]
> Usertags: riscv64
> 
> Dear maintainer,
> 
> As you surely have noticed, the latest version of nodejs fails to build
> on riscv64. It fails with:

...

> I have rebuilt version 24.21.0+dfsg+~cs24.13.4-1 in the same
> environment, and it works fine, so the issue is not due to a dependency.
> 
> I have also been able to reproduce the issue with upstream tag v24.22.0
> as well as v24.22.1. On the other hand upstream tag v24.21.0 works fine,
> so the issue is not due to a debian change.
> 
> I have started bisecting, but it will take some time.

Here is the result:

| fb0d0ca28993802d67360edc84d467fe3ccdc20b is the first 'bad' commit
| commit fb0d0ca28993802d67360edc84d467fe3ccdc20b (HEAD)
| Author: Ruan Gustavo <[email protected]>
| Date:   Wed Sep 2 22:00:20 2026 -0300
| 
|     deps: V8: backport 0b94a9fd23ba
| 
|     Original commit message:
| 
|         [leaptiering] Fix BaselineOutOfLinePrologue builtin
| 
|         ... which tried to preserve kJavaScriptCallDispatchHandleRegister even
|         on configurations where it's not used which resulted in a random value
|         on the stack discoverable by GC.
|         This issue triggered only on non-sandbox configuration with enabled
|         leaptiering.
| 
|         Drive-by: fix MacroAssembler::GenerateTailCallToReturnedCode() on 
riscv
|         port which wasn't preserving dispatch handle as all the other ports 
do.
| 
|         Bug: 42204201
|         Fixed: 413769394
| 
|         Change-Id: If146b0b7a6cf972ed5a881142f40980774f19cba
|         Reviewed-on: 
https://chromium-review.googlesource.com/c/v8/v8/+/6587010
|         Commit-Queue: Igor Sheludko <[email protected]>
|         Reviewed-by: Olivier Flückiger <[email protected]>
|         Cr-Commit-Position: refs/heads/main@{#100512}
| 
|     Node.js 24 builds V8 with leaptiering enabled and the sandbox disabled,
|     so V8_JS_LINKAGE_INCLUDES_DISPATCH_HANDLE is not defined and the JS
|     calling convention does not carry the dispatch handle register (x4 on
|     arm64). BaselineOutOfLinePrologue and GenerateTailCallToReturnedCode
|     still pushed that register as a tagged slot of an INTERNAL frame, so
|     whatever value the caller left there is dereferenced by
|     ClearStaleLeftTrimmedPointerVisitor during mark-compact root scanning
|     and crashes the process with SIGSEGV (seen as jest workers dying).
| 
|     Refs: 
https://github.com/v8/v8/commit/0b94a9fd23ba5f59b3f675fb04d60a9b0102e27d
|     Fixes: https://github.com/nodejs/node/issues/62393
|     PR-URL: https://github.com/nodejs/node/pull/65753
|     Reviewed-By: Richard Lau <[email protected]>
| 
|  common.gypi                                            |  2 +-
|  deps/v8/src/builtins/arm64/builtins-arm64.cc           |  3 ++-
|  deps/v8/src/builtins/loong64/builtins-loong64.cc       |  5 +++--
|  deps/v8/src/builtins/mips64/builtins-mips64.cc         |  5 +++--
|  deps/v8/src/builtins/riscv/builtins-riscv.cc           |  7 +++++--
|  deps/v8/src/builtins/x64/builtins-x64.cc               |  5 +++--
|  deps/v8/src/codegen/arm64/macro-assembler-arm64.cc     | 11 ++++++-----
|  deps/v8/src/codegen/loong64/macro-assembler-loong64.cc |  5 +++--
|  deps/v8/src/codegen/mips64/macro-assembler-mips64.cc   |  5 +++--
|  deps/v8/src/codegen/riscv/macro-assembler-riscv.cc     | 18 
+++++++++++++++---
|  deps/v8/src/codegen/x64/macro-assembler-x64.cc         |  5 +++--
|  11 files changed, 47 insertions(+), 24 deletions(-)

I have tested that reverting that commit on upstream v24.22.1 or on the 
Debian package fix the issue. I still need to understand what is broken, 
any help is welcome.

Regards
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
[email protected]                     http://aurel32.net

-- 
Pkg-javascript-devel mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-javascript-devel

Reply via email to