update/trees: simplified crossgcc handling

only call crossgcc for coreboot and u-boot, but use
hostcc for everything else. simplify the checking of
which architecture to compile for. "arch" in target.cfg
files has been modified, to allow further simplification.

without this patch, the logic currently only *barely* avoids
using crossgcc on things like utils, and only works in practise
because, in practise, lbmk only works on x86_64 anyway.

the new logic, as per this patch, is simpler and more robust.

Signed-off-by: Leah Rowe <leah@libreboot.org>
9020vga
Leah Rowe 2023-12-21 10:48:07 +00:00
parent 4711098e94
commit 90ac30b163
91 changed files with 102 additions and 119 deletions

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_32"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_32"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,4 +1,4 @@
tree="default"
romtype="normal"
rev="d862695f5f432b5c78dada5f16c293a4c3f9fce6"
arch="x86_64"
arch="i386-elf"

View File

@ -1,4 +1,4 @@
tree="dell"
romtype="normal"
rev="d862695f5f432b5c78dada5f16c293a4c3f9fce6"
arch="x86_64"
arch="i386-elf"

View File

@ -1,6 +1,6 @@
tree="dell"
romtype="4MiB ICH9 IFD NOR flash"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,7 +1,7 @@
tree="fam15h_rdimm"
romtype="normal"
rev="1c13f8d85c7306213cd525308ee8973e5663a3f8"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="n"

View File

@ -1,7 +1,7 @@
tree="fam15h_udimm"
romtype="normal"
rev="1c13f8d85c7306213cd525308ee8973e5663a3f8"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="n"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_memtest="y"
microcode_required="n"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_memtest="y"
microcode_required="n"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_memtest="y"
grub_scan_disk="ata"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="AArch64"
arch="aarch64-elf"
payload_uboot="y"
vendorfiles="n"
microcode_required="n"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="AArch64"
arch="aarch64-elf"
payload_uboot="y"
vendorfiles="n"
microcode_required="n"

View File

@ -1,4 +1,4 @@
tree="haswell"
romtype="normal"
rev="1411ecf6f0b2c7395bcb96b856dcfdddb1b0c81b"
arch="x86_64"
arch="i386-elf"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_rdimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_rdimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_udimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_udimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_udimm"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -1,6 +1,6 @@
tree="fam15h_udimm"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_rdimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_rdimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_udimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="fam15h_udimm"
romtype="d8d16sas"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_32"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_32"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="AArch64"
arch="aarch64-elf"
payload_uboot="y"
vendorfiles="n"
microcode_required="n"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_seabios_grubonly="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="haswell"
romtype="t440p"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="t440p"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_32"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_32"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="haswell"
romtype="t440p"
arch="x86_64"
arch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="t440p"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="normal"
arch="x86_64"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_32"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,6 +1,6 @@
tree="default"
romtype="i945 laptop"
arch="x86_32"
arch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,3 +1,3 @@
arch="x86_32"
arch="i386-elf"
tree="default"
rev="1e1da7a963007d03a4e0e9a9e0ff17990bb1608d"

View File

@ -1,3 +1,3 @@
tree="default"
rev="4459ed60cb1e0562bc5b40405e2b4b9bbf766d57" # v2023.10
arch="AArch64"
arch="aarch64-elf"

View File

@ -1,2 +1,2 @@
tree="default"
arch="AArch64"
arch="aarch64-elf"

View File

@ -1,2 +1,2 @@
tree="default"
arch="AArch64"
arch="aarch64-elf"

View File

@ -1,2 +1,2 @@
tree="default"
arch="AArch64"
arch="aarch64-elf"

View File

@ -1,2 +1,2 @@
tree="default"
arch="x86_64"
arch="i386-elf"

View File

@ -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()