mirror of
https://github.com/bensuperpc/dockcross.git
synced 2024-11-14 23:11:33 +01:00
74 lines
2.6 KiB
Docker
74 lines
2.6 KiB
Docker
|
# manylinux2014-aarch64 is based on manylinux2014-x64 and the aarch64 toolchain installed. This allows to
|
||
|
# run the container on a x86_64 host.
|
||
|
# This image is not based on "pypa/manylinux2014_aarch64" because it would require the host to be aarch64.
|
||
|
# For more details, read https://github.com/dockcross/dockcross/issues/367
|
||
|
FROM dockcross/manylinux2014-x64:20210708-94745ff
|
||
|
|
||
|
# This is for 64-bit ARM Manylinux machine
|
||
|
|
||
|
# Crosstool-ng version
|
||
|
# Issues with crosstool-ng-1.24.0 and up : https://github.com/dockcross/dockcross/issues/367
|
||
|
ENV CT_VERSION crosstool-ng-1.23.0
|
||
|
|
||
|
#include "common-manylinux.crosstool"
|
||
|
|
||
|
# The cross-compiling emulator
|
||
|
RUN \
|
||
|
yum -y update && \
|
||
|
yum -y install \
|
||
|
qemu-user \
|
||
|
qemu-system-arm && \
|
||
|
yum clean all
|
||
|
|
||
|
# The CROSS_TRIPLE is a configured alias of the "aarch64-unknown-linux-gnueabi" target.
|
||
|
ENV CROSS_TRIPLE aarch64-unknown-linux-gnueabi
|
||
|
|
||
|
RUN cd ${XCC_PREFIX}/${CROSS_TRIPLE}/${CROSS_TRIPLE}/include && \
|
||
|
wget https://gist.githubusercontent.com/nhatminhle/5181506/raw/541482dbc61862bba8a156edaae57faa2995d791/stdatomic.h
|
||
|
|
||
|
# Running scripts to cross compile python and copy libstdc++ into toolcain
|
||
|
ADD manylinux2014-aarch64/xc_script /tmp/
|
||
|
RUN PASS=2 /tmp/docker_setup_scrpits/copy_libstd.sh
|
||
|
RUN /tmp/docker_setup_scrpits/prepare_cross_env.sh
|
||
|
RUN rm -rf /tmp/docker_setup_scrpits
|
||
|
RUN rm -rf /tmp/usr/
|
||
|
|
||
|
ENV CROSS_ROOT ${XCC_PREFIX}/${CROSS_TRIPLE}
|
||
|
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
|
||
|
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
|
||
|
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
|
||
|
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
|
||
|
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ \
|
||
|
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
|
||
|
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
|
||
|
|
||
|
ENV QEMU_LD_PREFIX "${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
|
||
|
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
|
||
|
|
||
|
COPY manylinux2014-aarch64/Toolchain.cmake ${CROSS_ROOT}/
|
||
|
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
|
||
|
|
||
|
ENV PKG_CONFIG_PATH /usr/lib/aarch64-linux-gnu/pkgconfig
|
||
|
|
||
|
# Linux kernel cross compilation variables
|
||
|
ENV PATH ${PATH}:${CROSS_ROOT}/bin
|
||
|
ENV CROSS_COMPILE ${CROSS_TRIPLE}-
|
||
|
ENV ARCH arm64
|
||
|
|
||
|
ENV AUDITWHEEL_ARCH aarch64
|
||
|
ENV AUDITWHEEL_PLAT manylinux2014_$AUDITWHEEL_ARCH
|
||
|
|
||
|
# Build-time metadata as defined at http://label-schema.org
|
||
|
ARG BUILD_DATE
|
||
|
ARG IMAGE=dockcross/manylinux2014-aarch64
|
||
|
ARG VERSION=latest
|
||
|
ARG VCS_REF
|
||
|
ARG VCS_URL
|
||
|
LABEL org.label-schema.build-date=$BUILD_DATE \
|
||
|
org.label-schema.name=$IMAGE \
|
||
|
org.label-schema.version=$VERSION \
|
||
|
org.label-schema.vcs-ref=$VCS_REF \
|
||
|
org.label-schema.vcs-url=$VCS_URL \
|
||
|
org.label-schema.schema-version="1.0"
|
||
|
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}
|