summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKurt Bodiker <kurt.bodiker@braintrust-us.com>2018-05-01 10:05:29 -0400
committerBruce Ashfield <bruce.ashfield@windriver.com>2018-05-01 23:17:29 -0400
commite5cfb60540c88c92a56bea3417d54c6d9f9b5a98 (patch)
tree68460190611a04cdfb0e4a7bc45a98d0491c94ee
parent9f3e354bc360ee070777ce5245a12f5aaa669934 (diff)
downloadmeta-virtualization-e5cfb60540c88c92a56bea3417d54c6d9f9b5a98.tar.gz
xen: Mini-OS source code with make links target applied
Mini-OS is a tiny OS kernel distributed with the Xen Project Hypervisor sources. It is mainly used as operating system for stub domains that are used for Dom0 Disaggregation. The Mini-OS source tree is updated and released in coordination with Xen releases. The Mini-OS source tree and architecture-specific symbolic links are required for building the dependencies used to build Xen stubodmains. For convenience, the make links target was executed before packaging. Otherwise, this is a source package. The current build methods for Xen stubdomains require either a source archive which contains the Mini-OS source code or execution of a make target that will fetch the appropriate Mini-OS source tree from it's git repository. This recipe removes the mysticism of relating to the version of Mini-OS being used and it's origins and provides the flexibility to easily changes versions or patch as necessary. Signed-off-by: Kurt Bodiker <kurt.bodiker@braintrust-us.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-rw-r--r--recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch43
-rw-r--r--recipes-extended/xen/mini-os.inc28
-rw-r--r--recipes-extended/xen/mini-os_4.9.0.bb18
3 files changed, 89 insertions, 0 deletions
diff --git a/recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch b/recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch
new file mode 100644
index 00000000..a3745bda
--- /dev/null
+++ b/recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch
@@ -0,0 +1,43 @@
1From d991bdbc062248221511ecb795617c36b37e1d2e Mon Sep 17 00:00:00 2001
2From: Wei Liu <wei.liu2@citrix.com>
3Date: Wed, 9 Aug 2017 13:15:48 +0100
4Subject: [PATCH] lib/math.c: implement __udivmoddi4
5
6Some code compiled by gcc 7 requires this.
7
8Signed-off-by: Wei Liu <wei.liu2@citrix.com>
9Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
10---
11 lib/math.c | 10 ++++++++++
12 1 file changed, 10 insertions(+)
13
14diff --git a/lib/math.c b/lib/math.c
15index 561393e..b98cc1d 100644
16--- a/lib/math.c
17+++ b/lib/math.c
18@@ -6,6 +6,7 @@
19 * File: math.c
20 * Author: Rolf Neugebauer (neugebar@dcs.gla.ac.uk)
21 * Changes:
22+ * Implement __udivmoddi4 (Wei Liu <wei.liu2@citrix.com>)
23 *
24 * Date: Aug 2003
25 *
26@@ -397,6 +398,15 @@ __umoddi3(u_quad_t a, u_quad_t b)
27 }
28
29 /*
30+ * Returns the quotient and places remainder in r
31+ */
32+u_quad_t
33+__udivmoddi4(u_quad_t a, u_quad_t b, u_quad_t *r)
34+{
35+ return __qdivrem(a, b, r);
36+}
37+
38+/*
39 * From
40 * moddi3.c
41 */
42--
432.11.0
diff --git a/recipes-extended/xen/mini-os.inc b/recipes-extended/xen/mini-os.inc
new file mode 100644
index 00000000..61c27041
--- /dev/null
+++ b/recipes-extended/xen/mini-os.inc
@@ -0,0 +1,28 @@
1# Copyright (C) 2018 kebodiker <kurt.bodiker@braintrust-us.com>
2# Released under the MIT license (see COPYING.MIT for the terms)
3
4require stubdom.inc
5
6# clear this out to break dependency circle
7DEPENDS = ""
8
9do_configure() {
10 ${MAKE} -C ${WORKDIR}/mini-os links
11}
12
13# Nothing to configure or compile
14do_compile[noexec] = "1"
15
16# needed because this directory isn't typically part of a sysroot
17SYSROOT_DIRS += "${prefix}/mini-os"
18RDEPENDS_${PN}-dev = "perl"
19
20FILES_${PN}-dev = "\
21 ${prefix} \
22"
23
24do_install() {
25 install -d ${D}${prefix}/mini-os
26 cp -r -t ${D}${prefix}/mini-os ${S}/*
27 rm -rf ${D}${prefix}/mini-os/scripts
28}
diff --git a/recipes-extended/xen/mini-os_4.9.0.bb b/recipes-extended/xen/mini-os_4.9.0.bb
new file mode 100644
index 00000000..298bc8df
--- /dev/null
+++ b/recipes-extended/xen/mini-os_4.9.0.bb
@@ -0,0 +1,18 @@
1# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com>
2# Released under the MIT license (see COPYING.MIT for the terms)
3
4DESCRIPTION = "Mini-OS is a tiny OS kernel distributed with the Xen Project"
5HOMEPAGE = "https://wiki.xenproject.org/wiki/Mini-OS"
6LICENSE = "GPLv2"
7LIC_FILES_CHKSUM = "file://COPYING;md5=8a437231894440a8f7629caa372243d0"
8
9# git commit hash for tags: xen-RELEASE-4.9.0, xen-RELEASE-4.9.1, xen-RELEASE-4.9.2
10SRCREV_minios = "ca013fa9baf92f47469ba1f2e1aaa31c41d8a0bb"
11SRC_URI = "\
12 git://xenbits.xen.org/mini-os.git;protocol=git;nobranch=1;destsuffix=mini-os;name=minios \
13 file://mini-os_udivmoddi4-gcc7.patch \
14"
15S="${WORKDIR}/mini-os"
16B="${S}"
17
18require mini-os.inc