diff options
Diffstat (limited to 'script/update/trees')
-rwxr-xr-x | script/update/trees | 41 |
1 files changed, 12 insertions, 29 deletions
diff --git a/script/update/trees b/script/update/trees index 67455a3b..44a63263 100755 --- a/script/update/trees +++ b/script/update/trees @@ -174,45 +174,28 @@ handle_src_tree() # (seabios and grub currently use hostcc, not crossgcc) check_cross_compiler() { + [ "$project" = "u-boot" ] || [ "$project" = "coreboot" ] || return 0 + [ -z "${arch}" ] && return 0 + + _arch="${arch}" + [ "${arch}" = "aarch64-elf" ] && _arch="aarch64-elf arm-eabi" + [ "${crossgcc_ada}" = "y" ] || [ "${crossgcc_ada}" = "n" ] || \ crossgcc_ada="y" [ "${crossgcc_ada}" = "y" ] || export BUILD_LANGUAGES=c cbdir="src/coreboot/${tree}" [ "${project}" != "coreboot" ] && cbdir="src/coreboot/default" + x_ ./update trees -f coreboot ${cbdir#src/coreboot/} - # only true if not building coreboot: - ctarget="${cbdir#src/coreboot/}" - [ -d "${cbdir}" ] || x_ ./update trees -f coreboot ${ctarget} - - if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then - [ -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ] || \ - x_ make -C "${cbdir}" crossgcc-i386 CPUS=$(nproc) - case "$(uname -m)" in - x86*|i*86|amd64) : ;; - *) export CROSS_COMPILE=i386-elf- ;; - esac - elif [ "${arch}" = "ARMv7" ]; then - [ -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ] || \ - x_ make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) - case "$(uname -m)" in - arm|arm32|armv6*|armv7*) : ;; - *) export CROSS_COMPILE=arm-eabi- ;; - esac - elif [ "${arch}" = "AArch64" ]; then - [ -d "${cbdir}/util/crossgcc/xgcc/aarch64-elf/" ] || \ - x_ make -C "${cbdir}" crossgcc-aarch64 CPUS=$(nproc) - # aarch64 also needs armv7 toolchain for arm-trusted-firmware - [ -d "${cbdir}/util/crossgcc/xgcc/arm-eabi/" ] || \ - x_ make -C "${cbdir}" crossgcc-arm CPUS=$(nproc) - case "$(uname -m)" in - arm64|aarch64) : ;; - *) export CROSS_COMPILE=aarch64-elf- ;; - esac - fi + for xarch in ${_arch}; do + [ -d "${cbdir}/util/crossgcc/xgcc/${xarch}/" ] && continue + x_ make -C "${cbdir}" crossgcc-${xarch%-*} CPUS=$(nproc) + done # we *must* ensure that u-boot's build system uses crossgcc first export PATH="${PWD}/${cbdir}/util/crossgcc/xgcc/bin:$PATH" + export CROSS_COMPILE="${_arch% *}-" } check_config() |