I just discovered that gcc installed as crosscompiler, package gcc-x86-64-linux-gnu, looks for 'as' not 'x86_64-linux-gnu-as'.

I assume this is expected, but do not understand why. Is this a question for gcc devs or debian package maintainers?

FROM debian:trixie-slim AS build
WORKDIR /build

RUN apt-get update
RUN apt-get install -y make \
    gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu \
    gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu \
    gcc-x86-64-linux-gnu binutils-x86-64-linux-gnu \
    gcc-i686-linux-gnu binutils-i686-linux-gnu
RUN rm -rf /var/lib/apt/lists/*

CMD /bin/bash

podman build -t test && podman run --rm -it test

root@b93b0ad97bca:~# riscv64-linux-gnu-gcc --print-prog-name=as
/usr/lib/gcc-cross/riscv64-linux-gnu/14/../../../../riscv64-linux-gnu/bin/as
root@b93b0ad97bca:~# aarch64-linux-gnu-gcc --print-prog-name=as
/usr/lib/gcc-cross/aarch64-linux-gnu/14/../../../../aarch64-linux-gnu/bin/as
root@b93b0ad97bca:~# i686-linux-gnu-gcc --print-prog-name=as
/usr/lib/gcc-cross/i686-linux-gnu/14/../../../../i686-linux-gnu/bin/as
root@b93b0ad97bca:~# x86_64-linux-gnu-gcc --print-prog-name=as
as

root@b93b0ad97bca:~# echo "int main() {}" | riscv64-linux-gnu-gcc -o main -x c - && echo 'OK'
OK
root@b93b0ad97bca:~# echo "int main() {}" | aarch64-linux-gnu-gcc -o main -x c - && echo 'OK'
OK
root@b93b0ad97bca:~# echo "int main() {}" | i686-linux-gnu-gcc -o main -x c - && echo 'OK'
OK
root@b93b0ad97bca:~# echo "int main() {}" | x86_64-linux-gnu-gcc -o main -x c - && echo 'OK' x86_64-linux-gnu-gcc: fatal error: cannot execute 'as': posix_spawnp: No such file or directory
compilation terminated.


Reply via email to