You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
build: Temporal cross builds do not separate host and target Rust archives #66897
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.
Activity