The cross 0.2.5 ppc64le image uses binutils 2.26.1. It mislinks calls to optional libc functions absent from its sysroot: the published binary tests the dynamically resolved gettid address, then branches to an unmapped address instead of calling it. Let GCC retain its sysroot and library selection, but route its linker invocation to the LLD bundled with the pinned Rust toolchain. This fixes the weak-symbol calls without raising the glibc baseline or adding another linker download. Scope the setting to ppc64le. Smoke-test the actual release binary against a newer libc, where gettid is present. Testing only against the build sysroot misses the bug because Rust takes its syscall fallback there. Closes pnpm/pnpm#16380.
6 lines
121 B
Bash
Executable File
6 lines
121 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
# rustc adds its bundled linker directory to PATH before invoking GCC.
|
|
exec rust-lld -flavor gnu "$@"
|