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

Pino Toscano ptoscano at redhat.com
Tue May 28 08:25:53 UTC 2019


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) \
-- 
2.21.0




More information about the Libguestfs mailing list