[PATCH 0/1] Build fix for future OCaml 4.09
This is a simple fix for building also with the upcoming OCaml 4.09, which has a slight API change in the C library. This does not cover embedded copies such as ocaml-augeas, and ocaml-libvirt, which are being fixed separately, and will then be synchronized. Pino Toscano (1): ocaml: make const the return value of caml_named_value() common/mlpcre/pcre-c.c | 2 +- common/mltools/uri-c.c | 2 +- common/mlvisit/visit-c.c | 2 +- generator/daemon.ml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) -- 2.21.0
With OCaml >= 4.09 caml_named_value() returns a const value *, so keep the constness to build also in this case. --- common/mlpcre/pcre-c.c | 2 +- common/mltools/uri-c.c | 2 +- common/mlvisit/visit-c.c | 2 +- generator/daemon.ml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/common/mlpcre/pcre-c.c b/common/mlpcre/pcre-c.c index be054a004..62a6dd5da 100644 --- a/common/mlpcre/pcre-c.c +++ b/common/mlpcre/pcre-c.c @@ -73,7 +73,7 @@ init (void) static void raise_pcre_error (const char *msg, int errcode) { - value *exn = caml_named_value ("PCRE.Error"); + const value *exn = caml_named_value ("PCRE.Error"); value args[2]; args[0] = caml_copy_string (msg); diff --git a/common/mltools/uri-c.c b/common/mltools/uri-c.c index 2a8837cd9..db6fe23fc 100644 --- a/common/mltools/uri-c.c +++ b/common/mltools/uri-c.c @@ -47,7 +47,7 @@ guestfs_int_mllib_parse_uri (value argv /* arg value, not an array! */) r = parse_uri (String_val (argv), &uri); if (r == -1) { - value *exn = caml_named_value ("URI.Parse_failed"); + const value *exn = caml_named_value ("URI.Parse_failed"); caml_raise (*exn); } diff --git a/common/mlvisit/visit-c.c b/common/mlvisit/visit-c.c index 7137c4998..804aabc9d 100644 --- a/common/mlvisit/visit-c.c +++ b/common/mlvisit/visit-c.c @@ -53,7 +53,7 @@ value guestfs_int_mllib_visit (value gv, value dirv, value fv) { CAMLparam3 (gv, dirv, fv); - value *visit_failure_exn; + const value *visit_failure_exn; guestfs_h *g = (guestfs_h *) (intptr_t) Int64_val (gv); struct visitor_function_wrapper_args args; /* The dir string could move around when we call the diff --git a/generator/daemon.ml b/generator/daemon.ml index a4e136aaa..b67c4d20b 100644 --- a/generator/daemon.ml +++ b/generator/daemon.ml @@ -746,7 +746,7 @@ let generate_daemon_caml_stubs () = let nr_args = List.length args_do_function in pr "{\n"; - pr " static value *cb = NULL;\n"; + pr " static const value *cb = NULL;\n"; pr " CAMLparam0 ();\n"; pr " CAMLlocal2 (v, retv);\n"; pr " CAMLlocalN (args, %d);\n" -- 2.21.0
On Thu, Sep 05, 2019 at 10:47:42AM +0200, Pino Toscano wrote:
With OCaml >= 4.09 caml_named_value() returns a const value *, so keep the constness to build also in this case. --- common/mlpcre/pcre-c.c | 2 +- common/mltools/uri-c.c | 2 +- common/mlvisit/visit-c.c | 2 +- generator/daemon.ml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/common/mlpcre/pcre-c.c b/common/mlpcre/pcre-c.c index be054a004..62a6dd5da 100644 --- a/common/mlpcre/pcre-c.c +++ b/common/mlpcre/pcre-c.c @@ -73,7 +73,7 @@ init (void) static void raise_pcre_error (const char *msg, int errcode) { - value *exn = caml_named_value ("PCRE.Error"); + const value *exn = caml_named_value ("PCRE.Error"); value args[2];
args[0] = caml_copy_string (msg); diff --git a/common/mltools/uri-c.c b/common/mltools/uri-c.c index 2a8837cd9..db6fe23fc 100644 --- a/common/mltools/uri-c.c +++ b/common/mltools/uri-c.c @@ -47,7 +47,7 @@ guestfs_int_mllib_parse_uri (value argv /* arg value, not an array! */)
r = parse_uri (String_val (argv), &uri); if (r == -1) { - value *exn = caml_named_value ("URI.Parse_failed"); + const value *exn = caml_named_value ("URI.Parse_failed");
In my version I got rid of the useless local variable. Rich.
caml_raise (*exn); }
diff --git a/common/mlvisit/visit-c.c b/common/mlvisit/visit-c.c index 7137c4998..804aabc9d 100644 --- a/common/mlvisit/visit-c.c +++ b/common/mlvisit/visit-c.c @@ -53,7 +53,7 @@ value guestfs_int_mllib_visit (value gv, value dirv, value fv) { CAMLparam3 (gv, dirv, fv); - value *visit_failure_exn; + const value *visit_failure_exn; guestfs_h *g = (guestfs_h *) (intptr_t) Int64_val (gv); struct visitor_function_wrapper_args args; /* The dir string could move around when we call the diff --git a/generator/daemon.ml b/generator/daemon.ml index a4e136aaa..b67c4d20b 100644 --- a/generator/daemon.ml +++ b/generator/daemon.ml @@ -746,7 +746,7 @@ let generate_daemon_caml_stubs () = let nr_args = List.length args_do_function in
pr "{\n"; - pr " static value *cb = NULL;\n"; + pr " static const value *cb = NULL;\n"; pr " CAMLparam0 ();\n"; pr " CAMLlocal2 (v, retv);\n"; pr " CAMLlocalN (args, %d);\n" -- 2.21.0
_______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://www.redhat.com/mailman/listinfo/libguestfs
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
participants (2)
-
Pino Toscano -
Richard W.M. Jones