@@ -43,10 +43,24 @@ FROM ${BASE_IMAGE} AS extractor
4343ARG CCACHE_VERSION
4444ARG XWIN_VERSION
4545
46+ SHELL ["/bin/bash" , "-Eeuo" , "pipefail" , "-c" ]
47+
4648WORKDIR /
4749
4850RUN --mount=from=downloader,target=/dl <<EOF
49- set -e
51+ ARM_GNU_TOOLCHAIN_URL="https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-$(uname -m)-arm-none-eabi.tar.xz"
52+ ARM_GNU_TOOLCHAIN_TAR="/tmp/arm-gnu-toolchain.tar.xz"
53+
54+ if [[ "$(uname -m)" == "x86_64" ]]; then
55+ ARM_GNU_TOOLCHAIN_SHA256="62a63b981fe391a9cbad7ef51b17e49aeaa3e7b0d029b36ca1e9c3b2a9b78823"
56+ elif [[ "$(uname -m)" == "aarch64" ]]; then
57+ ARM_GNU_TOOLCHAIN_SHA256="87330bab085dd8749d4ed0ad633674b9dc48b237b61069e3b481abd364d0a684"
58+ fi
59+
60+ wget --no-hsts -qO "${ARM_GNU_TOOLCHAIN_TAR}" "${ARM_GNU_TOOLCHAIN_URL}"
61+ echo "${ARM_GNU_TOOLCHAIN_SHA256} ${ARM_GNU_TOOLCHAIN_TAR}" | sha256sum -c -
62+
63+ tar xJf "${ARM_GNU_TOOLCHAIN_TAR}" --exclude="*arm-none-eabi-gdb*" --exclude="share"
5064 tar xJf /dl/ccache.tar.xz --strip-components=1 "ccache-${CCACHE_VERSION}-linux-$(uname -m)/ccache"
5165 tar xzf /dl/xwin.tar.gz --strip-components=1 "xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl/xwin"
5266 cp /dl/llvm.gpg.key /llvm.gpg.key
@@ -64,7 +78,7 @@ ARG DEBIAN_FRONTEND=noninteractive
6478
6579HEALTHCHECK NONE
6680
67- SHELL ["/bin/bash" , "-o " , "pipefail" , "-c" ]
81+ SHELL ["/bin/bash" , "-Eeuo " , "pipefail" , "-c" ]
6882
6983# Set default environment options
7084ENV CCACHE_DIR=/cache/.ccache \
@@ -86,8 +100,6 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
86100 --mount=type=cache,target=/var/log,sharing=locked \
87101 --mount=from=extractor,target=/src <<EOF
88102
89- set -e
90-
91103 # Install the base system with all tool dependencies
92104 apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-base.json | \
93105 xargs apt-get install -y --no-install-recommends
@@ -111,11 +123,10 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
111123 echo -e 'Package: *\n Pin: origin "apt.llvm.org"\n Pin-Priority: 1000' > /etc/apt/preferences
112124 apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-clang.json | \
113125 xargs apt-get install -y --no-install-recommends
114- EOF
115126
116- # Install arm-gcc toolchain
117- RUN mkdir / opt/gcc-arm-none-eabi \
118- && wget --no-hsts -qO - "https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-$(uname -m)-arm-none-eabi.tar.xz" | tar --exclude= '*arm-none-eabi-gdb*' --exclude= 'share' --strip-components=1 -xJC /opt/gcc-arm-none-eabi
127+ # Install arm-gcc toolchain
128+ cp -a /src/arm-gnu-toolchain-*-arm-none-eabi / opt/gcc-arm-none-eabi
129+ EOF
119130
120131# Install include-what-you-use (iwyu) from source
121132# hadolint ignore=DL3008
0 commit comments