[Libguestfs] [PATCH] build: build C sources using OCaml API with CAML_NAME_SPACE

Richard W.M. Jones rjones at redhat.com
Tue May 28 09:27:02 UTC 2019


On Tue, May 28, 2019 at 10:25:53AM +0200, Pino Toscano wrote:
> This way no non-namespaced OCaml C symbols are used, reducing the risk
> of clashes with other code.
> 
> The only exception is ocaml-augeas, which does not build with
> CAML_NAME_SPACE; it will be fixed upstream, and it affects only
> ocaml-augeas itself.
> ---
>  builder/Makefile.am           | 2 ++
>  common/mllibvirt/Makefile.am  | 1 +
>  common/mlpcre/Makefile.am     | 1 +
>  common/mlprogress/Makefile.am | 1 +
>  common/mltools/Makefile.am    | 1 +
>  common/mlutils/Makefile.am    | 1 +
>  common/mlvisit/Makefile.am    | 1 +
>  common/mlxml/Makefile.am      | 1 +
>  customize/Makefile.am         | 1 +
>  daemon/Makefile.am            | 2 ++
>  ocaml/Makefile.am             | 1 +
>  v2v/Makefile.am               | 2 ++
>  12 files changed, 15 insertions(+)
> 
> diff --git a/builder/Makefile.am b/builder/Makefile.am
> index b564fadd6..c7caec5cb 100644
> --- a/builder/Makefile.am
> +++ b/builder/Makefile.am
> @@ -135,6 +135,7 @@ bin_PROGRAMS += virt-builder virt-builder-repository
>  
>  virt_builder_SOURCES = $(SOURCES_C)
>  virt_builder_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I$(builddir) -I$(srcdir) \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> @@ -156,6 +157,7 @@ XOBJECTS = $(BOBJECTS:.cmo=.cmx)
>  
>  virt_builder_repository_SOURCES = $(REPOSITORY_SOURCES_C)
>  virt_builder_repository_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I$(builddir) -I$(srcdir) \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/common/mllibvirt/Makefile.am b/common/mllibvirt/Makefile.am
> index 12e046c35..181cb9c5c 100644
> --- a/common/mllibvirt/Makefile.am
> +++ b/common/mllibvirt/Makefile.am
> @@ -59,6 +59,7 @@ noinst_DATA = $(MLLIBVIRT_CMA)
>  
>  libmllibvirt_a_SOURCES = $(SOURCES_C)
>  libmllibvirt_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(shell $(OCAMLC) -where)
> diff --git a/common/mlpcre/Makefile.am b/common/mlpcre/Makefile.am
> index 6f04256da..1e0b7795c 100644
> --- a/common/mlpcre/Makefile.am
> +++ b/common/mlpcre/Makefile.am
> @@ -49,6 +49,7 @@ noinst_DATA = $(MLPCRE_CMA)
>  
>  libmlpcre_a_SOURCES = $(SOURCES_C)
>  libmlpcre_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/common/mlprogress/Makefile.am b/common/mlprogress/Makefile.am
> index 9c5ef9baf..d807f6cc8 100644
> --- a/common/mlprogress/Makefile.am
> +++ b/common/mlprogress/Makefile.am
> @@ -50,6 +50,7 @@ noinst_DATA = $(MLPROGRESS_CMA)
>  
>  libmlprogress_a_SOURCES = $(SOURCES_C)
>  libmlprogress_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/common/mltools/Makefile.am b/common/mltools/Makefile.am
> index ae78b84b7..ba8630033 100644
> --- a/common/mltools/Makefile.am
> +++ b/common/mltools/Makefile.am
> @@ -87,6 +87,7 @@ noinst_DATA = $(MLTOOLS_CMA)
>  
>  libmltools_a_SOURCES = $(SOURCES_C)
>  libmltools_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/common/mlutils/Makefile.am b/common/mlutils/Makefile.am
> index 45f401268..e86d7bb5f 100644
> --- a/common/mlutils/Makefile.am
> +++ b/common/mlutils/Makefile.am
> @@ -54,6 +54,7 @@ noinst_DATA = $(MLCUTILS_CMA)
>  # shouldn't be located under lib.  XXX
>  libmlcutils_a_SOURCES = $(SOURCES_C)
>  libmlcutils_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/common/mlvisit/Makefile.am b/common/mlvisit/Makefile.am
> index 53024a1b2..a07c2827d 100644
> --- a/common/mlvisit/Makefile.am
> +++ b/common/mlvisit/Makefile.am
> @@ -51,6 +51,7 @@ noinst_DATA = $(MLVISIT_CMA)
>  
>  libmlvisit_a_SOURCES = $(SOURCES_C)
>  libmlvisit_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/common/mlxml/Makefile.am b/common/mlxml/Makefile.am
> index 82ab803d1..e56b6fd54 100644
> --- a/common/mlxml/Makefile.am
> +++ b/common/mlxml/Makefile.am
> @@ -50,6 +50,7 @@ noinst_DATA = $(MLXML_CMA)
>  
>  libmlxml_a_SOURCES = $(SOURCES_C)
>  libmlxml_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/customize/Makefile.am b/customize/Makefile.am
> index 9c0012546..4c246b417 100644
> --- a/customize/Makefile.am
> +++ b/customize/Makefile.am
> @@ -92,6 +92,7 @@ noinst_DATA = $(CUSTOMIZE_CMA)
>  
>  libcustomize_a_SOURCES = $(SOURCES_C)
>  libcustomize_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \
> diff --git a/daemon/Makefile.am b/daemon/Makefile.am
> index 5d1c222db..49dbf1998 100644
> --- a/daemon/Makefile.am
> +++ b/daemon/Makefile.am
> @@ -239,6 +239,7 @@ guestfsd_LDADD = \
>  	$(OCAML_LIBS)
>  
>  guestfsd_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I$(shell $(OCAMLC) -where) \
>  	-I$(shell $(OCAMLC) -where)/hivex \
>  	-I$(top_srcdir)/gnulib/lib \
> @@ -398,6 +399,7 @@ daemon_utils_tests_SOURCES = \
>  	utils.c \
>  	utils-c.c
>  daemon_utils_tests_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(shell $(OCAMLC) -where) \
> diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am
> index 4d13eed97..b31e8fc65 100644
> --- a/ocaml/Makefile.am
> +++ b/ocaml/Makefile.am
> @@ -78,6 +78,7 @@ endif
>  	touch $@
>  
>  libguestfsocaml_a_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-DGUESTFS_PRIVATE=1 \
>  	-I$(top_builddir) -I$(OCAMLLIB) -I$(top_srcdir)/ocaml \
>  	-I$(top_srcdir)/common/utils -I$(top_builddir)/common/utils \
> diff --git a/v2v/Makefile.am b/v2v/Makefile.am
> index b5761ef46..277b95c31 100644
> --- a/v2v/Makefile.am
> +++ b/v2v/Makefile.am
> @@ -179,6 +179,7 @@ bin_PROGRAMS = virt-v2v virt-v2v-copy-to-local
>  
>  virt_v2v_SOURCES = $(SOURCES_C)
>  virt_v2v_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(shell $(OCAMLC) -where) \
> @@ -254,6 +255,7 @@ virt_v2v_LINK = \
>  virt_v2v_copy_to_local_SOURCES = \
>  	dummy.c
>  virt_v2v_copy_to_local_CPPFLAGS = \
> +	-DCAML_NAME_SPACE \
>  	-I. \
>  	-I$(top_builddir) \
>  	-I$(shell $(OCAMLC) -where) \

ACK, thanks.

Rich.

-- 
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




More information about the Libguestfs mailing list