build: Temporal cross builds do not separate host and target Rust archives · Issue #66897 · nodejs/node · GitHub
Skip to content

build: Temporal cross builds do not separate host and target Rust archives #66897

Open

Description

@inoway46

Version

main at 697ecce

Platform

Host: Ubuntu 24.04, Linux x86_64
Target: Linux AArch64
Rust: 1.88.0

Subsystem

build, Temporal

What steps will reproduce the bug?

Install an AArch64 C/C++ cross toolchain and the Rust aarch64-unknown-linux-gnu target, then run from a clean checkout:

export CC=aarch64-linux-gnu-gcc
export CXX=aarch64-linux-gnu-g++
export CC_host=gcc
export CXX_host=g++
export CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc

./configure --cross-compiling --dest-os=linux --dest-cpu=arm64 \
  --v8-enable-temporal-support

make -C out BUILDTYPE=Release V=1 \
  "$PWD/out/Release/obj/gen//release/libnode_crates.a"

ls out/Release/obj/gen/release/libnode_crates.a
ls out/Release/obj/gen/aarch64-unknown-linux-gnu/release/libnode_crates.a

The double slash in the Make target matches the generated rule.

How often does it reproduce? Is there a required condition?

Reproduced consistently with bundled Temporal enabled when cross-compiling from Linux x86_64 to AArch64.

What is the expected behavior? Why is that the expected behavior?

Separate Rust archives should be generated for host and target, at the paths used by their respective link steps.

What do you see instead?

Both host and target toolsets declare the same Rust archive path, but Cargo writes the target archive to a different path. No x86_64 archive is generated for host executables.

Additional information

Also observed when targeting RISC-V.

Refs: #66803

Activity

  1. added
    buildIssues and PRs related to Node.js builds or CI infrastructure.
    v8 engineIssues and PRs related to the V8 dependency.
    on Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to Node.js builds or CI infrastructure.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions