update/trees: further simplify crossgcc handling

arch no longer needs to be set, on multi-tree projects,
and it has been renamed to xarch

the new behaviour is: if xarch is set, treat it as a
list of crossgcc targets and go through the list. set
the first one as the target, for what lbmk builds, but
build all of the defined crossgccc targets

crossgcc_ada is now xlang, and defines which languages
to build, rather than whether to build gcc-gnat

Signed-off-by: Leah Rowe <leah@libreboot.org>
9020vga
Leah Rowe 2023-12-27 15:18:21 +00:00
parent 6752780f46
commit eff9130b7a
94 changed files with 115 additions and 128 deletions

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,3 +1,3 @@
tree="default"
rev="d862695f5f432b5c78dada5f16c293a4c3f9fce6"
arch="i386-elf"
xarch="i386-elf"

View File

@ -1,3 +1,3 @@
tree="dell"
rev="d862695f5f432b5c78dada5f16c293a4c3f9fce6"
arch="i386-elf"
xarch="i386-elf"

View File

@ -1,5 +1,5 @@
tree="dell"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="dell"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,8 +1,8 @@
tree="fam15h_rdimm"
rev="1c13f8d85c7306213cd525308ee8973e5663a3f8"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="n"
payload_memtest="n"
crossgcc_ada="n"
xlang="c"

View File

@ -1,8 +1,8 @@
tree="fam15h_udimm"
rev="1c13f8d85c7306213cd525308ee8973e5663a3f8"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="n"
payload_memtest="n"
crossgcc_ada="n"
xlang="c"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_memtest="y"
grub_timeout=10

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_memtest="y"
grub_timeout=10

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_memtest="y"
grub_scan_disk="ata"

View File

@ -1,3 +1,3 @@
tree="default"
arch="aarch64-elf"
xarch="aarch64-elf arm-eabi"
payload_uboot="y"

View File

@ -1,3 +1,3 @@
tree="default"
arch="aarch64-elf"
xarch="aarch64-elf arm-eabi"
payload_uboot="y"

View File

@ -1,3 +1,3 @@
tree="haswell"
rev="1411ecf6f0b2c7395bcb96b856dcfdddb1b0c81b"
arch="i386-elf"
xarch="i386-elf"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,7 +1,7 @@
tree="fam15h_rdimm"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"

View File

@ -1,7 +1,7 @@
tree="fam15h_rdimm"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"

View File

@ -1,7 +1,7 @@
tree="fam15h_udimm"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"

View File

@ -1,7 +1,7 @@
tree="fam15h_udimm"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"

View File

@ -1,6 +1,6 @@
tree="fam15h_udimm"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"
grub_timeout=10

View File

@ -1,7 +1,7 @@
tree="fam15h_udimm"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"
grub_timeout=10

View File

@ -1,7 +1,7 @@
tree="fam15h_rdimm"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"
grub_timeout=10

View File

@ -1,7 +1,7 @@
tree="fam15h_rdimm"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"
grub_timeout=10

View File

@ -1,7 +1,7 @@
tree="fam15h_udimm"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"
grub_timeout=10

View File

@ -1,7 +1,7 @@
tree="fam15h_udimm"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"
crossgcc_ada="n"
xlang="c"
grub_timeout=10

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,3 +1,3 @@
tree="default"
arch="aarch64-elf"
xarch="aarch64-elf arm-eabi"
payload_uboot="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_seabios="y"
payload_seabios_withgrub="y"
payload_seabios_grubonly="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="haswell"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="haswell"
arch="i386-elf"
xarch="i386-elf"
payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

@ -1,5 +1,5 @@
tree="default"
arch="i386-elf"
xarch="i386-elf"
payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"

View File

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

View File

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

View File

@ -1,2 +1,2 @@
tree="default"
arch="aarch64-elf"
xarch="aarch64-elf arm-eabi"

View File

@ -1,2 +1,2 @@
tree="default"
arch="aarch64-elf"
xarch="aarch64-elf arm-eabi"

View File

@ -1,2 +1,2 @@
tree="default"
arch="aarch64-elf"
xarch="aarch64-elf arm-eabi"

View File

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

View File

@ -21,7 +21,7 @@ kmapdir="config/grub/keymap"
# target.cfg files have to specifically enable [a] payload(s)
pv="payload_grub payload_grub_withseabios payload_seabios payload_memtest t"
pv="${pv} payload_seabios_withgrub payload_seabios_grubonly payload_uboot memtest_bin"
v="romdir cbrom initmode displaymode cbcfg targetdir tree arch keymaps"
v="romdir cbrom initmode displaymode cbcfg targetdir tree keymaps"
v="${v} grub_timeout ubdir board grub_scan_disk uboot_config"
eval "$(setvars "n" ${pv})"
eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)"
@ -84,7 +84,6 @@ configure_target()
&& [ "${grub_scan_disk}" != "ahci" ] && \
grub_scan_disk="both"
[ -z "$arch" ] && err "$board: arch not defined"
[ -z "$tree" ] && err "$board: tree not defined"
[ "${payload_memtest}" != "y" ] && payload_memtest="n"

View File

@ -10,7 +10,7 @@ set -u -e
. "include/option.sh"
. "include/git.sh"
eval "$(setvars "" arch cfgsdir codedir config config_name crossgcc_ada mode \
eval "$(setvars "" xarch cfgsdir codedir config config_name xlang mode \
elfdir listfile project target target_dir targets tree _f target1)"
main()
@ -140,12 +140,11 @@ handle_src_tree()
fi
x_ mkdir -p "${elfdir}/${target}"
eval "$(setvars "" arch tree)"
eval "$(setvars "" xarch xlang tree)"
. "${target_dir}/target.cfg" || \
err "handle_src_tree ${target_dir}: cannot load target.cfg"
[ -z "$arch" ] && err "handle_src_tree $project/$tree: arch unset"
[ -z "$tree" ] && err "handle_src_tree $project/$tree: tree unset"
codedir="src/${project}/${tree}"
@ -165,31 +164,21 @@ handle_src_tree()
check_cross_compiler
}
# set up cross-compiler (coreboot crossgcc) for u-boot and coreboot
# (seabios and grub currently use hostcc, not crossgcc)
check_cross_compiler()
{
[ "$project" = "u-boot" ] || [ "$project" = "coreboot" ] || return 0
[ -z "$arch" ] && err "${project}/${tree}: arch isn't set"
for _xarch in $xarch; do
cbdir="src/coreboot/${tree}"
[ "$project" != "coreboot" ] && cbdir="src/coreboot/default"
_arch="$arch"
[ "$arch" = "aarch64-elf" ] && _arch="aarch64-elf arm-eabi"
x_ ./update trees -f coreboot ${cbdir#src/coreboot/}
[ "$crossgcc_ada" = "y" ] || [ "$crossgcc_ada" = "n" ] || crossgcc_ada=y
[ "$crossgcc_ada" = "y" ] || export BUILD_LANGUAGES=c
export PATH="${PWD}/${cbdir}/util/crossgcc/xgcc/bin:$PATH"
export CROSS_COMPILE="${xarch% *}-"
[ -n "${xlang}" ] && export BUILD_LANGUAGES="$xlang"
cbdir="src/coreboot/${tree}"
[ "$project" != "coreboot" ] && cbdir="src/coreboot/default"
x_ ./update trees -f coreboot ${cbdir#src/coreboot/}
for xarch in $_arch; do
[ -d "${cbdir}/util/crossgcc/xgcc/${xarch}/" ] && continue
x_ make -C "$cbdir" crossgcc-${xarch%-*} CPUS=$(nproc)
[ -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()