
Description
Hello rustix
Team,
I create this issue as a result of hunting down a panic in wasmtime bytecodealliance/wasmtime#10802. Now that I have a minimal reproducing example, I wonder if this even should be supported, yet I leave that judgement to you.
This is the panic we see:
thread 'main' panicked at /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustix-1.0.7/src/backend/linux_raw/param/auxv.rs:302:68:
called `Option::unwrap()` on a `None` value
As suggested by @alexcrichton the reproducing code is simple:
use rustix;
fn main() {
let page_size = rustix::param::page_size();
eprintln!("{page_size}");
}
The environment to reproduce it, uses this container file:
FROM --platform=linux/amd64 ubuntu:24.04
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y pkg-config libssl-dev curl build-essential && \
rm -rf /var/lib/apt/lists/*
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init && \
sh rustup-init -y --profile minimal
ENV PATH="/root/.cargo/bin:${PATH}"
WORKDIR /usr/local/src
ENV CARGO_INCREMENTAL=0
WORKDIR /build
# Build application
COPY . .
RUN cargo build --release
CMD ["cargo", "run", "--release"]
On my ARM Mac Book Pro M3 executing:
podman build . --tag mre --platform linux/arm64
podman run mre
Reproduces the above error.
The actual production code hit by this, did not actually specify a platform in the containerfile though. It simply used a base image build on an x86_64 platform
Not sure if this is an issue with rustix, or Rossetta or if this is supposed to work at all. Yet I thought you folks may be interessted.
Best, Markus