Skip to content

Commit

Permalink
Merge pull request mirage#191 from djs55/xen-io-page
Browse files Browse the repository at this point in the history
xen: link against io-page-xen again
  • Loading branch information
djs55 committed Jun 16, 2017
2 parents dfc39cf + cec0a1e commit afb4aab
Show file tree
Hide file tree
Showing 12 changed files with 65 additions and 56 deletions.
20 changes: 20 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
## 3.0.3 (2017-06-16)
* xen: we need io-page-xen because
- mirage-xen depends on xen-gnt (for suspend/resume callbacks)
- xen-gnt depends on io-page (to represent the types of page mappings)
- io-page needs either io-page-unix or io-page-xen. We can't hardcode
a dependency because it needs to be different on Unix / Xen / Solo5.
In future we could break the link by adding some kind of `pre suspend`
`post resume` callback mechanism and then remove the `xen-gnt` dependency.

* unix: we need io-page-unix because
- mirage-types-lwt is in the `common` set linked into all Unikernels by
the `mirage` tool
- mirage-types-lwt depends on `mirage-block-lwt` and `mirage-net-lwt`
- mirage-block-lwt depends on io-page
- io-page needs either io-page-unix or io-page-xen. We can't hardcode
a dependency because it needs to be different on Unix / Xen / Solo5
In future we could break the link by rethinking the alignment requirements
of the interfaces. Perhaps FLOW could be unaligned but raw NETIF
and BLOCKIF aligned?

