summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlper Nebi Yasak <alpernebiyasak@gmail.com>2022-12-07 20:53:18 +0300
committerAlper Nebi Yasak <alpernebiyasak@gmail.com>2022-12-10 14:19:00 +0300
commitbee5054077e8e178cb5dfe1b4ecd1b20d67ee93f (patch)
treefd2c26a4805a348dbe340a53b86fc4d2f369e771
parenta586356164491f5895713fca713967218211219e (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>
-rwxr-xr-xresources/scripts/build/boot/roms_helper14
-rwxr-xr-xresources/scripts/build/payload/u-boot8
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" \