diff options
author | Kurt Bodiker <kurt.bodiker@braintrust-us.com> | 2018-05-01 10:05:29 -0400 |
---|---|---|
committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2018-05-01 23:17:29 -0400 |
commit | e5cfb60540c88c92a56bea3417d54c6d9f9b5a98 (patch) | |
tree | 68460190611a04cdfb0e4a7bc45a98d0491c94ee /recipes-extended/xen | |
parent | 9f3e354bc360ee070777ce5245a12f5aaa669934 (diff) | |
download | meta-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>
Diffstat (limited to 'recipes-extended/xen')
-rw-r--r-- | recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch | 43 | ||||
-rw-r--r-- | recipes-extended/xen/mini-os.inc | 28 | ||||
-rw-r--r-- | recipes-extended/xen/mini-os_4.9.0.bb | 18 |
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 @@ | |||
1 | From d991bdbc062248221511ecb795617c36b37e1d2e Mon Sep 17 00:00:00 2001 | ||
2 | From: Wei Liu <wei.liu2@citrix.com> | ||
3 | Date: Wed, 9 Aug 2017 13:15:48 +0100 | ||
4 | Subject: [PATCH] lib/math.c: implement __udivmoddi4 | ||
5 | |||
6 | Some code compiled by gcc 7 requires this. | ||
7 | |||
8 | Signed-off-by: Wei Liu <wei.liu2@citrix.com> | ||
9 | Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> | ||
10 | --- | ||
11 | lib/math.c | 10 ++++++++++ | ||
12 | 1 file changed, 10 insertions(+) | ||
13 | |||
14 | diff --git a/lib/math.c b/lib/math.c | ||
15 | index 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 | -- | ||
43 | 2.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 | |||
4 | require stubdom.inc | ||
5 | |||
6 | # clear this out to break dependency circle | ||
7 | DEPENDS = "" | ||
8 | |||
9 | do_configure() { | ||
10 | ${MAKE} -C ${WORKDIR}/mini-os links | ||
11 | } | ||
12 | |||
13 | # Nothing to configure or compile | ||
14 | do_compile[noexec] = "1" | ||
15 | |||
16 | # needed because this directory isn't typically part of a sysroot | ||
17 | SYSROOT_DIRS += "${prefix}/mini-os" | ||
18 | RDEPENDS_${PN}-dev = "perl" | ||
19 | |||
20 | FILES_${PN}-dev = "\ | ||
21 | ${prefix} \ | ||
22 | " | ||
23 | |||
24 | do_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 | |||
4 | DESCRIPTION = "Mini-OS is a tiny OS kernel distributed with the Xen Project" | ||
5 | HOMEPAGE = "https://wiki.xenproject.org/wiki/Mini-OS" | ||
6 | LICENSE = "GPLv2" | ||
7 | LIC_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 | ||
10 | SRCREV_minios = "ca013fa9baf92f47469ba1f2e1aaa31c41d8a0bb" | ||
11 | SRC_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 | " | ||
15 | S="${WORKDIR}/mini-os" | ||
16 | B="${S}" | ||
17 | |||
18 | require mini-os.inc | ||