Skip to content

Commit 3fa5a8c

Browse files
committed
ci: Upgrade ubuntu:25.04 for the PowerPC64LE test
Update the last remaining image. For this to work, the `QEMU_CPU=POWER8` configuration needed to be dropped to avoid a new SIGILL. Doing some debugging locally, the crash comes from an `extswsli` (per `powerpc:common64` in gdb-multiarch) in the `ld64.so` available with PowerPC, which qemu rejects when set to power8. Testing a build with `+crt-static` hits the same issue at a `maddld` in `__libc_start_main_impl`. Rust isn't needed to reproduce this: $ cat a.c #include <stdio.h> int main() { printf("Hello, world!\n"); } $ powerpc64le-linux-gnu-gcc a.c $ QEMU_CPU=power8 QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu/ ./a.out qemu: uncaught target signal 4 (Illegal instruction) - core dumped Illegal instruction So the cross toolchain provided by Debian must have a power9 baseline rather than rustc's power8. Alternatively, qemu may be incorrectly rejecting these instructions (I can't find a source on whether or not they should be available for power8). Testing instead with the `-musl` toolchain and ppc linker from musl.cc works correctly. In any case, things work with the default qemu config so it seems fine to drop. The env was originally added in 5d164a4 ("fix the powerpc64le target") but whatever the problem was there appears to no longer be relevant.
1 parent 0c7a82c commit 3fa5a8c

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# FIXME(ppc): We want 25.04 but get SIGILLs
2-
ARG IMAGE=ubuntu:24.04
1+
ARG IMAGE=ubuntu:25.04
32
FROM $IMAGE
43

54
RUN apt-get update && \
@@ -13,6 +12,5 @@ ENV CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER="$TOOLCHAIN_PREFIX"gcc \
1312
CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER=qemu-ppc64le-static \
1413
AR_powerpc64le_unknown_linux_gnu="$TOOLCHAIN_PREFIX"ar \
1514
CC_powerpc64le_unknown_linux_gnu="$TOOLCHAIN_PREFIX"gcc \
16-
QEMU_CPU=POWER8 \
1715
QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu \
1816
RUST_TEST_THREADS=1

0 commit comments

Comments
 (0)