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+ WORKDIR /opt
9+ RUN dpkg --add-architecture arm64; \
10+ sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list; \
611 sed -i s/security.debian.org/archive.debian.org/g /etc/apt/sources.list; \
712 apt-get update; \
813 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; \
14+ git curl wget vim ninja-build crossbuild-essential-arm64 zlib1g-dev:arm64 libbz2-dev:arm64 software-properties-common; \
15+ wget https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0-linux-x86_64.sh; \
1216 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 | \
17+ ./cmake-3.31.0-linux-x86_64.sh --skip-license --prefix=/usr/local; \
18+ rm -f cmake-3.31.0-linux-x86_64.sh; \
19+ wget -O cuda-x64.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb; \
20+ wget -O cuda-sbsa.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/cross-linux-sbsa/cuda-keyring_1.1-1_all.deb; \
21+ dpkg -i cuda-x64.deb && dpkg -i cuda-sbsa.deb; \
22+ rm -f cuda-x64.deb cuda-sbsa.deb; \
23+ apt-get update; \
24+ apt-get install -y cuda-nvcc-${VER} cuda-nvcc-cross-sbsa-${VER} cuda-cudart-cross-sbsa-${VER} libcublas-cross-sbsa-${VER}; \
25+ rm -rf /var/lib/apt/lists/*; \
26+ curl https://sh.rustup.rs -sSf | \
27+ sh -s -- --default-toolchain stable -y; \
28+ curl https://apt.llvm.org/llvm.sh -sSf | \
2629 bash -s -- 20; \
2730 echo "set(CMAKE_SYSTEM_NAME Linux)" > /opt/toolchain.cmake; \
2831 echo "set(CMAKE_SYSTEM_PROCESSOR aarch64)" >> /opt/toolchain.cmake; \
@@ -35,11 +38,8 @@ RUN curl https://apt.llvm.org/llvm.sh -sSf | \
3538 echo '#!/bin/sh\n/usr/bin/clang-20 --target=aarch64-linux-gnu "${@}"\n' > /opt/clang-aarch64; \
3639 echo '#!/bin/sh\n/usr/bin/clang++-20 --target=aarch64-linux-gnu "${@}"\n' > /opt/clang++-aarch64; \
3740 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; \
41+ cat /opt/clang-aarch64 /opt/clang++-aarch64; \
42+ mkdir -p /opt/build_libomp && cd /opt/build_libomp; \
4343 wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/cmake-${OMPVERSION}.src.tar.xz | tar xJvf -; \
4444 wget -qO- https://github.com/llvm/llvm-project/releases/download/llvmorg-${OMPVERSION}/openmp-${OMPVERSION}.src.tar.xz | tar xJvf -; \
4545 mv cmake-${OMPVERSION}.src cmake; \
@@ -52,4 +52,7 @@ RUN mkdir -p build_libomp && cd build_libomp; \
5252 -DLIBOMP_ARCH=aarch64 \
5353 -DCMAKE_TOOLCHAIN_FILE=/opt/toolchain.cmake \
5454 ..; \
55- cmake --build . -j$(nproc --all) -v;
55+ cmake --build . -j$(nproc --all) -v; \
56+ mkdir -p ${LIBOMP_AARCH64}; \
57+ cp -r /opt/build_libomp/openmp-${OMPVERSION}.src/build-arm64/runtime/src/* ${LIBOMP_AARCH64}; \
58+ rm -rf /opt/build_libomp;
0 commit comments