diff options
author | Alper Nebi Yasak <alpernebiyasak@gmail.com> | 2022-12-07 20:53:18 +0300 |
---|---|---|
committer | Alper Nebi Yasak <alpernebiyasak@gmail.com> | 2022-12-10 14:19:00 +0300 |
commit | bee5054077e8e178cb5dfe1b4ecd1b20d67ee93f (patch) | |
tree | fd2c26a4805a348dbe340a53b86fc4d2f369e771 /resources | |
parent | a586356164491f5895713fca713967218211219e (diff) |
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 <alpernebiyasak@gmail.com>
Diffstat (limited to 'resources')
-rwxr-xr-x | resources/scripts/build/boot/roms_helper | 14 | ||||
-rwxr-xr-x | resources/scripts/build/payload/u-boot | 8 |
2 files changed, 14 insertions, 8 deletions
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" \ |