From bee5054077e8e178cb5dfe1b4ecd1b20d67ee93f Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Wed, 7 Dec 2022 20:53:18 +0300 Subject: build/roms: Make coreboot crossgcc usable for payloads and modules Add the coreboot-built cross-architecture toolchains to the PATH so that modules and payloads can use them. When building for a foreign-arch board, also export CROSS_COMPILE pointing to the appropriate prefix. Signed-off-by: Alper Nebi Yasak --- resources/scripts/build/boot/roms_helper | 14 ++++++++++++++ resources/scripts/build/payload/u-boot | 8 -------- 2 files changed, 14 insertions(+), 8 deletions(-) (limited to 'resources/scripts') diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper index ff0681f3..abec7402 100755 --- a/resources/scripts/build/boot/roms_helper +++ b/resources/scripts/build/boot/roms_helper @@ -184,12 +184,20 @@ if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then # 32-bit ROM images, so we only need to worry about i386-elf ) fi + case "$(uname -m)" in + x86*|i*86|amd64) : ;; + *) export CROSS_COMPILE=i386-elf- ;; + esac elif [ "${arch}" = "ARMv7" ]; then ( cat version > "${cbdir}/.coreboot-version" cd "${cbdir}" make crossgcc-arm CPUS=$(nproc) # This is for armv7, doesn't apply to aarch64 ) + case "$(uname -m)" in + arm|arm32|armv6*|armv7*) : ;; + *) export CROSS_COMPILE=arm-eabi- ;; + esac elif [ "${arch}" = "AArch64" ]; then ( cat version > "${cbdir}/.coreboot-version" @@ -197,8 +205,14 @@ elif [ "${arch}" = "AArch64" ]; then # aarch64 needs armv7 toolchain for arm-trusted-firmware make crossgcc-arm crossgcc-aarch64 CPUS=$(nproc) ) + case "$(uname -m)" in + arm64|aarch64) : ;; + *) export CROSS_COMPILE=aarch64-elf- ;; + esac fi +export PATH="$(pwd)/${cbdir}/util/crossgcc/xgcc/bin:$PATH" + if [ ! -f "${cbfstool}" ]; then ./build module cbutils ${cbtree} fi diff --git a/resources/scripts/build/payload/u-boot b/resources/scripts/build/payload/u-boot index 6c94a441..3ead3a6c 100755 --- a/resources/scripts/build/payload/u-boot +++ b/resources/scripts/build/payload/u-boot @@ -94,14 +94,6 @@ for board in "$@"; do continue fi - if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then - export CROSS_COMPILE=x86_64-linux- - elif [ "${arch}" = "ARMv7" ]; then - export CROSS_COMPILE=arm-linux-gnueabi- - elif [ "${arch}" = "AArch64" ]; then - export CROSS_COMPILE=aarch64-linux-gnu- - fi - for config in "${board_dir}/config"/*; do if [ ! -f "${config}" ]; then printf "%s: Target %s has no configs to build for. Skipping build.\n" \ -- cgit v1.2.1