tools: ci : add cibuild rule for arm64
Summary: 1. add aarch64-none-elf toolchain for cibuild rule Signed-off-by: qinwei <qinwei1@xiaomi.com>
This commit is contained in:
parent
19fd0a5587
commit
881c896c06
@ -37,7 +37,7 @@ EXTRA_PATH=
|
||||
|
||||
case ${os} in
|
||||
Darwin)
|
||||
install="python-tools u-boot-tools elf-toolchain gen-romfs kconfig-frontends rust arm-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain avr-gcc-toolchain c-cache binutils"
|
||||
install="python-tools u-boot-tools elf-toolchain gen-romfs kconfig-frontends rust arm-gcc-toolchain arm64-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain avr-gcc-toolchain c-cache binutils"
|
||||
mkdir -p "${prebuilt}"/homebrew
|
||||
export HOMEBREW_CACHE=${prebuilt}/homebrew
|
||||
# https://github.com/actions/virtual-environments/issues/2322#issuecomment-749211076
|
||||
@ -46,7 +46,7 @@ case ${os} in
|
||||
brew update --quiet
|
||||
;;
|
||||
Linux)
|
||||
install="python-tools gen-romfs gperf kconfig-frontends rust arm-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain rx-gcc-toolchain sparc-gcc-toolchain c-cache"
|
||||
install="python-tools 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"
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -172,6 +172,29 @@ function arm-gcc-toolchain {
|
||||
arm-none-eabi-gcc --version
|
||||
}
|
||||
|
||||
function arm64-gcc-toolchain {
|
||||
add_path "${prebuilt}"/gcc-aarch64-none-elf/bin
|
||||
|
||||
if [ ! -f "${prebuilt}/gcc-aarch64-none-elf/bin/aarch64-none-elf-gcc" ]; then
|
||||
local flavor
|
||||
case ${os} in
|
||||
Darwin)
|
||||
flavor=darwin-x86_64
|
||||
;;
|
||||
Linux)
|
||||
flavor=x86_64
|
||||
;;
|
||||
esac
|
||||
cd "${prebuilt}"
|
||||
wget --quiet https://developer.arm.com/-/media/Files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-${flavor}-aarch64-none-elf.tar.xz
|
||||
xz -d gcc-arm-11.2-2022.02-${flavor}-aarch64-none-elf.tar.xz
|
||||
tar xf gcc-arm-11.2-2022.02-${flavor}-aarch64-none-elf.tar
|
||||
mv gcc-arm-11.2-2022.02-${flavor}-aarch64-none-elf gcc-aarch64-none-elf
|
||||
rm gcc-arm-11.2-2022.02-${flavor}-aarch64-none-elf.tar
|
||||
fi
|
||||
aarch64-none-elf-gcc --version
|
||||
}
|
||||
|
||||
function mips-gcc-toolchain {
|
||||
add_path "${prebuilt}"/pinguino-compilers/linux64/p32/bin
|
||||
|
||||
@ -336,6 +359,8 @@ function c-cache {
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/g++
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/arm-none-eabi-gcc
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/arm-none-eabi-g++
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/aarch64-none-elf-gcc
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/aarch64-none-elf-g++
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/p32-gcc
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/riscv64-unknown-elf-gcc
|
||||
ln -sf "$(which ccache)" "${prebuilt}"/ccache/bin/riscv64-unknown-elf-g++
|
||||
|
@ -87,6 +87,15 @@ RUN mkdir gcc-arm-none-eabi && \
|
||||
curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2" \
|
||||
| tar -C gcc-arm-none-eabi --strip-components 1 -xj
|
||||
|
||||
###############################################################################
|
||||
# Build image for tool required by ARM64 builds
|
||||
###############################################################################
|
||||
FROM nuttx-toolchain-base AS nuttx-toolchain-arm64
|
||||
# Download the latest ARM64 GCC toolchain prebuilt by ARM
|
||||
RUN mkdir gcc-aarch64-none-elf && \
|
||||
curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-x86_64-aarch64-none-elf.tar.xz" \
|
||||
| tar -C gcc-aarch64-none-elf --strip-components 1 -xJ
|
||||
|
||||
###############################################################################
|
||||
# Build image for tool required by Pinguino builds
|
||||
###############################################################################
|
||||
@ -273,6 +282,10 @@ ENV PATH="/tools/rust/cargo/bin:$PATH"
|
||||
COPY --from=nuttx-toolchain-arm /tools/gcc-arm-none-eabi/ gcc-arm-none-eabi/
|
||||
ENV PATH="/tools/gcc-arm-none-eabi/bin:$PATH"
|
||||
|
||||
# ARM64 toolchain
|
||||
COPY --from=nuttx-toolchain-arm64 /tools/gcc-aarch64-none-elf/ gcc-aarch64-none-elf/
|
||||
ENV PATH="/tools/gcc-aarch64-none-elf/bin:$PATH"
|
||||
|
||||
# MIPS toolchain
|
||||
COPY --from=nuttx-toolchain-pinguino /tools/pinguino-compilers/p32/ pinguino-compilers/p32/
|
||||
ENV PATH="/tools/pinguino-compilers/p32/bin:$PATH"
|
||||
@ -318,6 +331,8 @@ RUN mkdir -p /tools/ccache/bin && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/g++ && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/arm-none-eabi-gcc && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/arm-none-eabi-g++ && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/aarch64-none-elf-gcc && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/aarch64-none-elf-g++ && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/p32-gcc && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/riscv64-unknown-elf-gcc && \
|
||||
ln -sf `which ccache` /tools/ccache/bin/riscv64-unknown-elf-g++ && \
|
||||
|
Loading…
Reference in New Issue
Block a user