From: Hans van Kranenburg Date: Mon, 13 Dec 2021 17:59:31 +0000 (+0100) Subject: debian: No longer build for i386 X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~35 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e982ff3f42c42fc1411819cca422e5218ddd2fea;p=xen.git debian: No longer build for i386 It was already not possible to use x86_32 hardware because the i386 packages already shipped a 64-bit hypervisor and PV shim. Running 32-bit utils with a 64-bit hypervisor requires using a compatibility layer that is fragile and becomes harder to maintain and test upstream. The libc6-xen package is not being built any more, and 32-bit PV support also has been removed from the Linux kernel now. This change ends the 'grace period' in which users should have moved to using a fully 64-bit dom0. As a result the only reverse dependency for the libc6-xen package in Debian is also removed, so this also (Closes: #992909) in the process. Signed-off-by: Hans van Kranenburg --- diff --git a/debian/control b/debian/control index aec3821985..33af344d92 100644 --- a/debian/control +++ b/debian/control @@ -15,11 +15,11 @@ Build-Depends: python3-dev:any, libpython3-dev, dh-python, - bcc [i386 amd64], - gcc-multilib [i386 amd64], + bcc [amd64], + gcc-multilib [amd64], e2fslibs-dev, iasl, - seabios (>= 1.7.4-2~) [i386 amd64], + seabios (>= 1.7.4-2~) [amd64], libaio-dev, libfdt-dev [armhf arm64], libglib2.0-dev, @@ -39,7 +39,7 @@ Vcs-Browser: https://salsa.debian.org/xen-team/debian-xen Vcs-Git: https://salsa.debian.org/xen-team/debian-xen.git Package: xenstore-utils -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Section: admin Depends: ${shlibs:Depends}, ${misc:Depends} Replaces: xen-utils-common (<= 4.11.1~pre+1.733450b39b-1~) @@ -60,7 +60,7 @@ Description: Xenstore command line utilities for Xen Package: xen-utils-common Section: admin -Architecture: amd64 i386 armhf arm64 +Architecture: amd64 armhf arm64 Depends: lsb-base, udev, xenstore-utils, ${shlibs:Depends}, ${python3:Depends}, ${misc:Depends} Suggests: xen-doc @@ -86,7 +86,7 @@ Description: Xen Hypervisor - common files Package: xen-doc Section: doc -Architecture: amd64 i386 armhf arm64 +Architecture: amd64 armhf arm64 Depends: ${misc:Depends} Description: XEN documentation Documentation for the Xen hypervisor and surrounding software, @@ -99,21 +99,21 @@ Description: XEN documentation Package: xen-utils-4.16 Section: admin -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Provides: xen-utils Depends: ${shlibs:Depends}, ${misc:Depends}, python3, xen-utils-common (>= ${source:Version}) -Recommends: bridge-utils, libc6-xen [i386], xen-hypervisor-4.16, qemu-system-x86, grub-xen-host [i386 amd64] -Suggests: qemu-utils [i386 amd64], seabios [i386 amd64], ovmf +Recommends: bridge-utils, xen-hypervisor-4.16, qemu-system-x86, grub-xen-host [amd64] +Suggests: qemu-utils [amd64], seabios [amd64], ovmf Description: XEN administrative tools The userspace tools to manage a system virtualized through the XEN virtual machine monitor. . - qemu-utils and seabios are neded for "Xen HVM" (amd64 and i386) + qemu-utils and seabios are neded for "Xen HVM" (amd64) Built-Using: ${misc:Built-Using} Package: xen-hypervisor-4.16-amd64 Section: kernel -Architecture: amd64 i386 +Architecture: amd64 Provides: xen-hypervisor, xen-hypervisor-4.16, xen-hypervisor-amd64 Depends: ${misc:Depends} Recommends: xen-utils-4.16, xen-hypervisor-common @@ -128,7 +128,7 @@ Description: Xen Hypervisor on AMD64 Package: xen-system-amd64 Section: admin -Architecture: amd64 i386 +Architecture: amd64 Provides: xen-system Depends: xen-hypervisor-4.16-amd64, xen-hypervisor-common, xen-utils-4.16, ${misc:Depends} Description: Xen System on AMD64 (metapackage) @@ -185,7 +185,7 @@ Description: Xen System on ARMHF (metapackage) Package: libxen-dev Section: libdevel -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends}, libxenmisc4.16 (= ${binary:Version}), libxencall1 (= ${binary:Version}), @@ -213,7 +213,7 @@ Description: Public headers and libs for Xen Package: libxenmisc4.16 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - miscellaneous, versioned ABI Shared libraries for Xen utilities. @@ -224,7 +224,7 @@ Multi-Arch: same Package: libxencall1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime library - libxencall Shared library for Xen utilities. @@ -232,7 +232,7 @@ Multi-Arch: same Package: libxendevicemodel1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - libxendevicemodel Shared library for Xen utilities. @@ -240,7 +240,7 @@ Multi-Arch: same Package: libxenevtchn1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - libxenevtchn Shared library for Xen utilities. @@ -248,7 +248,7 @@ Multi-Arch: same Package: libxenforeignmemory1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - libxenforeignmemory Shared library for Xen utilities. @@ -256,7 +256,7 @@ Multi-Arch: same Package: libxengnttab1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - libxengnttab Shared library for Xen utilities. @@ -264,7 +264,7 @@ Multi-Arch: same Package: libxenstore4 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - libxenstore Shared library for Xen utilities. @@ -272,7 +272,7 @@ Multi-Arch: same Package: libxentoolcore1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - libxentoolcore Shared library for Xen utilities. @@ -280,7 +280,7 @@ Multi-Arch: same Package: libxentoollog1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime libraries - libxentoollog Shared library for Xen utilities. @@ -288,7 +288,7 @@ Multi-Arch: same Package: libxenhypfs1 Section: libs -Architecture: amd64 arm64 armhf i386 +Architecture: amd64 arm64 armhf Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xen runtime library - libxenhypfs Shared library for Xen utilities. diff --git a/debian/rules b/debian/rules index 33759effa2..9e2626b582 100755 --- a/debian/rules +++ b/debian/rules @@ -30,9 +30,7 @@ dbmo= DEB_BUILD_MAINT_OPTIONS="hardening=+all reproducible=+fixfilepath" # # We need to explicitly specify the architecture because the Xen # upstream build system likes to use `uname' which can produce wrong -# answers it other-bitness chroots, and because we need to build a -# 64-bit hypervisor even on i386 (since there is no 32-bit hypervisor -# anymore). +# answers in other-bitness chroots. # Also there is terminological confusion. The DEB_* variables follow # GNU GCC terminology: @@ -47,12 +45,10 @@ include /usr/share/dpkg/architecture.mk # Debian nor GNU names. flavour_amd64 = amd64 -flavour_i386 = amd64 flavour_armhf = armhf flavour_arm64 = arm64 xen_arch_amd64 = x86_64 -xen_arch_i386 = x86_32 xen_arch_armhf = arm32 xen_arch_arm64 = arm64 @@ -220,16 +216,14 @@ override_dh_auto_configure: # tools/firmware/xen-dir is the `shim' used for booting PV guests # in an HVM container, for security (particularly, for meltdown/spectre -# mitigation). It's actually a hypervisor. On i386 it is not built -# by `make tools' because run that with XEN_COMPILE_ARCH=x86_32 which -# is no longer a supported hypervisor architecture. And we want to -# build it with $(make_args_xen) not $(make_args_tools). So do it -# separately. +# mitigation). It's actually a hypervisor. It's only built for amd64. +# Since we want to build it with $(make_args_xen) not $(make_args_tools), +# do it separately. override_dh_auto_build: $(MAKE) $(make_args_xen) xen $(MAKE) $(make_args_tools) tools docs CONFIG_PV_SHIM=n case $(flavour) in \ - amd64|i386) \ + amd64) \ $(MAKE) $(make_args_xen) -C tools/firmware/xen-dir ;; \ esac touch debian/xen-tools-built.stamp @@ -244,8 +238,7 @@ override_dh_auto_install: $(TEMPLATED_FILES) install-{tools,docs} CONFIG_PV_SHIM=n : @# shim install target needs to be run separately because we - @# need to pass it the make_args_xen settings, in particular - @# on i386 bwe need to pass x86_64 here to actually build it. + @# need to pass it the make_args_xen settings. @# Luckily this target, unlike the build, is a noop on @# shimless arches, so it does not need to be conditional. $(MAKE) $(make_args_xen) DESTDIR=$t $(make_args_xen) \ diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml index 95e9d0d98b..85089abfd3 100644 --- a/debian/salsa-ci.yml +++ b/debian/salsa-ci.yml @@ -26,3 +26,5 @@ variables: SALSA_CI_REPROTEST_ENABLE_DIFFOSCOPE: 1 + # We do not provide packages for i386 + SALSA_CI_DISABLE_BUILD_PACKAGE_I386: 1 diff --git a/debian/xen-utils-V.install.vsn-in b/debian/xen-utils-V.install.vsn-in index d8a552cb97..da04b59d42 100644 --- a/debian/xen-utils-V.install.vsn-in +++ b/debian/xen-utils-V.install.vsn-in @@ -1,7 +1,7 @@ usr/lib/xen-@version@/bin usr/lib/xen-@version@/lib/python -? flavour = amd64 | i386 +? flavour = amd64 usr/lib/xen-@version@/boot usr/lib/debug/usr/lib/xen-*/boot/* usr/lib/debug/xen-syms-@version@-shim # ^ Yes, the upstream build system really does install the shim symbols