From 35601fe74b6efb6886fc877684dcf1e0e0b5530d Mon Sep 17 00:00:00 2001 From: Ansen Huang Date: Mon, 4 May 2026 14:52:10 -0700 Subject: [PATCH 1/2] Containers: Add gcc-multilib for IA32 cross-compilation support Add gcc-multilib to .sync/containers/ Nunjucks templates for both Ubuntu-22 and Ubuntu-24 images. This provides 32-bit glibc headers required for IA32 (-m32) builds with GCC. The container images already install cross-compilation toolchains for ARM, AArch64, and RISC-V but lack the 32-bit x86 equivalent. On x86_64 hosts, compiling for IA32 uses the native GCC with -m32, which requires the multilib package for 32-bit headers and libraries. --- .sync/containers/Ubuntu-22/Dockerfile | 1 + .sync/containers/Ubuntu-24/Dockerfile | 1 + 2 files changed, 2 insertions(+) diff --git a/.sync/containers/Ubuntu-22/Dockerfile b/.sync/containers/Ubuntu-22/Dockerfile index a4871c05..6fdb45c0 100644 --- a/.sync/containers/Ubuntu-22/Dockerfile +++ b/.sync/containers/Ubuntu-22/Dockerfile @@ -77,6 +77,7 @@ RUN apt-get update && \ {% endraw %}python{{ sync_version.python_version }}{% raw %} \ {% endraw %}python{{ sync_version.python_version }}{% raw %}-venv \ g++-${GCC_MAJOR_VERSION} gcc-${GCC_MAJOR_VERSION} \ + gcc-${GCC_MAJOR_VERSION}-multilib \ gcc-${GCC_MAJOR_VERSION}-x86-64-linux-gnux32 \ gcc-${GCC_MAJOR_VERSION}-aarch64-linux-gnu \ gcc-${GCC_MAJOR_VERSION}-riscv64-linux-gnu \ diff --git a/.sync/containers/Ubuntu-24/Dockerfile b/.sync/containers/Ubuntu-24/Dockerfile index 3ba6d191..1d52b8de 100644 --- a/.sync/containers/Ubuntu-24/Dockerfile +++ b/.sync/containers/Ubuntu-24/Dockerfile @@ -74,6 +74,7 @@ RUN apt-get update && \ {% endraw %}python{{ sync_version.python_version }}{% raw %} \ {% endraw %}python{{ sync_version.python_version }}{% raw %}-venv \ g++-${GCC_MAJOR_VERSION} gcc-${GCC_MAJOR_VERSION} \ + gcc-${GCC_MAJOR_VERSION}-multilib \ gcc-${GCC_MAJOR_VERSION}-x86-64-linux-gnux32 \ gcc-${GCC_MAJOR_VERSION}-aarch64-linux-gnu \ gcc-${GCC_MAJOR_VERSION}-riscv64-linux-gnu \ From 9970158bf7c64c73b17db12eb7ef1fe319d305a9 Mon Sep 17 00:00:00 2001 From: Ansen Huang Date: Mon, 4 May 2026 15:56:19 -0700 Subject: [PATCH 2/2] Containers: Add libxml-parser-perl and libxml-simple-perl AGESA's IdsIdGen.pl uses XML::Simple and XML::Parser to generate header files (e.g. IdsNvIdWH.h) at build time. Without these Perl modules, CBS library compilation fails with missing headers. --- .sync/containers/Ubuntu-22/Dockerfile | 3 +++ .sync/containers/Ubuntu-24/Dockerfile | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.sync/containers/Ubuntu-22/Dockerfile b/.sync/containers/Ubuntu-22/Dockerfile index 6fdb45c0..572e5581 100644 --- a/.sync/containers/Ubuntu-22/Dockerfile +++ b/.sync/containers/Ubuntu-22/Dockerfile @@ -55,6 +55,8 @@ RUN apt-get update && \ gnupg2 \ lcov \ libssl-dev \ + libxml-parser-perl \ + libxml-simple-perl \ lld \ llvm \ jq \ @@ -77,6 +79,7 @@ RUN apt-get update && \ {% endraw %}python{{ sync_version.python_version }}{% raw %} \ {% endraw %}python{{ sync_version.python_version }}{% raw %}-venv \ g++-${GCC_MAJOR_VERSION} gcc-${GCC_MAJOR_VERSION} \ + g++-${GCC_MAJOR_VERSION}-multilib \ gcc-${GCC_MAJOR_VERSION}-multilib \ gcc-${GCC_MAJOR_VERSION}-x86-64-linux-gnux32 \ gcc-${GCC_MAJOR_VERSION}-aarch64-linux-gnu \ diff --git a/.sync/containers/Ubuntu-24/Dockerfile b/.sync/containers/Ubuntu-24/Dockerfile index 1d52b8de..c4749210 100644 --- a/.sync/containers/Ubuntu-24/Dockerfile +++ b/.sync/containers/Ubuntu-24/Dockerfile @@ -55,6 +55,8 @@ RUN apt-get update && \ gnupg2 \ lcov \ libssl-dev \ + libxml-parser-perl \ + libxml-simple-perl \ lld \ llvm \ jq \ @@ -74,6 +76,7 @@ RUN apt-get update && \ {% endraw %}python{{ sync_version.python_version }}{% raw %} \ {% endraw %}python{{ sync_version.python_version }}{% raw %}-venv \ g++-${GCC_MAJOR_VERSION} gcc-${GCC_MAJOR_VERSION} \ + g++-${GCC_MAJOR_VERSION}-multilib \ gcc-${GCC_MAJOR_VERSION}-multilib \ gcc-${GCC_MAJOR_VERSION}-x86-64-linux-gnux32 \ gcc-${GCC_MAJOR_VERSION}-aarch64-linux-gnu \