Pino Toscano
2019-Sep-05 08:47 UTC
[Libguestfs] [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
Pino Toscano
2019-Sep-05 08:47 UTC
[Libguestfs] [PATCH 1/1] ocaml: make const the return value of caml_named_value()
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
Richard W.M. Jones
2019-Sep-05 09:01 UTC
Re: [Libguestfs] [PATCH 1/1] ocaml: make const the return value of caml_named_value()
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
Apparently Analagous Threads
- [PATCH] ocaml: Change calls to caml_named_value() to cope with const value* return.
- [PATCH 1/1] ocaml: make const the return value of caml_named_value()
- [PATCH 0/9] build: Require OCaml >= 4.02.
- [PATCH 0/5] Miscellaneous refactoring of common/utils, create common/mltools
- [PATCH] build: build C sources using OCaml API with CAML_NAME_SPACE