Files
buildroot/package/xen/Config.in
Matthew Weber 46b5c95647 package/xen: bump to 4.21.1
Bump Xen from 4.19.5 to 4.21.1.

Resolved in version bump:
- 0002-Arm-platforms-fix-build-with-gcc15.patch
  Upstream: https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=39f95089e2ba15c5438ce904c0cbbd8d79d3e6e7

The git-checkout.sh fix for non-master branch checkout is now included:
  https://xenbits.xenproject.org/gitweb/?p=xen.git;a=commitdiff;h=01fb23dd71006d87e874f310e9c50f31582f274e

Remaining patches refreshed for updated context:
- 0001-No-trace-backend.patch (Buildroot specific, cross-compile workaround)
- 0002-Update-linker-flags.patch (Buildroot specific, cross-compile workaround)

Starting with Xen 4.20, qemu-xen is no longer bundled in the release
tarball. Add a new qemu-xen package that provides the qemu-xen source
tree with required meson subprojects pre-populated. This avoids any
network access during the build.

New dependencies:
- qemu-xen (provides qemu-xen source for tools build)
- host-python-distlib (needed by QEMU's mkvenv)

The qemu-xen package:
- Fetches qemu-xen via git (without recursive submodules to avoid
  massive ROM downloads)
- Pre-populates required meson subprojects (keycodemapdb,
  berkeley-softfloat-3, berkeley-testfloat-3) from gitlab archives
- Applies packagefiles overlays (meson.build) for subprojects that
  need them
- Removes .wrap files for unused subprojects to prevent any network
  access attempts during the build
- Patches xen_native.h #error to #warning for cross-compile

Tested with:
    support/testing/run-tests \
        -d dl -o output_folder \
        tests.package.test_xen.TestXenAarch64
    support/testing/run-tests \
        -d dl -o output_folder \
        tests.package.test_xen.TestXenArmv7

Both aarch64 and arm32 runtime tests pass.

Quick build defconfig used for iteration:
    BR2_aarch64=y
    BR2_TOOLCHAIN_EXTERNAL=y
    BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
    BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
    BR2_PACKAGE_XEN=y
    BR2_PACKAGE_XEN_HYPERVISOR=y
    BR2_PACKAGE_XEN_TOOLS=y
    # BR2_TARGET_ROOTFS_TAR is not set

Related prior attempts:
  https://patchwork.ozlabs.org/project/buildroot/patch/20260211055138.719459-1-matthew.l.weber@gmail.com/
  https://patchwork.ozlabs.org/project/buildroot/patch/20251007164756.893264-1-titouan.christophe@mind.be/

Cc: Neal Frager <neal.frager@amd.com>
Cc: Julien Olivain <ju.o@free.fr>
Cc: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Titouan Christophe <titouan.christophe@mind.be>
Cc: John Ernberg <john.ernberg@actia.se>
Signed-off-by: Matthew Weber <mathew.l.weber3@boeing.com>
[Julien:
 - update qemu-xen package url in Config.in
 - split XEN_DEPENDENCIES lines
 - add COPYING license hash in qemu-xen.hash
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-01 16:07:05 +02:00

51 lines
1.5 KiB
Plaintext

config BR2_PACKAGE_XEN
bool "xen"
# needs "dmb" on ARM, so ARM >= v7
depends on BR2_ARM_CPU_ARMV7A || BR2_aarch64
select BR2_PACKAGE_XEN_HYPERVISOR if !BR2_PACKAGE_XEN_TOOLS
help
This package builds the Xen hypervisor and toolstack.
http://www.xenproject.org/
if BR2_PACKAGE_XEN
config BR2_PACKAGE_XEN_HYPERVISOR
bool "Xen hypervisor"
help
The Xen binaries are available in /usr/lib/xen/ See
http://wiki.xenproject.org/wiki/Getting_Started for using
the Xen hypervisor.
config BR2_PACKAGE_XEN_TOOLS
bool "Xen tools"
depends on !BR2_STATIC_LIBS # dtc (libfdt)
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_USE_WCHAR # libglib2
select BR2_PACKAGE_DTC
select BR2_PACKAGE_LIBAIO
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_PIXMAN
select BR2_PACKAGE_SLIRP
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBUUID
select BR2_PACKAGE_UTIL_LINUX_BINARIES # runtime (prlimit)
select BR2_PACKAGE_YAJL
select BR2_PACKAGE_ARGP_STANDALONE if !BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_BASH # runtime (scripts)
select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS if BR2_PACKAGE_BUSYBOX # bash
select BR2_PACKAGE_COREUTILS # runtime (stat)
select BR2_PACKAGE_QEMU_XEN
help
The Xen tools can be accessed by the xl command.
comment "xen tools need a toolchain w/ wchar, threads, dynamic library"
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS
source "package/qemu-xen/Config.in"
endif