11FROM debian:buster
22ARG VER="12-6"
33
4- RUN dpkg --add-architecture arm64
5- RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list; \
4+ ENV OMPVERSION=20.1.7
5+ ENV PATH=/root/.cargo/bin:$PATH
6+ ENV LIBOMP_AARCH64="/opt/libomp"
7+
8+ RUN dpkg --add-architecture arm64; \
9+ sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list; \
610 sed -i s/security.debian.org/archive.debian.org/g /etc/apt/sources.list; \
711 apt-get update; \
812 apt-get -y install -o APT::Immediate-Configure=false \
9- git curl wget vim ninja-build crossbuild-essential-arm64 zlib1g-dev:arm64 libbz2-dev:arm64 software-properties-common
10-
11- RUN wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
13+ git curl wget vim ninja-build crossbuild-essential-arm64 zlib1g-dev:arm64 libbz2-dev:arm64 software-properties-common; \
14+ wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
1215 chmod +x cmake-3.31.0-linux-x86_64.sh; \
13- ./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local;
14-
15- RUN wget -O cuda-x64.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
16- RUN wget -O cuda-sbsa.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/cross-linux-sbsa/cuda-keyring_1.1-1_all.deb
17- RUN dpkg -i cuda-x64.deb && dpkg -i cuda-sbsa.deb
18- RUN apt-get update
19- RUN apt-get install -y cuda-nvcc-${VER} cuda-nvcc-cross-sbsa-${VER} cuda-cudart-cross-sbsa-${VER} libcublas-cross-sbsa-${VER}
20-
21- RUN curl https://sh.rustup.rs -sSf | \
22- sh -s -- --default-toolchain stable -y
23- ENV PATH=/root/.cargo/bin:$PATH
24-
25- RUN curl https://apt.llvm.org/llvm.sh -sSf | \
16+ ./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local; \
17+ rm -f cmake-3.31.0-linux-x86_64.sh; \
18+ wget -O cuda-x64.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb; \
19+ wget -O cuda-sbsa.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/cross-linux-sbsa/cuda-keyring_1.1-1_all.deb; \
20+ dpkg -i cuda-x64.deb && dpkg -i cuda-sbsa.deb; \
21+ rm -f cuda-x64.deb cuda-sbsa.deb; \
22+ apt-get update; \
23+ apt-get install -y cuda-nvcc-${VER} cuda-nvcc-cross-sbsa-${VER} cuda-cudart-cross-sbsa-${VER} libcublas-cross-sbsa-${VER}; \
24+ rm -rf /var/lib/apt/lists/*; \
25+ curl https://sh.rustup.rs -sSf | \
26+ sh -s -- --default-toolchain stable -y; \
27+ curl https://apt.llvm.org/llvm.sh -sSf | \
2628 bash -s -- 20; \
2729 echo "set(CMAKE_SYSTEM_NAME Linux)" > /opt/toolchain.cmake; \
2830 echo "set(CMAKE_SYSTEM_PROCESSOR aarch64)" >> /opt/toolchain.cmake; \
@@ -35,11 +37,8 @@ RUN curl https://apt.llvm.org/llvm.sh -sSf | \
3537 echo '#!/bin/sh\n/usr/bin/clang-20 --target=aarch64-linux-gnu "${@}"\n' > /opt/clang-aarch64; \
3638 echo '#!/bin/sh\n/usr/bin/clang++-20 --target=aarch64-linux-gnu "${@}"\n' > /opt/clang++-aarch64; \
3739 chmod +x /opt/clang-aarch64 /opt/clang++-aarch64; \
38- cat /opt/clang-aarch64 /opt/clang++-aarch64;
39-
40- ENV OMPVERSION=20.1.7
41- ENV LIBOMP_AARCH64="/opt/build_libomp/openmp-${OMPVERSION}.src/build-arm64/runtime/src"
42- RUN mkdir -p build_libomp && cd build_libomp; \
40+ cat /opt/clang-aarch64 /opt/clang++-aarch64; \
41+ mkdir -p /opt/build_libomp && cd /opt/build_libomp; \
4342 wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/cmake-${OMPVERSION}.src.tar.xz | tar xJvf -; \
4443 wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/openmp-${OMPVERSION}.src.tar.xz | tar xJvf -; \
4544 mv cmake-${OMPVERSION}.src cmake; \
@@ -52,4 +51,7 @@ RUN mkdir -p build_libomp && cd build_libomp; \
5251 -DLIBOMP_ARCH=aarch64 \
5352 -DCMAKE_TOOLCHAIN_FILE=/opt/toolchain.cmake \
5453 ..; \
55- cmake --build . -j$(nproc --all) -v;
54+ cmake --build . -j$(nproc --all) -v; \
55+ mkdir -p ${LIBOMP_AARCH64}; \
56+ cp -r /opt/build_libomp/openmp-${OMPVERSION}.src/build-arm64/runtime/src/* ${LIBOMP_AARCH64}; \
57+ rm -rf /opt/build_libomp;
0 commit comments