build/boot/roms: skip building gnat on fam15h

the fam15h boards do not use libgfxinit, instead deferring
to coreboot's old style of graphics initialisation written in C.

libgfxinit is otherwise the only thing that needs gcc-gnat, so
skip building gcc-gnat on coreboot/fam15h_udimm and rdimm.

neox added crossgcc_ada="n" to board.cfg files before, but
forgot to add the handling of it, so these boards still didn't
build on modern distros, where building the old gnat version
was problematic.

with this patch, those fam15h boards should now build, on modern
distros and modern toolchains. this is done by using
the BUILD_LANGUAGES environmental variable, setting it to c,
which tells coreboot to skip building gcc-gnat

MERGE NOTE: this is v2 of the earlier patch, but it actually in
fact sets crossgcc_ada="n" on all of the amd boards, whereas
the v1 patch did not, in this 0.1 buildfix series.

Signed-off-by: Leah Rowe <info@minifree.org>
This commit is contained in:
Leah Rowe 2024-01-16 11:58:31 +00:00
parent 536d8ac919
commit b566142205
11 changed files with 20 additions and 6 deletions

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="n"
payload_grub_withseabios="n"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -5,3 +5,4 @@ payload_grub="y"
payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
crossgcc_ada="n"

View File

@ -63,9 +63,14 @@ payload_seabios="n"
payload_seabios_withgrub="n" # i386-coreboot grub accessible from SeaBIOS boot menu
seabios_opromloadonly="0"
payload_memtest="n"
crossgcc_ada="y"
# Override the above defaults using board.cfg
source "resources/coreboot/${board}/board.cfg"
if [ "${crossgcc_ada}" != "n" ] && [ "${crossgcc_ada}" != "y" ]; then
crossgcc_ada="y"
fi
if [ "${grub_scan_disk}" = "undefined" ]; then
printf "build/roms: Target %s does not define grub_scan_disk. Defaulting to 'both'.\n" "${board}"
grub_scan_disk="both"
@ -142,12 +147,11 @@ fi
if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then
if [ ! -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ]; then
(
cat version > "${cbdir}/.coreboot-version"
cd "${cbdir}"
make crossgcc-i386 CPUS=$(nproc) # even for 64-bit machines, coreboot builds
# 32-bit ROM images, so we only need to worry about i386-elf
)
cat version > "${cbdir}/.coreboot-version"
if [ "${crossgcc_ada}" = "n" ]; then
export BUILD_LANGUAGES=c
fi
make -C "${cbdir}" crossgcc-i386 CPUS=$(nproc)
fi
elif [ "${arch}" = "ARMv7" ]; then
cat version > "${cbdir}/.coreboot-version"