diff mbox

[Xen-devel,v4,1/3] Move xenstore and libxc public headers to include subdir

Message ID alpine.DEB.2.02.1408071503430.2293@kaball.uk.xensource.com
State New
Headers show

Commit Message

Stefano Stabellini Aug. 7, 2014, 2:07 p.m. UTC
On Thu, 7 Aug 2014, Ian Jackson wrote:
> Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v4 1/3] Move xenstore and libxc public headers to include subdir"):
> > git://xenbits.xen.org/people/sstabellini/xen-unstable.git public_headers_v4
> 
> sed 's/@VERSION@/4.1/g' < META.in >META.new && mv -f META.new META
> mkdir -p /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1
> ocamlfind remove -destdir /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1 xenmmap
> ocamlfind: [WARNING] No such directory: /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap
> ocamlfind install -destdir /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1 -ldconf ignore xenmmap META xenmmap.cmi xenmmap.cma xenmmap.cmxa *.a *.so *.cmx
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/xenmmap.cmx
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/dllxenmmap_stubs.so
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/xenmmap.a
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/libxenmmap_stubs.a
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/xenmmap.cmxa
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/xenmmap.cma
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/xenmmap.cmi
> Installed /u/iwj/work/xen.git/dist/install/usr/local/lib/ocaml/3.12.1/xenmmap/META
> make[7]: Leaving directory `/u/iwj/work/xen.git/tools/ocaml/libs/mmap'
> make[6]: Leaving directory `/u/iwj/work/xen.git/tools/ocaml/libs'
> make[6]: Entering directory `/u/iwj/work/xen.git/tools/ocaml/libs'
> make -C xentoollog install
> make[6]: *** [subdir-install-xentoollog] Error 2
> make[6]: Leaving directory `/u/iwj/work/xen.git/tools/ocaml/libs'
> make[5]: *** [subdirs-install] Error 2
> make[5]: Leaving directory `/u/iwj/work/xen.git/tools/ocaml/libs'
> make[4]: *** [subdir-install-libs] Error 2
> make[4]: Leaving directory `/u/iwj/work/xen.git/tools/ocaml'
> make[3]: *** [subdirs-install] Error 2
> make[3]: Leaving directory `/u/iwj/work/xen.git/tools/ocaml'
> make[2]: *** [subdir-install-ocaml] Error 2
> make[2]: Leaving directory `/u/iwj/work/xen.git/tools'
> make[1]: *** [subdirs-install] Error 2
> make[1]: Leaving directory `/u/iwj/work/xen.git/tools'
> make: *** [install-tools] Error 2

I needed to make a couple of more libxc to libxc/include substitutions
under tools/ocaml.
The appended patch should work.
I have also pushed:

git://xenbits.xen.org/people/sstabellini/xen-unstable.git public_headers_v5

---

From 197699ff887967bf398b9b331c471eeebfa92d4c Mon Sep 17 00:00:00 2001
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Date: Thu, 10 Jul 2014 15:35:28 +0000
Subject: [PATCH v5] Move xenstore and libxc public headers to include subdir

Also moves xc_dom.h to include as it is used often by other xen tools.
Use the new include subdirectories to build Xen tools and qemu-xen.

Add the old libxc include path to the programs that need it to build,
on a case by case basis and commeting that they shouldn't require
internal libxc headers to build.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
Changes in v5:
- fix ocaml build.
---
 tools/Makefile                               |    6 +++---
 tools/Rules.mk                               |    6 +++---
 tools/blktap2/drivers/Makefile               |    2 ++
 tools/libxc/Makefile                         |    6 +++---
 tools/libxc/{ => include}/xc_dom.h           |    0
 tools/libxc/{ => include}/xenctrl.h          |    0
 tools/libxc/{ => include}/xenctrlosdep.h     |    0
 tools/libxc/{ => include}/xenguest.h         |    0
 tools/libxc/{ => include}/xentoollog.h       |    0
 tools/misc/Makefile                          |    2 ++
 tools/ocaml/libs/eventchn/xeneventchn.mli    |    2 +-
 tools/ocaml/libs/xentoollog/Makefile         |    2 +-
 tools/ocaml/libs/xentoollog/genlevels.py     |    2 +-
 tools/python/setup.py                        |    6 +++---
 tools/xcutils/Makefile                       |    3 ++-
 tools/xenpaging/Makefile                     |    3 ++-
 tools/xenstore/Makefile                      |    9 +++++----
 tools/xenstore/{ => include}/compat/xs.h     |    0
 tools/xenstore/{ => include}/compat/xs_lib.h |    0
 tools/xenstore/{ => include}/xenstore.h      |    0
 tools/xenstore/{ => include}/xenstore_lib.h  |    0
 21 files changed, 28 insertions(+), 21 deletions(-)
 rename tools/libxc/{ => include}/xc_dom.h (100%)
 rename tools/libxc/{ => include}/xenctrl.h (100%)
 rename tools/libxc/{ => include}/xenctrlosdep.h (100%)
 rename tools/libxc/{ => include}/xenguest.h (100%)
 rename tools/libxc/{ => include}/xentoollog.h (100%)
 rename tools/xenstore/{ => include}/compat/xs.h (100%)
 rename tools/xenstore/{ => include}/compat/xs_lib.h (100%)
 rename tools/xenstore/{ => include}/xenstore.h (100%)
 rename tools/xenstore/{ => include}/xenstore_lib.h (100%)

diff --git a/tools/xenstore/compat/xs.h b/tools/xenstore/include/compat/xs.h
similarity index 100%
rename from tools/xenstore/compat/xs.h
rename to tools/xenstore/include/compat/xs.h
diff --git a/tools/xenstore/compat/xs_lib.h b/tools/xenstore/include/compat/xs_lib.h
similarity index 100%
rename from tools/xenstore/compat/xs_lib.h
rename to tools/xenstore/include/compat/xs_lib.h
diff --git a/tools/xenstore/xenstore.h b/tools/xenstore/include/xenstore.h
similarity index 100%
rename from tools/xenstore/xenstore.h
rename to tools/xenstore/include/xenstore.h
diff --git a/tools/xenstore/xenstore_lib.h b/tools/xenstore/include/xenstore_lib.h
similarity index 100%
rename from tools/xenstore/xenstore_lib.h
rename to tools/xenstore/include/xenstore_lib.h

Comments

Ian Jackson Aug. 7, 2014, 4:40 p.m. UTC | #1
Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v4 1/3] Move xenstore and libxc public headers to include subdir"):
> I needed to make a couple of more libxc to libxc/include substitutions
> under tools/ocaml.
> The appended patch should work.
> I have also pushed:
> 
> git://xenbits.xen.org/people/sstabellini/xen-unstable.git public_headers_v5

It seems that the 32-bit stubdom build is still broken:

In file included from xc_core.c:64:0:
xg_private.h:30:21: fatal error: xenctrl.h: No such file or directory

Ian.
diff mbox

Patch

diff --git a/tools/Makefile b/tools/Makefile
index b6476c9..1130369 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -192,9 +192,9 @@  subdir-all-qemu-xen-dir: qemu-xen-dir-find
 		--includedir=$(PREFIX)/lib/xen/include \
 		--source-path=$$source \
 		--extra-cflags="-I$(XEN_ROOT)/tools/include \
-		-I$(XEN_ROOT)/tools/libxc \
-		-I$(XEN_ROOT)/tools/xenstore \
-		-I$(XEN_ROOT)/tools/xenstore/compat \
+		-I$(XEN_ROOT)/tools/libxc/include \
+		-I$(XEN_ROOT)/tools/xenstore/include \
+		-I$(XEN_ROOT)/tools/xenstore/compat/include \
 		$(EXTRA_CFLAGS_QEMU_XEN)" \
 		--extra-ldflags="-L$(XEN_ROOT)/tools/libxc \
 		-L$(XEN_ROOT)/tools/xenstore \
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 0aa1e6b..4e07e82 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -35,15 +35,15 @@  INSTALL_SHLIB = : install-shlib-unsupported-fail
 SYMLINK_SHLIB = : symlink-shlib-unsupported-fail
 endif
 
-CFLAGS_libxenctrl = -I$(XEN_LIBXC) $(CFLAGS_xeninclude)
+CFLAGS_libxenctrl = -I$(XEN_LIBXC)/include $(CFLAGS_xeninclude)
 LDLIBS_libxenctrl = $(XEN_LIBXC)/libxenctrl$(libextension)
 SHLIB_libxenctrl  = -Wl,-rpath-link=$(XEN_LIBXC)
 
-CFLAGS_libxenguest = -I$(XEN_LIBXC) $(CFLAGS_xeninclude)
+CFLAGS_libxenguest = -I$(XEN_LIBXC)/include $(CFLAGS_xeninclude)
 LDLIBS_libxenguest = $(XEN_LIBXC)/libxenguest$(libextension)
 SHLIB_libxenguest  = -Wl,-rpath-link=L$(XEN_LIBXC)
 
-CFLAGS_libxenstore = -I$(XEN_XENSTORE) $(CFLAGS_xeninclude)
+CFLAGS_libxenstore = -I$(XEN_XENSTORE)/include $(CFLAGS_xeninclude)
 LDLIBS_libxenstore = $(XEN_XENSTORE)/libxenstore$(libextension)
 SHLIB_libxenstore  = -Wl,-rpath-link=$(XEN_XENSTORE)
 
diff --git a/tools/blktap2/drivers/Makefile b/tools/blktap2/drivers/Makefile
index 1129ca1..7df9bc4 100644
--- a/tools/blktap2/drivers/Makefile
+++ b/tools/blktap2/drivers/Makefile
@@ -16,6 +16,8 @@  CFLAGS    += -I$(BLKTAP_ROOT)/include -I$(BLKTAP_ROOT)/drivers
 CFLAGS    += $(CFLAGS_libxenctrl)
 CFLAGS    += -D_GNU_SOURCE
 CFLAGS    += -DUSE_NFS_LOCKS
+# drivers/block-log.c incorrectly uses libxc internals
+CFLAGS    += -I$(XEN_ROOT)/tools/libxc
 
 ifeq ($(CONFIG_X86_64),y)
 CFLAGS            += -fPIC
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
index 22eef8e..83fcd3c 100644
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -89,7 +89,7 @@  OSDEP_SRCS-y                 += xenctrl_osdep_ENOSYS.c
 -include $(XEN_TARGET_ARCH)/Makefile
 
 CFLAGS   += -Werror -Wmissing-prototypes
-CFLAGS   += -I. $(CFLAGS_xeninclude)
+CFLAGS   += -I. -I./include $(CFLAGS_xeninclude)
 
 # Needed for posix_fadvise64() in xc_linux.c
 CFLAGS-$(CONFIG_Linux) += -D_GNU_SOURCE
@@ -140,12 +140,12 @@  install: build
 	$(INSTALL_DATA) libxenctrl.a $(DESTDIR)$(LIBDIR)
 	$(SYMLINK_SHLIB) libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so.$(MAJOR)
 	$(SYMLINK_SHLIB) libxenctrl.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so
-	$(INSTALL_DATA) xenctrl.h xenctrlosdep.h xentoollog.h $(DESTDIR)$(INCLUDEDIR)
+	$(INSTALL_DATA) include/xenctrl.h include/xenctrlosdep.h include/xentoollog.h $(DESTDIR)$(INCLUDEDIR)
 	$(INSTALL_SHLIB) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
 	$(INSTALL_DATA) libxenguest.a $(DESTDIR)$(LIBDIR)
 	$(SYMLINK_SHLIB) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenguest.so.$(MAJOR)
 	$(SYMLINK_SHLIB) libxenguest.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenguest.so
-	$(INSTALL_DATA) xenguest.h $(DESTDIR)$(INCLUDEDIR)
+	$(INSTALL_DATA) include/xenguest.h $(DESTDIR)$(INCLUDEDIR)
 
 .PHONY: TAGS
 TAGS:
diff --git a/tools/libxc/xc_dom.h b/tools/libxc/include/xc_dom.h
similarity index 100%
rename from tools/libxc/xc_dom.h
rename to tools/libxc/include/xc_dom.h
diff --git a/tools/libxc/xenctrl.h b/tools/libxc/include/xenctrl.h
similarity index 100%
rename from tools/libxc/xenctrl.h
rename to tools/libxc/include/xenctrl.h
diff --git a/tools/libxc/xenctrlosdep.h b/tools/libxc/include/xenctrlosdep.h
similarity index 100%
rename from tools/libxc/xenctrlosdep.h
rename to tools/libxc/include/xenctrlosdep.h
diff --git a/tools/libxc/xenguest.h b/tools/libxc/include/xenguest.h
similarity index 100%
rename from tools/libxc/xenguest.h
rename to tools/libxc/include/xenguest.h
diff --git a/tools/libxc/xentoollog.h b/tools/libxc/include/xentoollog.h
similarity index 100%
rename from tools/libxc/xentoollog.h
rename to tools/libxc/include/xentoollog.h
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 69b1817..266fd16 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -6,6 +6,8 @@  CFLAGS += -Werror
 CFLAGS += $(CFLAGS_libxenctrl)
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenstore)
+# xen-hptool.c and xen-mfndump.c incorrectly use libxc internals
+CFLAGS += -I$(XEN_ROOT)/tools/libxc
 
 HDRS     = $(wildcard *.h)
 
diff --git a/tools/ocaml/libs/eventchn/xeneventchn.mli b/tools/ocaml/libs/eventchn/xeneventchn.mli
index e4e02a4..e180145 100644
--- a/tools/ocaml/libs/eventchn/xeneventchn.mli
+++ b/tools/ocaml/libs/eventchn/xeneventchn.mli
@@ -14,7 +14,7 @@ 
  * GNU Lesser General Public License for more details.
  *)
 
-(** Event channel bindings: see tools/libxc/xenctrl.h *)
+(** Event channel bindings: see tools/libxc/include/xenctrl.h *)
 
 type handle
 (** An initialised event channel interface. *)
diff --git a/tools/ocaml/libs/xentoollog/Makefile b/tools/ocaml/libs/xentoollog/Makefile
index 471b428..f2134b8 100644
--- a/tools/ocaml/libs/xentoollog/Makefile
+++ b/tools/ocaml/libs/xentoollog/Makefile
@@ -48,7 +48,7 @@  xentoollog.mli: xentoollog.mli.in _xtl_levels.mli.in
 
 libs: $(LIBS)
 
-_xtl_levels.ml.in _xtl_levels.mli.in _xtl_levels.inc: genlevels.py $(XEN_ROOT)/tools/libxc/xentoollog.h
+_xtl_levels.ml.in _xtl_levels.mli.in _xtl_levels.inc: genlevels.py $(XEN_ROOT)/tools/libxc/include/xentoollog.h
 	$(PYTHON) genlevels.py _xtl_levels.mli.in _xtl_levels.ml.in _xtl_levels.inc
 
 .PHONY: install
diff --git a/tools/ocaml/libs/xentoollog/genlevels.py b/tools/ocaml/libs/xentoollog/genlevels.py
index 6b42f21..65d334f 100755
--- a/tools/ocaml/libs/xentoollog/genlevels.py
+++ b/tools/ocaml/libs/xentoollog/genlevels.py
@@ -3,7 +3,7 @@ 
 import sys
 
 def read_levels():
-	f = open('../../../libxc/xentoollog.h', 'r')
+	f = open('../../../libxc/include/xentoollog.h', 'r')
 
 	levels = []
 	record = False
diff --git a/tools/python/setup.py b/tools/python/setup.py
index 17ebb4a..439c429 100644
--- a/tools/python/setup.py
+++ b/tools/python/setup.py
@@ -13,7 +13,7 @@  PATH_XENSTORE = XEN_ROOT + "/tools/xenstore"
 
 xc = Extension("xc",
                extra_compile_args = extra_compile_args,
-               include_dirs       = [ PATH_XEN, PATH_LIBXC, "xen/lowlevel/xc" ],
+               include_dirs       = [ PATH_XEN, PATH_LIBXC + "/include", "xen/lowlevel/xc" ],
                library_dirs       = [ PATH_LIBXC ],
                libraries          = [ "xenctrl", "xenguest" ],
                depends            = [ PATH_LIBXC + "/libxenctrl.so", PATH_LIBXC + "/libxenguest.so" ],
@@ -21,7 +21,7 @@  xc = Extension("xc",
 
 xs = Extension("xs",
                extra_compile_args = extra_compile_args,
-               include_dirs       = [ PATH_XEN, PATH_XENSTORE, "xen/lowlevel/xs" ],
+               include_dirs       = [ PATH_XEN, PATH_XENSTORE + "/include", "xen/lowlevel/xs" ],
                library_dirs       = [ PATH_XENSTORE ],
                libraries          = [ "xenstore" ],
                depends            = [ PATH_XENSTORE + "/libxenstore.so" ],
@@ -29,7 +29,7 @@  xs = Extension("xs",
 
 xl = Extension("xl",
                extra_compile_args = extra_compile_args,
-               include_dirs       = [ PATH_XEN, PATH_LIBXL, PATH_LIBXC, "xen/lowlevel/xl" ],
+               include_dirs       = [ PATH_XEN, PATH_LIBXL, PATH_LIBXC + "/include", "xen/lowlevel/xl" ],
                library_dirs       = [ PATH_LIBXL ],
                libraries          = [ "xenlight" ],
                depends            = [ PATH_LIBXL + "/libxenlight.so" ],
diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
index 98706bf..f71703d 100644
--- a/tools/xcutils/Makefile
+++ b/tools/xcutils/Makefile
@@ -15,7 +15,8 @@  PROGRAMS = readnotes lsevtchn
 
 CFLAGS += -Werror
 
-CFLAGS_readnotes.o  := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
+# incorrectly uses libxc internals
+CFLAGS_readnotes.o  := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) -I$(XEN_ROOT)/tools/libxc
 CFLAGS_lsevtchn.o   := $(CFLAGS_libxenctrl)
 
 .PHONY: all
diff --git a/tools/xenpaging/Makefile b/tools/xenpaging/Makefile
index 548d9dd..054562d 100644
--- a/tools/xenpaging/Makefile
+++ b/tools/xenpaging/Makefile
@@ -1,7 +1,8 @@ 
 XEN_ROOT=$(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenstore) $(PTHREAD_CFLAGS)
+# xenpaging.c and file_ops.c incorrectly use libxc internals
+CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenstore) $(PTHREAD_CFLAGS) -I$(XEN_ROOT)/tools/libxc
 LDLIBS += $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) $(PTHREAD_LIBS)
 LDFLAGS += $(PTHREAD_LDFLAGS)
 
diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile
index 08460c8..d0ac949 100644
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -7,6 +7,7 @@  MINOR = 3
 CFLAGS += -Werror
 CFLAGS += -I.
 CFLAGS += -I$(XEN_ROOT)/tools/
+CFLAGS += -I./include
 CFLAGS += $(CFLAGS_libxenctrl)
 
 CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
@@ -135,10 +136,10 @@  endif
 	ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
 	ln -sf libxenstore.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenstore.so
 	$(INSTALL_DATA) libxenstore.a $(DESTDIR)$(LIBDIR)
-	$(INSTALL_DATA) xenstore.h $(DESTDIR)$(INCLUDEDIR)
-	$(INSTALL_DATA) xenstore_lib.h $(DESTDIR)$(INCLUDEDIR)
-	$(INSTALL_DATA) compat/xs.h $(DESTDIR)$(INCLUDEDIR)/xenstore-compat/xs.h
-	$(INSTALL_DATA) compat/xs_lib.h $(DESTDIR)$(INCLUDEDIR)/xenstore-compat/xs_lib.h
+	$(INSTALL_DATA) include/xenstore.h $(DESTDIR)$(INCLUDEDIR)
+	$(INSTALL_DATA) include/xenstore_lib.h $(DESTDIR)$(INCLUDEDIR)
+	$(INSTALL_DATA) include/compat/xs.h $(DESTDIR)$(INCLUDEDIR)/xenstore-compat/xs.h
+	$(INSTALL_DATA) include/compat/xs_lib.h $(DESTDIR)$(INCLUDEDIR)/xenstore-compat/xs_lib.h
 	ln -sf xenstore-compat/xs.h  $(DESTDIR)$(INCLUDEDIR)/xs.h
 	ln -sf xenstore-compat/xs_lib.h $(DESTDIR)$(INCLUDEDIR)/xs_lib.h