diff -Nru xen-4.4.0/debian/changelog xen-4.4.0/debian/changelog --- xen-4.4.0/debian/changelog 2014-04-10 10:12:51.000000000 +0000 +++ xen-4.4.0/debian/changelog 2014-04-14 09:43:25.000000000 +0000 @@ -1,3 +1,10 @@ +xen (4.4.0-0ubuntu5) trusty; urgency=low + + * Minimal changes to make arm64 build. It produces packages, whatever + can be done with those is somebody elses problem. + + -- Stefan Bader Fri, 11 Apr 2014 15:12:47 +0200 + xen (4.4.0-0ubuntu4) trusty; urgency=low * Fix up some more stale 4.3 references in xen-utils-4.4 debian diff -Nru xen-4.4.0/debian/control xen-4.4.0/debian/control --- xen-4.4.0/debian/control 2014-04-08 16:15:54.000000000 +0000 +++ xen-4.4.0/debian/control 2014-04-11 13:57:28.000000000 +0000 @@ -5,32 +5,32 @@ XSBC-Original-Maintainer: Debian Xen Team Uploaders: Guido Trotter , Bastian Blank Standards-Version: 3.9.4 -Build-Depends: debhelper (>> 7), dpkg-dev (>= 1.16.0~), lsb-release, python-dev, bcc, gcc-multilib, e2fslibs-dev, iasl, ipxe-qemu, seabios, libaio-dev, libglib2.0-dev, libgnutls-dev, liblzma-dev, libncurses5-dev, libpci-dev, libyajl-dev, libssl-dev, pkg-config, uuid-dev, zlib1g-dev, ocaml-nox, dh-ocaml, ocaml-findlib, libfdt-dev [armhf] +Build-Depends: debhelper (>> 7), dpkg-dev (>= 1.16.0~), lsb-release, python-dev, bcc, gcc-multilib [!arm64], e2fslibs-dev, iasl, ipxe-qemu, seabios, libaio-dev, libglib2.0-dev, libgnutls-dev, liblzma-dev, libncurses5-dev, libpci-dev, libyajl-dev, libssl-dev, pkg-config, uuid-dev, zlib1g-dev, ocaml-nox, dh-ocaml, ocaml-findlib, libfdt-dev [armhf arm64] XS-Python-Version: current Package: libxen-4.4 -Architecture: amd64 i386 armhf +Architecture: amd64 i386 armhf arm64 Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} Description: Public libs for Xen This package contains the shared libraries for Xen. Package: libxenstore3.0 -Architecture: amd64 i386 armhf +Architecture: amd64 i386 armhf arm64 Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} Description: Xenstore communications library for Xen This package contains the public libxenstore. Package: libxen-dev -Architecture: amd64 i386 armhf +Architecture: amd64 i386 armhf arm64 Section: libdevel Depends: libxen-4.4 (= ${binary:Version}), libxenstore3.0 (= ${binary:Version}), ${misc:Depends} Description: Public headers and libs for Xen This package contains the public headers and static libraries for Xen. Package: xenstore-utils -Architecture: amd64 i386 armhf +Architecture: amd64 i386 armhf arm64 Section: admin Depends: ${shlibs:Depends}, ${misc:Depends} Replaces: xen-utils-common (<= 3.1.0-1) @@ -64,7 +64,7 @@ machine monitor. Package: xen-utils-4.4 -Architecture: amd64 i386 armhf +Architecture: amd64 i386 armhf arm64 Provides: xen-utils Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, xen-utils-common (>= ${source:Version}) Recommends: bridge-utils, libc6-xen [i386], xen-hypervisor-4.4, qemu-system-x86 [i386 amd64] @@ -117,6 +117,28 @@ This package depends on the latest Xen hypervisor for use on armhf and the Xen utils. +Package: xen-hypervisor-4.4-arm64 +Architecture: arm64 +Provides: xen-hypervisor, xen-hypervisor-4.4, xen-hypervisor-arm64 +Depends: ${misc:Depends} +Recommends: xen-utils-4.4 +Description: Xen Hypervisor on Arm64 + The hypervisor is the "core" for XEN itself. 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. + +Package: xen-system-arm64 +Architecture: arm64 +Provides: xen-system +Depends: xen-hypervisor-4.4-arm64, xen-utils-4.4, ${misc:Depends} +Description: Xen System on Arm64 (meta-package) + This package depends on the latest Xen hypervisor for use on armhf and the + Xen utils. + # # Transitional packages for upgrading # diff -Nru xen-4.4.0/debian/patches/series xen-4.4.0/debian/patches/series --- xen-4.4.0/debian/patches/series 2014-03-05 16:47:43.000000000 +0000 +++ xen-4.4.0/debian/patches/series 2014-04-11 13:57:51.000000000 +0000 @@ -87,3 +87,4 @@ # # Security fixes not in Debian, yet # +ubuntu-arm64-enablement.patch diff -Nru xen-4.4.0/debian/patches/ubuntu-arm64-enablement.patch xen-4.4.0/debian/patches/ubuntu-arm64-enablement.patch --- xen-4.4.0/debian/patches/ubuntu-arm64-enablement.patch 1970-01-01 00:00:00.000000000 +0000 +++ xen-4.4.0/debian/patches/ubuntu-arm64-enablement.patch 2014-04-11 14:34:25.000000000 +0000 @@ -0,0 +1,45 @@ +From: Stefan Bader +Date: Fri, 11 Apr 2014 16:31:44 +0200 +Subject: Enable build of arm64 / aarch64 + +Beside of packaging changes config.guess needed an update and a block +of defines seems to be already done in this file: + /usr/include/aarch64-linux-gnu/asm/ptrace.h +I am only testing one and skip the whole block, which could be done +better... + +Signed-off-by: Stefan Bader + +Index: xen-4.4.0/config.guess +=================================================================== +--- xen-4.4.0.orig/config.guess 2014-03-10 11:43:57.000000000 +0100 ++++ xen-4.4.0/config.guess 2014-04-11 15:58:25.787406117 +0200 +@@ -872,7 +872,7 @@ EOF + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; +- arm*:Linux:*:*) ++ arm*:Linux:*:*|aarch64:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ +Index: xen-4.4.0/xen/include/public/arch-arm.h +=================================================================== +--- xen-4.4.0.orig/xen/include/public/arch-arm.h 2014-03-10 11:43:57.000000000 +0100 ++++ xen-4.4.0/xen/include/public/arch-arm.h 2014-04-11 16:30:42.168872602 +0200 +@@ -342,6 +342,7 @@ typedef uint64_t xen_callback_t; + + /* 64 bit modes */ + #define PSR_MODE_BIT 0x10 /* Set iff AArch32 */ ++#ifndef PSR_MODE_EL3h /* Already defined in .../asm/ptrace. */ + #define PSR_MODE_EL3h 0x0d + #define PSR_MODE_EL3t 0x0c + #define PSR_MODE_EL2h 0x09 +@@ -349,6 +350,7 @@ typedef uint64_t xen_callback_t; + #define PSR_MODE_EL1h 0x05 + #define PSR_MODE_EL1t 0x04 + #define PSR_MODE_EL0t 0x00 ++#endif + + #define PSR_GUEST32_INIT (PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC) + #define PSR_GUEST64_INIT (PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_EL1h) diff -Nru xen-4.4.0/debian/rules.gen xen-4.4.0/debian/rules.gen --- xen-4.4.0/debian/rules.gen 2014-04-08 14:32:22.000000000 +0000 +++ xen-4.4.0/debian/rules.gen 2014-04-11 17:59:38.000000000 +0000 @@ -1,5 +1,5 @@ .NOTPARALLEL: -binary-arch: binary-arch_amd64 binary-arch_i386 binary-arch_armhf +binary-arch: binary-arch_amd64 binary-arch_i386 binary-arch_armhf binary-arch_arm64 binary-arch_amd64: binary-arch_amd64_none binary-arch_amd64_real binary-arch_amd64_none: binary-arch_amd64_none_amd64 binary-arch_amd64_none_real binary-arch_amd64_none_amd64:: binary-arch_amd64_none_amd64_real @@ -28,7 +28,7 @@ $(MAKE) -f debian/rules.real binary-arch-arch ARCH='i386' VERSION='4.4' XEN_ARCH='x86_32' binary-indep:: $(MAKE) -f debian/rules.real binary-indep VERSION='4.4' -build-arch: build-arch_amd64 build-arch_i386 build-arch_armhf +build-arch: build-arch_amd64 build-arch_i386 build-arch_armhf build-arch_arm64 build-arch_amd64: build-arch_amd64_none build-arch_amd64_real build-arch_amd64_none: build-arch_amd64_none_amd64 build-arch_amd64_none_real build-arch_amd64_none_amd64:: build-arch_amd64_none_amd64_real @@ -52,7 +52,7 @@ $(MAKE) -f debian/rules.real build-arch-arch ARCH='i386' VERSION='4.4' XEN_ARCH='x86_32' build-indep:: $(MAKE) -f debian/rules.real build-indep VERSION='4.4' -setup: setup_amd64 setup_i386 setup_armhf +setup: setup_amd64 setup_i386 setup_armhf setup_arm64 setup_amd64: setup_amd64_none setup_amd64_real setup_amd64_none: setup_amd64_none_amd64 setup_amd64_none_real setup_amd64_none_amd64:: setup_amd64_none_amd64_real @@ -104,3 +104,32 @@ setup_armhf_none_real: setup_armhf_real:: $(MAKE) -f debian/rules.real setup-arch ARCH='armhf' VERSION='4.4' XEN_ARCH='arm32' + +binary-arch_arm64: binary-arch_arm64_none binary-arch_arm64_real +binary-arch_arm64_none: binary-arch_arm64_none_arm64 binary-arch_arm64_none_real +binary-arch_arm64_none_arm64:: binary-arch_arm64_none_arm64_real +binary-arch_arm64_none_arm64:: + $(MAKE) -f debian/rules.real binary-arch-flavour ARCH='arm64' FEATURESET='none' FLAVOUR='arm64' VERSION='4.4' XEN_ARCH='arm64' + $(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-pxen-system-arm64' ARCH='arm64' FEATURESET='none' FLAVOUR='arm64' VERSION='4.4' XEN_ARCH='arm64' +binary-arch_arm64_none_arm64_real: +binary-arch_arm64_none_real: +binary-arch_arm64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ARCH='arm64' VERSION='4.4' XEN_ARCH='arm32' +build-arch_arm64: build-arch_arm64_none build-arch_arm64_real +build-arch_arm64_none: build-arch_arm64_none_arm64 build-arch_arm64_none_real +build-arch_arm64_none_arm64:: build-arch_arm64_none_arm64_real +build-arch_arm64_none_arm64:: + $(MAKE) -f debian/rules.real build-arch-flavour ARCH='arm64' FEATURESET='none' FLAVOUR='arm64' VERSION='4.4' XEN_ARCH='arm64' +build-arch_arm64_none_arm64_real: +build-arch_arm64_none_real: +build-arch_arm64_real:: + $(MAKE) -f debian/rules.real build-arch-arch ARCH='arm64' VERSION='4.4' XEN_ARCH='arm64' +setup_arm64: setup_arm64_none setup_arm64_real +setup_arm64_none: setup_arm64_none_arm64 setup_arm64_none_real +setup_arm64_none_arm64:: setup_arm64_none_arm64_real +setup_arm64_none_arm64:: + $(MAKE) -f debian/rules.real setup-flavour ARCH='arm64' FEATURESET='none' FLAVOUR='arm64' VERSION='4.4' XEN_ARCH='arm64' +setup_arm64_none_arm64_real: +setup_arm64_none_real: +setup_arm64_real:: + $(MAKE) -f debian/rules.real setup-arch ARCH='arm64' VERSION='4.4' XEN_ARCH='arm64' diff -Nru xen-4.4.0/debian/rules.real xen-4.4.0/debian/rules.real --- xen-4.4.0/debian/rules.real 2014-04-04 14:30:07.000000000 +0000 +++ xen-4.4.0/debian/rules.real 2014-04-11 18:01:26.000000000 +0000 @@ -17,7 +17,7 @@ binary-arch-arch: install-libxenstore_$(ARCH) binary-arch-arch: install-utils_$(ARCH) binary-arch-arch: install-xenstore-utils_$(ARCH) -ifneq ($(ARCH),armhf) +ifeq (,$(findstring $(ARCH),armhf arm64)) binary-arch-arch: install-lib-ocaml-dev_$(ARCH) binary-arch-arch: install-lib-ocaml_$(ARCH) endif @@ -105,7 +105,7 @@ @rm -rf $(INSTALL_DIR) mkdir -p $(INSTALL_DIR)/$(OCAML_DLL_DIR) +$(MAKE_CLEAN) -C $(DIR)/tools install DESTDIR=$(CURDIR)/$(INSTALL_DIR) $(CONFIG) -ifneq ($(ARCH),armhf) +ifeq (,$(findstring $(ARCH),armhf arm64)) # hvmloader strip --remove-section=.comment --remove-section=.note $(INSTALL_DIR)/usr/lib/xen*/boot/* endif @@ -151,7 +151,7 @@ dh_installdirs etc/default/grub.d install -D -m644 debian/xen-hypervisor-$(VERSION).xen.cfg \ debian/$(PACKAGE_NAME)/etc/default/grub.d/xen.cfg -ifneq ($(ARCH),armhf) +ifeq (,$(findstring $(ARCH),armhf arm64)) cp $(DIR)/xen/xen.gz debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR).gz else cp $(DIR)/xen/xen debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR)