mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-01 21:23:51 -09:00
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>
58 lines
2.8 KiB
Makefile
58 lines
2.8 KiB
Makefile
################################################################################
|
|
#
|
|
# qemu-xen
|
|
#
|
|
################################################################################
|
|
|
|
# We do NOT use GIT_SUBMODULES = YES because qemu-xen has massive ROM
|
|
# submodules (edk2, u-boot, etc.) that are not needed for the Xen tools
|
|
# cross-build. Instead, we pre-populate only the required meson
|
|
# subprojects and remove .wrap files for the rest to prevent any network
|
|
# access during the build.
|
|
|
|
# Determined from Xen repo's hash for this repo @ XEN_VERSION
|
|
QEMU_XEN_VERSION = e064f42c80be6f6ff8c12dcb2a663bdf70f965f6
|
|
QEMU_XEN_SITE = https://xenbits.xen.org/git-http/qemu-xen.git
|
|
QEMU_XEN_SITE_METHOD = git
|
|
QEMU_XEN_LICENSE = GPL-2.0
|
|
QEMU_XEN_LICENSE_FILES = COPYING
|
|
QEMU_XEN_REDISTRIBUTE = NO
|
|
|
|
# Required meson subprojects for the QEMU build
|
|
QEMU_XEN_KEYCODEMAPDB_VERSION = f5772a62ec52591ff6870b7e8ef32482371f22c6
|
|
QEMU_XEN_SOFTFLOAT3_VERSION = b64af41c3276f97f0e181920400ee056b9c88037
|
|
QEMU_XEN_TESTFLOAT3_VERSION = e7af9751d9f9fd3b47911f51a5cfd08af256a9ab
|
|
|
|
QEMU_XEN_EXTRA_DOWNLOADS = \
|
|
https://gitlab.com/qemu-project/keycodemapdb/-/archive/$(QEMU_XEN_KEYCODEMAPDB_VERSION)/keycodemapdb-$(QEMU_XEN_KEYCODEMAPDB_VERSION).tar.gz \
|
|
https://gitlab.com/qemu-project/berkeley-softfloat-3/-/archive/$(QEMU_XEN_SOFTFLOAT3_VERSION)/berkeley-softfloat-3-$(QEMU_XEN_SOFTFLOAT3_VERSION).tar.gz \
|
|
https://gitlab.com/qemu-project/berkeley-testfloat-3/-/archive/$(QEMU_XEN_TESTFLOAT3_VERSION)/berkeley-testfloat-3-$(QEMU_XEN_TESTFLOAT3_VERSION).tar.gz
|
|
|
|
define QEMU_XEN_INSTALL_SUBPROJECTS
|
|
rm -rf $(@D)/subprojects/keycodemapdb
|
|
mkdir -p $(@D)/subprojects/keycodemapdb
|
|
$(TAR) --strip-components=1 -C $(@D)/subprojects/keycodemapdb \
|
|
-xf $(QEMU_XEN_DL_DIR)/keycodemapdb-$(QEMU_XEN_KEYCODEMAPDB_VERSION).tar.gz
|
|
rm -rf $(@D)/subprojects/berkeley-softfloat-3
|
|
mkdir -p $(@D)/subprojects/berkeley-softfloat-3
|
|
$(TAR) --strip-components=1 -C $(@D)/subprojects/berkeley-softfloat-3 \
|
|
-xf $(QEMU_XEN_DL_DIR)/berkeley-softfloat-3-$(QEMU_XEN_SOFTFLOAT3_VERSION).tar.gz
|
|
cp -f $(@D)/subprojects/packagefiles/berkeley-softfloat-3/* \
|
|
$(@D)/subprojects/berkeley-softfloat-3/
|
|
rm -rf $(@D)/subprojects/berkeley-testfloat-3
|
|
mkdir -p $(@D)/subprojects/berkeley-testfloat-3
|
|
$(TAR) --strip-components=1 -C $(@D)/subprojects/berkeley-testfloat-3 \
|
|
-xf $(QEMU_XEN_DL_DIR)/berkeley-testfloat-3-$(QEMU_XEN_TESTFLOAT3_VERSION).tar.gz
|
|
cp -f $(@D)/subprojects/packagefiles/berkeley-testfloat-3/* \
|
|
$(@D)/subprojects/berkeley-testfloat-3/
|
|
# Remove .wrap files for subprojects we do NOT pre-provide to prevent
|
|
# meson from attempting any network access during the build.
|
|
rm -f $(@D)/subprojects/dtc.wrap
|
|
rm -f $(@D)/subprojects/libblkio.wrap
|
|
rm -f $(@D)/subprojects/libvfio-user.wrap
|
|
rm -f $(@D)/subprojects/slirp.wrap
|
|
endef
|
|
QEMU_XEN_POST_EXTRACT_HOOKS += QEMU_XEN_INSTALL_SUBPROJECTS
|
|
|
|
$(eval $(generic-package))
|