ci: Install LLVM Embedded Toolchain for Arm

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao 2022-10-21 12:28:45 +08:00 committed by archer
parent b16ed003f1
commit 4ea0c905e6
2 changed files with 22 additions and 1 deletions

View File

@ -46,7 +46,7 @@ case ${os} in
brew update --quiet brew update --quiet
;; ;;
Linux) Linux)
install="python-tools codechecker clang_clang-tidy gen-romfs gperf kconfig-frontends rust arm-gcc-toolchain arm64-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain rx-gcc-toolchain sparc-gcc-toolchain c-cache" install="python-tools codechecker clang_clang-tidy gen-romfs gperf kconfig-frontends rust arm-clang-toolchain arm-gcc-toolchain arm64-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain rx-gcc-toolchain sparc-gcc-toolchain c-cache"
;; ;;
esac esac
@ -169,6 +169,19 @@ function bloaty {
fi fi
} }
function arm-clang-toolchain {
add_path "${prebuilt}"/clang-arm-none-eabi/bin
if [ ! -f "${prebuilt}/clang-arm-none-eabi/bin/clang" ]; then
cd "${prebuilt}"
curl -O -L -s https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-14.0.0/LLVMEmbeddedToolchainForArm-14.0.0-linux.tar.gz
tar zxf LLVMEmbeddedToolchainForArm-14.0.0-linux.tar.gz
mv LLVMEmbeddedToolchainForArm-14.0.0 clang-arm-none-eabi
rm LLVMEmbeddedToolchainForArm-14.0.0-linux.tar.gz
fi
clang --version
}
function arm-gcc-toolchain { function arm-gcc-toolchain {
add_path "${prebuilt}"/gcc-arm-none-eabi/bin add_path "${prebuilt}"/gcc-arm-none-eabi/bin

View File

@ -90,6 +90,11 @@ RUN mkdir gcc-arm-none-eabi && \
&& curl -s -L -O "https://raw.githubusercontent.com/apache/incubator-nuttx/master/tools/ci/patch/arm-none-eabi-workaround-for-newlib-version-break.patch" \ && curl -s -L -O "https://raw.githubusercontent.com/apache/incubator-nuttx/master/tools/ci/patch/arm-none-eabi-workaround-for-newlib-version-break.patch" \
&& patch -p0 < arm-none-eabi-workaround-for-newlib-version-break.patch && patch -p0 < arm-none-eabi-workaround-for-newlib-version-break.patch
# Download the latest ARM clang toolchain prebuilt by ARM
RUN mkdir clang-arm-none-eabi && \
curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-14.0.0/LLVMEmbeddedToolchainForArm-14.0.0-linux.tar.gz" \
| tar -C clang-arm-none-eabi --strip-components 1 -xz
############################################################################### ###############################################################################
# Build image for tool required by ARM64 builds # Build image for tool required by ARM64 builds
############################################################################### ###############################################################################
@ -300,6 +305,9 @@ ENV PATH="/tools/rust/cargo/bin:$PATH"
COPY --from=nuttx-toolchain-arm /tools/gcc-arm-none-eabi/ gcc-arm-none-eabi/ COPY --from=nuttx-toolchain-arm /tools/gcc-arm-none-eabi/ gcc-arm-none-eabi/
ENV PATH="/tools/gcc-arm-none-eabi/bin:$PATH" ENV PATH="/tools/gcc-arm-none-eabi/bin:$PATH"
COPY --from=nuttx-toolchain-arm /tools/clang-arm-none-eabi/ clang-arm-none-eabi/
ENV PATH="/tools/clang-arm-none-eabi/bin:$PATH"
# ARM64 toolchain # ARM64 toolchain
COPY --from=nuttx-toolchain-arm64 /tools/gcc-aarch64-none-elf/ gcc-aarch64-none-elf/ COPY --from=nuttx-toolchain-arm64 /tools/gcc-aarch64-none-elf/ gcc-aarch64-none-elf/
ENV PATH="/tools/gcc-aarch64-none-elf/bin:$PATH" ENV PATH="/tools/gcc-aarch64-none-elf/bin:$PATH"