## 3.0.2 (2017-06-16)
* Remove dependency on io-page. Note this changes the exposed interface
of the console and xenstore rings to be Cstruct.ts
Expand Down
1 change: 1 addition & 0 deletions mirage-unix.opam
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ depends: [
"shared-memory-ring" {>= "1.0.0"}
"mirage-profile" {>= "0.3"}
"logs"
"io-page-unix" {>= "2.0.0"}
]
available: [ocaml-version >= "4.01.0"]
tags: "org:mirage"
1 change: 1 addition & 0 deletions mirage-xen.opam
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ depends: [
"conf-pkg-config"
"mirage-profile" {>= "0.3"}
"mirage-xen-ocaml" {>= "2.6.0"}
"io-page-xen" {>= "2.0.0"}
"logs"
]
available: [ ocaml-version >= "4.01.0" & os = "linux" ]
2 changes: 1 addition & 1 deletion unix/_oasis
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ Library "OS"
Findlibname: mirage-unix
Pack: true
Modules: Env, Lifecycle, Main, Time
BuildDepends: cstruct, lwt, lwt.unix, mirage-clock-unix, logs
BuildDepends: io-page-unix, cstruct, lwt, lwt.unix, mirage-clock-unix, logs
3 changes: 2 additions & 1 deletion unix/_tags
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: f0b588c44230b2d6e3d8d383a2cbe882)
# DO NOT EDIT (digest: f0f70e45920c441c7a80f558eea0e09a)
# Ignore VCS directories, you can use the same kind of rule outside
# OASIS_START/STOP if you want to exclude directories that contains
# useless stuff for the build process
Expand All @@ -21,6 +21,7 @@ true: annot, bin_annot
"lib/main.cmx": for-pack(OS)
"lib/time.cmx": for-pack(OS)
<lib/*.ml{,i,y}>: pkg_cstruct
<lib/*.ml{,i,y}>: pkg_io-page-unix
<lib/*.ml{,i,y}>: pkg_logs
<lib/*.ml{,i,y}>: pkg_lwt
<lib/*.ml{,i,y}>: pkg_lwt.unix
Expand Down
4 changes: 2 additions & 2 deletions unix/lib/META
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# OASIS_START
# DO NOT EDIT (digest: fe6410c8e8c9d279c2e7a83b749ea874)
# DO NOT EDIT (digest: 271136f2e8d0cc199914d686aeb2315c)
version = "3.0.1"
description = "Library support for the Mirage/Unix backend"
requires = "cstruct lwt lwt.unix mirage-clock-unix logs"
requires = "io-page-unix cstruct lwt lwt.unix mirage-clock-unix logs"
archive(byte) = "OS.cma"
archive(byte, plugin) = "OS.cma"
archive(native) = "OS.cmxa"
Expand Down
20 changes: 7 additions & 13 deletions unix/myocamlbuild.ml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
(* OASIS_START *)
(* DO NOT EDIT (digest: 3522b494e2ffb1d9f2067af1ecbf387d) *)
(* DO NOT EDIT (digest: 6138eb169b7fd3d38bdc7b1f857e15c6) *)
module OASISGettext = struct
(* # 22 "src/oasis/OASISGettext.ml" *)

Expand Down Expand Up @@ -105,10 +105,7 @@ module OASISString = struct
ok := false;
incr str_idx
done;
if !what_idx = String.length what then
true
else
false
!what_idx = String.length what


let strip_starts_with ~what str =
Expand All @@ -131,10 +128,7 @@ module OASISString = struct
ok := false;
decr str_idx
done;
if !what_idx = -1 then
true
else
false
!what_idx = -1


let strip_ends_with ~what str =
Expand Down Expand Up @@ -440,7 +434,7 @@ module OASISExpr = struct
end


# 443 "myocamlbuild.ml"
# 437 "myocamlbuild.ml"
module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *)

Expand Down Expand Up @@ -520,7 +514,7 @@ module BaseEnvLight = struct
end


# 523 "myocamlbuild.ml"
# 517 "myocamlbuild.ml"
module MyOCamlbuildFindlib = struct
(* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)

Expand Down Expand Up @@ -881,7 +875,7 @@ module MyOCamlbuildBase = struct
end


# 884 "myocamlbuild.ml"
# 878 "myocamlbuild.ml"
open Ocamlbuild_plugin;;
let package_default =
{
Expand All @@ -896,6 +890,6 @@ let conf = {MyOCamlbuildFindlib.no_automatic_syntax = false}

let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;;

# 900 "myocamlbuild.ml"
# 894 "myocamlbuild.ml"
(* OASIS_STOP *)
Ocamlbuild_plugin.dispatch dispatch_default;;
55 changes: 23 additions & 32 deletions unix/setup.ml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
(* setup.ml generated for the first time by OASIS v0.4.5 *)

(* OASIS_START *)
(* DO NOT EDIT (digest: ac2748ec9b7df66f01cb220c6b7a6762) *)
(* DO NOT EDIT (digest: 7bf57d817e6093d442eaaf761dcbbe26) *)
(*
Regenerated by OASIS v0.4.8
Regenerated by OASIS v0.4.10
Visit http://oasis.forge.ocamlcore.org for more information and
documentation about functions used in this file.
*)
Expand Down Expand Up @@ -112,10 +112,7 @@ module OASISString = struct
ok := false;
incr str_idx
done;
if !what_idx = String.length what then
true
else
false
!what_idx = String.length what


let strip_starts_with ~what str =
Expand All @@ -138,10 +135,7 @@ module OASISString = struct
ok := false;
decr str_idx
done;
if !what_idx = -1 then
true
else
false
!what_idx = -1


let strip_ends_with ~what str =
Expand Down Expand Up @@ -3162,7 +3156,7 @@ module OASISFileUtil = struct
end


# 3165 "setup.ml"
# 3159 "setup.ml"
module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *)

Expand Down Expand Up @@ -3242,7 +3236,7 @@ module BaseEnvLight = struct
end


# 3245 "setup.ml"
# 3239 "setup.ml"
module BaseContext = struct
(* # 22 "src/base/BaseContext.ml" *)

Expand Down Expand Up @@ -5665,7 +5659,7 @@ module BaseCompat = struct
end


# 5668 "setup.ml"
# 5662 "setup.ml"
module InternalConfigurePlugin = struct
(* # 22 "src/plugins/internal/InternalConfigurePlugin.ml" *)

Expand Down Expand Up @@ -6016,17 +6010,14 @@ module InternalInstallPlugin = struct

let install =

let in_destdir =
let in_destdir fn =
try
let destdir =
destdir ()
in
(* Practically speaking destdir is prepended
* at the beginning of the target filename
*)
fun fn -> destdir^fn
(* Practically speaking destdir is prepended at the beginning of the
target filename
*)
(destdir ())^fn
with PropList.Not_set _ ->
fun fn -> fn
fn
in

let install_file ~ctxt ?(prepend_destdir=true) ?tgt_fn src_file envdir =
Expand Down Expand Up @@ -6471,7 +6462,7 @@ module InternalInstallPlugin = struct
end


# 6474 "setup.ml"
# 6465 "setup.ml"
module OCamlbuildCommon = struct
(* # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" *)

Expand Down Expand Up @@ -6828,11 +6819,10 @@ module OCamlbuildDocPlugin = struct
run_ocamlbuild ~ctxt (index_html :: run.extra_args) argv;
List.iter
(fun glb ->
BaseBuilt.register
~ctxt
BaseBuilt.BDoc
cs.cs_name
[OASISFileUtil.glob ~ctxt (Filename.concat tgt_dir glb)])
match OASISFileUtil.glob ~ctxt (Filename.concat tgt_dir glb) with
| (_ :: _) as filenames ->
BaseBuilt.register ~ctxt BaseBuilt.BDoc cs.cs_name [filenames]
| [] -> ())
["*.html"; "*.css"]


Expand All @@ -6844,7 +6834,7 @@ module OCamlbuildDocPlugin = struct
end


# 6847 "setup.ml"
# 6837 "setup.ml"
open OASISTypes;;

let setup_t =
Expand Down Expand Up @@ -6910,6 +6900,7 @@ let setup_t =
bs_compiled_object = Best;
bs_build_depends =
[
FindlibPackage ("io-page-unix", None);
FindlibPackage ("cstruct", None);
FindlibPackage ("lwt", None);
FindlibPackage ("lwt.unix", None);
Expand Down Expand Up @@ -7087,16 +7078,16 @@ let setup_t =
plugin_data = []
};
oasis_fn = Some "_oasis";
oasis_version = "0.4.8";
oasis_digest = Some "&\rJY\244s\160\251g\136\015\177\143\144|\143";
oasis_version = "0.4.10";
oasis_digest = Some "\165\127\226\247\142\146;AR\204\017\239\156np\016";
oasis_exec = None;
oasis_setup_args = [];
setup_update = false
};;

let setup () = BaseSetup.setup setup_t;;

# 7100 "setup.ml"
# 7091 "setup.ml"
let setup_t = BaseCompat.Compat_0_4.adapt_setup_t setup_t
open BaseCompat.Compat_0_4
(* OASIS_STOP *)
Expand Down
2 changes: 1 addition & 1 deletion xen/_oasis
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ Library "OS"
BuildDepends: lwt,cstruct,xen-evtchn,xen-gnt,xenstore.client,
shared-memory-ring,shared-memory-ring-lwt,
mirage-clock-freestanding,
mirage-profile,logs
io-page-xen,mirage-profile,logs
3 changes: 2 additions & 1 deletion xen/_tags
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: 181b6989d68d0f09b6cf08af34ae5c2c)
# DO NOT EDIT (digest: 83f5784d1d166bb4f2989f4f1df0f834)
# Ignore VCS directories, you can use the same kind of rule outside
# OASIS_START/STOP if you want to exclude directories that contains
# useless stuff for the build process
Expand Down Expand Up @@ -28,6 +28,7 @@ true: annot, bin_annot
"lib/xenctrl.cmx": for-pack(OS)
"lib/xs.cmx": for-pack(OS)
<lib/*.ml{,i,y}>: pkg_cstruct
<lib/*.ml{,i,y}>: pkg_io-page-xen
<lib/*.ml{,i,y}>: pkg_logs
<lib/*.ml{,i,y}>: pkg_lwt
<lib/*.ml{,i,y}>: pkg_mirage-clock-freestanding
Expand Down
4 changes: 2 additions & 2 deletions xen/lib/META
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# OASIS_START
# DO NOT EDIT (digest: 5c32ebc9bc9aabbe48b44ab15344a354)
# DO NOT EDIT (digest: fcf953f84b87ace0b6daae5ed4962365)
version = "3.0.1"
description = "Library support for the Mirage/Xen backend"
requires =
"lwt cstruct xen-evtchn xen-gnt xenstore.client shared-memory-ring shared-memory-ring-lwt mirage-clock-freestanding mirage-profile logs"
"lwt cstruct xen-evtchn xen-gnt xenstore.client shared-memory-ring shared-memory-ring-lwt mirage-clock-freestanding io-page-xen mirage-profile logs"
archive(byte) = "OS.cma"
archive(byte, plugin) = "OS.cma"
archive(native) = "OS.cmxa"
Expand Down
6 changes: 3 additions & 3 deletions xen/setup.ml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(* setup.ml generated for the first time by OASIS v0.4.5 *)

(* OASIS_START *)
(* DO NOT EDIT (digest: a50cb3b17b739c06a6ed64e767e6f493) *)
(* DO NOT EDIT (digest: 65a6098bfe4df854b5083cd072b7e218) *)
(*
Regenerated by OASIS v0.4.10
Visit http://oasis.forge.ocamlcore.org for more information and
Expand Down Expand Up @@ -6908,6 +6908,7 @@ let setup_t =
FindlibPackage ("shared-memory-ring", None);
FindlibPackage ("shared-memory-ring-lwt", None);
FindlibPackage ("mirage-clock-freestanding", None);
FindlibPackage ("io-page-xen", None);
FindlibPackage ("mirage-profile", None);
FindlibPackage ("logs", None)
];
Expand Down Expand Up @@ -7096,8 +7097,7 @@ let setup_t =
};
oasis_fn = Some "_oasis";
oasis_version = "0.4.10";
oasis_digest =
Some "\194y\235a\128\005\138}\187\225\219H\187\030\173\206";
oasis_digest = Some "g\192y\203\249\161\218a\173\222\250\0164\239j\212";
oasis_exec = None;
oasis_setup_args = [];
setup_update = false
Expand Down

0 comments on commit afb4aab

Please sign in to comment.