From ed0bda1e611cd5086f8724ee50c8f412f5ec8db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emil=20Gardstr=C3=B6m?= Date: Fri, 27 Oct 2023 18:18:45 +0200 Subject: [PATCH 1/2] add powerpc-musl images --- ...ockerfile.powerpc-unknown-linux-musl-cross | 37 +++++++++++++++++++ ...kerfile.powerpc-unknown-linux-muslsf-cross | 37 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 docker/Dockerfile.powerpc-unknown-linux-musl-cross create mode 100644 docker/Dockerfile.powerpc-unknown-linux-muslsf-cross diff --git a/docker/Dockerfile.powerpc-unknown-linux-musl-cross b/docker/Dockerfile.powerpc-unknown-linux-musl-cross new file mode 100644 index 0000000..d6ae1ba --- /dev/null +++ b/docker/Dockerfile.powerpc-unknown-linux-musl-cross @@ -0,0 +1,37 @@ +FROM ubuntu:20.04 +ARG DEBIAN_FRONTEND=noninteractive + +COPY common.sh lib.sh / +RUN /common.sh + +COPY cmake.sh / +RUN /cmake.sh + +COPY musl.sh / +RUN /musl.sh TARGET=powerpc-linux-musl + +COPY qemu.sh / +RUN /qemu.sh ppc softmmu + +ENV CROSS_TOOLCHAIN_PREFIX=powerpc-linux-musl- +ENV CROSS_SYSROOT=/usr/local/powerpc-linux-musl +COPY musl-symlink.sh / +RUN /musl-symlink.sh $CROSS_SYSROOT powerpc + +COPY qemu-runner base-runner.sh / +COPY toolchain.cmake /opt/toolchain.cmake + +ENV CROSS_TARGET_RUNNER="/qemu-runner powerpc" +ENV CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \ + CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_RUNNER="$CROSS_TARGET_RUNNER" \ + AR_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"ar \ + CC_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"gcc \ + CXX_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"g++ \ + CMAKE_TOOLCHAIN_FILE_powerpc_unknown_linux_musl=/opt/toolchain.cmake \ + BINDGEN_EXTRA_CLANG_ARGS_powerpc_unknown_linux_musl="--sysroot=$CROSS_SYSROOT" \ + QEMU_LD_PREFIX="$CROSS_SYSROOT" \ + PKG_CONFIG_PATH="/usr/lib/powerpc-linux-gnu/pkgconfig/:${PKG_CONFIG_PATH}" \ + CROSS_CMAKE_SYSTEM_NAME=Linux \ + CROSS_CMAKE_SYSTEM_PROCESSOR=powerpc \ + CROSS_CMAKE_CRT=musl \ + CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC" diff --git a/docker/Dockerfile.powerpc-unknown-linux-muslsf-cross b/docker/Dockerfile.powerpc-unknown-linux-muslsf-cross new file mode 100644 index 0000000..56f305c --- /dev/null +++ b/docker/Dockerfile.powerpc-unknown-linux-muslsf-cross @@ -0,0 +1,37 @@ +FROM ubuntu:20.04 +ARG DEBIAN_FRONTEND=noninteractive + +COPY common.sh lib.sh / +RUN /common.sh + +COPY cmake.sh / +RUN /cmake.sh + +COPY musl.sh / +RUN /musl.sh TARGET=powerpc-linux-muslsf + +COPY qemu.sh / +RUN /qemu.sh ppc softmmu + +ENV CROSS_TOOLCHAIN_PREFIX=powerpc-linux-musl- +ENV CROSS_SYSROOT=/usr/local/powerpc-linux-muslsf +COPY musl-symlink.sh / +RUN /musl-symlink.sh $CROSS_SYSROOT powerpc + +COPY qemu-runner base-runner.sh / +COPY toolchain.cmake /opt/toolchain.cmake + +ENV CROSS_TARGET_RUNNER="/qemu-runner powerpc" +ENV CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \ + CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_RUNNER="$CROSS_TARGET_RUNNER" \ + AR_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"ar \ + CC_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"gcc \ + CXX_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"g++ \ + CMAKE_TOOLCHAIN_FILE_powerpc_unknown_linux_musl=/opt/toolchain.cmake \ + BINDGEN_EXTRA_CLANG_ARGS_powerpc_unknown_linux_musl="--sysroot=$CROSS_SYSROOT" \ + QEMU_LD_PREFIX="$CROSS_SYSROOT" \ + PKG_CONFIG_PATH="/usr/lib/powerpc-linux-gnu/pkgconfig/:${PKG_CONFIG_PATH}" \ + CROSS_CMAKE_SYSTEM_NAME=Linux \ + CROSS_CMAKE_SYSTEM_PROCESSOR=powerpc \ + CROSS_CMAKE_CRT=musl \ + CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC" From 41cd13e1237544734d53b78537f5860d067db259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emil=20Gardstr=C3=B6m?= Date: Sat, 28 Oct 2023 20:37:21 +0200 Subject: [PATCH 2/2] tell cargo the proper way --- docker/Dockerfile.powerpc-unknown-linux-musl-cross | 4 ++-- docker/Dockerfile.powerpc-unknown-linux-muslsf-cross | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile.powerpc-unknown-linux-musl-cross b/docker/Dockerfile.powerpc-unknown-linux-musl-cross index d6ae1ba..c628402 100644 --- a/docker/Dockerfile.powerpc-unknown-linux-musl-cross +++ b/docker/Dockerfile.powerpc-unknown-linux-musl-cross @@ -22,8 +22,8 @@ COPY qemu-runner base-runner.sh / COPY toolchain.cmake /opt/toolchain.cmake ENV CROSS_TARGET_RUNNER="/qemu-runner powerpc" -ENV CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \ - CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_RUNNER="$CROSS_TARGET_RUNNER" \ +ENV CARGO_TARGET_POWERPC_UNKNOWN_LINUX_MUSL_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \ + CARGO_TARGET_POWERPC_UNKNOWN_LINUX_MUSL_RUNNER="$CROSS_TARGET_RUNNER" \ AR_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"ar \ CC_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"gcc \ CXX_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"g++ \ diff --git a/docker/Dockerfile.powerpc-unknown-linux-muslsf-cross b/docker/Dockerfile.powerpc-unknown-linux-muslsf-cross index 56f305c..702cdbf 100644 --- a/docker/Dockerfile.powerpc-unknown-linux-muslsf-cross +++ b/docker/Dockerfile.powerpc-unknown-linux-muslsf-cross @@ -22,8 +22,8 @@ COPY qemu-runner base-runner.sh / COPY toolchain.cmake /opt/toolchain.cmake ENV CROSS_TARGET_RUNNER="/qemu-runner powerpc" -ENV CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \ - CARGO_TARGET_powerpc_UNKNOWN_LINUX_MUSL_RUNNER="$CROSS_TARGET_RUNNER" \ +ENV CARGO_TARGET_POWERPC_UNKNOWN_LINUX_MUSL_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \ + CARGO_TARGET_POWERPC_UNKNOWN_LINUX_MUSL_RUNNER="$CROSS_TARGET_RUNNER" \ AR_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"ar \ CC_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"gcc \ CXX_powerpc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"g++ \