--- a/rules.real 2024-12-27 18:42:23.000000000 -0800 +++ b/rules.real 2025-02-09 20:54:02.000000000 -0800 @@ -17,7 +17,7 @@ export CONFIG_TESTS=n export XEN_SYSTEMD_DIR export FLASK_POLICY=y -export DEBUG_XENPERF=n +export DEBUG_XENPERF=y export PANDOC= export FIG2DEV= export EFI_VENDOR=debian @@ -26,7 +26,7 @@ export backend_modules="xen-evtchn xen-gntdev xen-gntalloc xen-blkback xen-netback xen-pciback xen-privcmd" # adjust to rc & debug mode #export XEN_VENDORVERSION=3 -export SCMVER="8dd897e691194929-MISRA: Unmark Rules 1.1 and 2.1 as clean following Eclair upgrade-Tue 17 Dec 2024 14:01" +export SCMVER="4803a3c5b5f1f131bd8-xen/events: fix race with set_global_virq_handler-Tue 21 Jan 2025 00:21" # borrowed from the debian-qemu build export XTRACT_CONFIGS := $(shell sh debian/extract-config-opts \ @@ -54,6 +54,9 @@ endif binary-arch-arch: install-xenstore-utils_$(ARCH) binary-arch-flavour: ins-hyp_$(ARCH)_$(FLAVOUR) +ifeq ($(DEBUG_XENPERF),y) +binary-arch-flavour: ins-hyp_$(ARCH)_$(FLAVOUR)_PERF +endif binary-indep: install-utils-common @@ -65,14 +68,15 @@ ifeq ($(FLASK_POLICY),y) build-arch-flavour: $(STAMPS_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_XSM endif +build-indep: $(STAMPS_DIR)/build-docs ifeq ($(DEBUG_XENPERF),y) build-arch-flavour: $(STAMPS_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_PERF +setup-flavour: $(STAMPS_DIR)/su-hyp_$(ARCH)_$(FLAVOUR)_PERF +#binary-arch-flavour: ins-hyp_$(ARCH)_$(FLAVOUR)_PERF endif -build-indep: $(STAMPS_DIR)/build-docs setup-arch: $(STAMPS_DIR)/setup-utils_$(ARCH) setup-flavour: $(STAMPS_DIR)/su-hyp_$(ARCH)_$(FLAVOUR) -setup-flavour: $(STAMPS_DIR)/su-hyp_$(ARCH)_$(FLAVOUR)_PERF # these work after the first ./configure #ifneq ($@,) @@ -149,9 +153,9 @@ cp -al $(SOURCE_FILES) $(DIR) ifeq ($(FLASK_POLICY),y) sed -i -e '/EXTRAVER/ s/2-pre/1/' $(DIR)/xen/Makefile ; - sed -i -e '/^POLICY_LOADPATH =/ i POLICY_FILENAME = $$(FLASK_BUILD_DIR)/xenpolicy-4.19-xsm' $(DIR)/tools/flask/policy/Makefile.common + sed -i -e '/^POLICY_LOADPATH =/ i POLICY_FILENAME = $$(FLASK_BUILD_DIR)/xenpolicy-$(VERSION)-$(ARCH)-xsm' $(DIR)/tools/flask/policy/Makefile.common sed -i -e '/^CFLAGS/ s/-Werror/-fcf-protection=none -Wno-error/' $(DIR)/xen/Rules.mk ; - cp debian/xen_4.19_$(ARCH).config $(DIR)/xen/.config ; + cp debian/xen_$(VERSION)_$(ARCH).config $(DIR)/xen/.config ; ./debian/xen_flask_fix $(DIR)/xen ; echo "use custom assembly for flask" ; echo ${SCMVER} > $(DIR)/.scmversion @@ -159,7 +163,7 @@ cp --remove-destination /usr/share/misc/config.guess /usr/share/misc/config.sub $(DIR) ; for i in toolcore call hypfs devicemodel foreignmemory gnttab toollog store; do sed -i -e '/version\-script/d' $(DIR)/tools/libs/$$i/Makefile ;done sed -i -e '/pci))$$/ s|pci|x86_64-linux-gnu/pci|' $(DIR)/tools/qemu-xen-traditional/xen-hooks.mak ; \ - sed -i -e '/^POLICY_LOADPATH =/ i POLICY_FILENAME = $$(FLASK_BUILD_DIR)/xenpolicy-4.19-xsm' $(DIR)/tools/flask/policy/Makefile.common ; \ + sed -i -e '/^POLICY_LOADPATH =/ i POLICY_FILENAME = $$(FLASK_BUILD_DIR)/xenpolicy-$(VERSION)-$(ARCH)-xsm' $(DIR)/tools/flask/policy/Makefile.common ; \ sed -i -e '/^CFLAGS/ s/$$/ -fno-pie/' $(DIR)/tools/firmware/rombios/32bit/tcgbios/Makefile ; \ sed -i -e '/^CFLAGS/ s/$$/ -fno-pie/' $(DIR)/tools/firmware/rombios/32bit/Makefile ; \ sed -i -e '/PKG_CONFIG_PATH=/ s|tools\/pkg-config|..\/install-utils_amd64\/usr\/lib\/x86_64-linux-gnu\/pkgconfig|' $(DIR)/tools/Makefile ; \ @@ -327,10 +331,6 @@ ins-hyp_$(ARCH)_$(FLAVOUR): DIR_XSM = $(BUILD_DIR)/build-utils_$(ARCH) ins-hyp_$(ARCH)_$(FLAVOUR): $(STAMPS_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_XSM endif -ifeq ($(DEBUG_XENPERF),y) -ins-hyp_$(ARCH)_$(FLAVOUR): DIR_PERF = $(BUILD_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_PERF -ins-hyp_$(ARCH)_$(FLAVOUR): $(STAMPS_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_PERF -endif ins-hyp_$(ARCH)_$(FLAVOUR): $(STAMPS_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR) dh_testdir dh_testroot @@ -349,7 +349,7 @@ endif ifeq ($(FLASK_POLICY),y) dh_installdirs boot/flask - cp -p $(DIR_XSM)/xen/xsm/flask/xenpolicy-4.1* debian/$(PACKAGE_NAME)/boot/flask/xenpolicy-$(VERSION) + cp -p $(DIR_XSM)/xen/xsm/flask/xenpolicy-4.1* debian/$(PACKAGE_NAME)/boot/flask/xenpolicy-$(VERSION)-$(ARCH)-xsm cp -p $(DIR_XSM)/xen/.config debian/$(PACKAGE_NAME)/boot/kcfg/xen-$(VERSION)-xsm.config cp $(DIR_XSM)/xen/xen$(IMAGE_SUFFIX) debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR)-xsm$(IMAGE_SUFFIX) ifeq ($(ARCH),amd64) @@ -357,14 +357,6 @@ strip -s debian/$(PACKAGE_NAME)/boot/efi/EFI/$(EFI_VENDOR)/xen-$(VERSION)-$(FLAVOUR)-xsm.efi endif endif -ifeq ($(DEBUG_XENPERF),y) - cp -p $(DIR_PERF)/xen/.config debian/$(PACKAGE_NAME)/boot/kcfg/xen-$(VERSION)-perf.config - cp $(DIR_PERF)/xen/xen$(IMAGE_SUFFIX) debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR)-perf$(IMAGE_SUFFIX) -ifeq ($(ARCH),amd64) - cp $(DIR_XSM)/xen/xen.efi debian/$(PACKAGE_NAME)/boot/efi/EFI/$(EFI_VENDOR)/xen-$(VERSION)-$(FLAVOUR)-perf.efi - strip -s debian/$(PACKAGE_NAME)/boot/efi/EFI/$(EFI_VENDOR)/xen-$(VERSION)-$(FLAVOUR)-perf.efi -endif -endif cp -p $(DIR)/xen/.config debian/$(PACKAGE_NAME)/boot/kcfg/xen-$(VERSION).config cp $(DIR)/xen/xen$(IMAGE_SUFFIX) debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR)$(IMAGE_SUFFIX) if [ -d debian/$(PACKAGE_NAME)/usr/lib64/efi ]; then \ @@ -497,7 +489,7 @@ ( echo -n "misc:Built-Using="; dpkg-query -f='$${source:Package} (= $${source:Version}), ' -W ipxe-qemu seabios; echo ) >> debian/$(PACKAGE_NAME).substvars dh_strip -Xxen-shim -Xhvmloader dh_makeshlibs -V - dh_shlibdeps -l/usr/lib/xen-4.19/lib --dpkg-shlibdeps-params=--ignore-missing-info + dh_shlibdeps -l/usr/lib/xen-$(VERSION)/lib --dpkg-shlibdeps-params=--ignore-missing-info +$(MAKE_SELF) install-base @@ -523,7 +515,7 @@ dh_strip -Xqemu-xen dh_makeshlibs -V dh_shlibdeps - +$(MAKE_SELF) install-base GENCONTROL_ARGS=-v9.1.0+j1-1+deb12u4.2 + +$(MAKE_SELF) install-base GENCONTROL_ARGS=-v9.1.0+j1-1+deb12u4.4 install-qemut_$(ARCH): SOURCE_DIR = $(BUILD_DIR)/build-utils_$(ARCH) install-qemut_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH) @@ -549,7 +541,7 @@ dh_strip -Xppc -Xopenbios dh_makeshlibs -V dh_shlibdeps - +$(MAKE_SELF) install-base GENCONTROL_ARGS=-v0.10.2+j1-1+deb12u4.2 + +$(MAKE_SELF) install-base GENCONTROL_ARGS=-v0.10.2+j1-1+deb12u4.4 install-utils-common: SOURCE_DIR = $(BUILD_DIR)/build-docs install-utils-common: DIR = $(BUILD_DIR)/install-utils-common @@ -595,3 +587,22 @@ # vim: filetype=make +ins-hyp_$(ARCH)_$(FLAVOUR)_PERF: DIR = $(BUILD_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_PERF +ins-hyp_$(ARCH)_$(FLAVOUR)_PERF: PACKAGE_NAME = xen-perf-hypervisor-$(VERSION)-$(FLAVOUR) +ins-hyp_$(ARCH)_$(FLAVOUR)_PERF: DH_OPTIONS = -p$(PACKAGE_NAME) +ins-hyp_$(ARCH)_$(FLAVOUR)_PERF: DIR_PERF = $(BUILD_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_PERF +ins-hyp_$(ARCH)_$(FLAVOUR)_PERF: $(STAMPS_DIR)/bld-hyp_$(ARCH)_$(FLAVOUR)_PERF + dh_testdir + dh_testroot + dh_prep + echo $(DIR) + # FIXME: Think of better solution (grub used for other arches?) + dh_installdirs boot/kcfg + cp -p $(DIR_PERF)/xen/.config debian/$(PACKAGE_NAME)/boot/kcfg/xen-$(VERSION)-perf.config + cp $(DIR_PERF)/xen/xen$(IMAGE_SUFFIX) debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR)-perf$(IMAGE_SUFFIX) +ifeq ($(ARCH),amd64) + mkdir -p debian/$(PACKAGE_NAME)/boot/efi/EFI/$(EFI_VENDOR) + cp $(DIR_PERF)/xen/xen.efi debian/$(PACKAGE_NAME)/boot/efi/EFI/$(EFI_VENDOR)/xen-$(VERSION)-$(FLAVOUR)-perf.efi + strip -s debian/$(PACKAGE_NAME)/boot/efi/EFI/$(EFI_VENDOR)/xen-$(VERSION)-$(FLAVOUR)-perf.efi +endif + +$(MAKE_SELF) install-base // mods to debian/control Package: xen-perf-hypervisor-4.19-amd64 Architecture: amd64 Provides: xen-perf-hypervisor, xen-perf-hypervisor-4.19, xen-perf-hypervisor-amd64 Depends: ${misc:Depends} Recommends: xen-utils-4.19 Description: Xen Perf-Hypervisor on AMD64 The perf-hypervisor is for debug/perf. It gets booted by the boot loader and controls cpu and memory, sharing them between your administrative domain (Domain 0) and the virtual guest systems. . In order to boot a XEN system along with this package you also need a kernel specifically crafted to work as the Domain 0, mediating hardware access for XEN itself.