* [PATCH v2] Move xenstore and libxc public headers to include subdir
@ 2014-07-11 14:48 Stefano Stabellini
2014-07-11 15:20 ` Andrew Cooper
2014-07-11 15:24 ` Ian Campbell
0 siblings, 2 replies; 9+ messages in thread
From: Stefano Stabellini @ 2014-07-11 14:48 UTC (permalink / raw)
To: xen-devel; +Cc: Ian.Jackson, Ian.Campbell, Stefano Stabellini
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 v2:
- squash the patches together to retain bisectibility;
- use the new include subdirectories to build xen tools, do not add the
old libxc include path to CFLAGS_libxenctrl and the old xenstore include
path to CFLAGS_libxenstore.
---
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/python/setup.py | 4 ++--
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
18 files changed, 24 insertions(+), 17 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/Makefile b/tools/Makefile
index f4aa200..5f32dcc 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -188,9 +188,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 13d8fc1..53f51a8 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -19,15 +19,15 @@ XEN_LIBVCHAN = $(XEN_ROOT)/tools/libvchan
CFLAGS_xeninclude = -I$(XEN_INCLUDE)
-CFLAGS_libxenctrl = -I$(XEN_LIBXC) $(CFLAGS_xeninclude)
+CFLAGS_libxenctrl = -I$(XEN_LIBXC)/include $(CFLAGS_xeninclude)
LDLIBS_libxenctrl = $(XEN_LIBXC)/libxenctrl.so
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.so
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.so
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 f77677c..da59e10 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)
ln -sf libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so.$(MAJOR)
ln -sf 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_PROG) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
$(INSTALL_DATA) libxenguest.a $(DESTDIR)$(LIBDIR)
ln -sf libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenguest.so.$(MAJOR)
ln -sf 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/python/setup.py b/tools/python/setup.py
index 17ebb4a..a9cb9ad 100644
--- a/tools/python/setup.py
+++ b/tools/python/setup.py
@@ -7,9 +7,9 @@ XEN_ROOT = "../.."
extra_compile_args = [ "-fno-strict-aliasing", "-Werror" ]
PATH_XEN = XEN_ROOT + "/tools/include"
-PATH_LIBXC = XEN_ROOT + "/tools/libxc"
+PATH_LIBXC = XEN_ROOT + "/tools/libxc/include"
PATH_LIBXL = XEN_ROOT + "/tools/libxl"
-PATH_XENSTORE = XEN_ROOT + "/tools/xenstore"
+PATH_XENSTORE = XEN_ROOT + "/tools/xenstore/include"
xc = Extension("xc",
extra_compile_args = extra_compile_args,
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 e34bd41..2947d3e 100644
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -6,6 +6,7 @@ MINOR = 3
CFLAGS += -Werror
CFLAGS += -I.
+CFLAGS += -I./include
CFLAGS += $(CFLAGS_libxenctrl)
CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
@@ -126,10 +127,10 @@ install: all
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
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
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 14:48 [PATCH v2] Move xenstore and libxc public headers to include subdir Stefano Stabellini
@ 2014-07-11 15:20 ` Andrew Cooper
2014-07-11 15:21 ` Ian Campbell
2014-07-11 17:04 ` Stefano Stabellini
2014-07-11 15:24 ` Ian Campbell
1 sibling, 2 replies; 9+ messages in thread
From: Andrew Cooper @ 2014-07-11 15:20 UTC (permalink / raw)
To: Stefano Stabellini, xen-devel; +Cc: Ian.Jackson, Ian.Campbell
On 11/07/14 15:48, Stefano Stabellini wrote:
> 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 v2:
>
> - squash the patches together to retain bisectibility;
> - use the new include subdirectories to build xen tools, do not add the
> old libxc include path to CFLAGS_libxenctrl and the old xenstore include
> path to CFLAGS_libxenstore.
>
> ---
> 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/python/setup.py | 4 ++--
> 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
> 18 files changed, 24 insertions(+), 17 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/Makefile b/tools/Makefile
> index f4aa200..5f32dcc 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -188,9 +188,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 \
Not directly related to your patch but...
andrewcoop@andrewcoop:/local/xen.git/tools/qemu-xen-dir-remote$ git grep
"xs\.h"
configure:#include <xs.h>
configure:#include <xs.h>
configure:#include <xs.h>
configure:#include <xs.h>
include/hw/xen/xen_common.h:# include <xs.h>
Isn't it time we got code like this off using the legacy xs.h?
> $(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 13d8fc1..53f51a8 100644
> --- a/tools/Rules.mk
> +++ b/tools/Rules.mk
> @@ -19,15 +19,15 @@ XEN_LIBVCHAN = $(XEN_ROOT)/tools/libvchan
>
> CFLAGS_xeninclude = -I$(XEN_INCLUDE)
>
> -CFLAGS_libxenctrl = -I$(XEN_LIBXC) $(CFLAGS_xeninclude)
> +CFLAGS_libxenctrl = -I$(XEN_LIBXC)/include $(CFLAGS_xeninclude)
> LDLIBS_libxenctrl = $(XEN_LIBXC)/libxenctrl.so
> 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.so
> 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.so
> 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 f77677c..da59e10 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)
> ln -sf libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so.$(MAJOR)
> ln -sf 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_PROG) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
> $(INSTALL_DATA) libxenguest.a $(DESTDIR)$(LIBDIR)
> ln -sf libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenguest.so.$(MAJOR)
> ln -sf 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/python/setup.py b/tools/python/setup.py
> index 17ebb4a..a9cb9ad 100644
> --- a/tools/python/setup.py
> +++ b/tools/python/setup.py
> @@ -7,9 +7,9 @@ XEN_ROOT = "../.."
> extra_compile_args = [ "-fno-strict-aliasing", "-Werror" ]
>
> PATH_XEN = XEN_ROOT + "/tools/include"
> -PATH_LIBXC = XEN_ROOT + "/tools/libxc"
> +PATH_LIBXC = XEN_ROOT + "/tools/libxc/include"
> PATH_LIBXL = XEN_ROOT + "/tools/libxl"
> -PATH_XENSTORE = XEN_ROOT + "/tools/xenstore"
> +PATH_XENSTORE = XEN_ROOT + "/tools/xenstore/include"
This breaks the .so references lower down, which will cause the python
bits to fail to link.
You should use PATH_$FOO + "/include" in the include_dir lists only.
~Andrew
>
> xc = Extension("xc",
> extra_compile_args = extra_compile_args,
> 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 e34bd41..2947d3e 100644
> --- a/tools/xenstore/Makefile
> +++ b/tools/xenstore/Makefile
> @@ -6,6 +6,7 @@ MINOR = 3
>
> CFLAGS += -Werror
> CFLAGS += -I.
> +CFLAGS += -I./include
> CFLAGS += $(CFLAGS_libxenctrl)
>
> CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
> @@ -126,10 +127,10 @@ install: all
> 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
>
> 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
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 15:20 ` Andrew Cooper
@ 2014-07-11 15:21 ` Ian Campbell
2014-07-11 15:29 ` Andrew Cooper
2014-07-11 17:04 ` Stefano Stabellini
1 sibling, 1 reply; 9+ messages in thread
From: Ian Campbell @ 2014-07-11 15:21 UTC (permalink / raw)
To: Andrew Cooper; +Cc: xen-devel, Ian.Jackson, Stefano Stabellini
On Fri, 2014-07-11 at 16:20 +0100, Andrew Cooper wrote:
> Not directly related to your patch but...
>
> andrewcoop@andrewcoop:/local/xen.git/tools/qemu-xen-dir-remote$ git grep
> "xs\.h"
> configure:#include <xs.h>
> configure:#include <xs.h>
> configure:#include <xs.h>
> configure:#include <xs.h>
> include/hw/xen/xen_common.h:# include <xs.h>
>
> Isn't it time we got code like this off using the legacy xs.h?
So long as that code also wants to build against older Xen we should
tolerate them preferring the older headers.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 15:21 ` Ian Campbell
@ 2014-07-11 15:29 ` Andrew Cooper
2014-07-11 15:41 ` Ian Campbell
0 siblings, 1 reply; 9+ messages in thread
From: Andrew Cooper @ 2014-07-11 15:29 UTC (permalink / raw)
To: Ian Campbell; +Cc: xen-devel, Ian.Jackson, Stefano Stabellini
On 11/07/14 16:21, Ian Campbell wrote:
> On Fri, 2014-07-11 at 16:20 +0100, Andrew Cooper wrote:
>
>> Not directly related to your patch but...
>>
>> andrewcoop@andrewcoop:/local/xen.git/tools/qemu-xen-dir-remote$ git grep
>> "xs\.h"
>> configure:#include <xs.h>
>> configure:#include <xs.h>
>> configure:#include <xs.h>
>> configure:#include <xs.h>
>> include/hw/xen/xen_common.h:# include <xs.h>
>>
>> Isn't it time we got code like this off using the legacy xs.h?
> So long as that code also wants to build against older Xen we should
> tolerate them preferring the older headers.
>
>
>
The whole purpose of configure is to try and hide that stuff away.
Surely it should try looking for xenstore.h and, failing that, look for
xs.h and fill in some variable?
We know for certain whether the version of qemu pointed to by xen.git
need the legacy headers still.
~Andrew
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 15:29 ` Andrew Cooper
@ 2014-07-11 15:41 ` Ian Campbell
0 siblings, 0 replies; 9+ messages in thread
From: Ian Campbell @ 2014-07-11 15:41 UTC (permalink / raw)
To: Andrew Cooper; +Cc: xen-devel, Ian.Jackson, Stefano Stabellini
On Fri, 2014-07-11 at 16:29 +0100, Andrew Cooper wrote:
> On 11/07/14 16:21, Ian Campbell wrote:
> > On Fri, 2014-07-11 at 16:20 +0100, Andrew Cooper wrote:
> >
> >> Not directly related to your patch but...
> >>
> >> andrewcoop@andrewcoop:/local/xen.git/tools/qemu-xen-dir-remote$ git grep
> >> "xs\.h"
> >> configure:#include <xs.h>
> >> configure:#include <xs.h>
> >> configure:#include <xs.h>
> >> configure:#include <xs.h>
> >> include/hw/xen/xen_common.h:# include <xs.h>
> >>
> >> Isn't it time we got code like this off using the legacy xs.h?
> > So long as that code also wants to build against older Xen we should
> > tolerate them preferring the older headers.
> >
> >
> >
>
> The whole purpose of configure is to try and hide that stuff away.
> Surely it should try looking for xenstore.h and, failing that, look for
> xs.h and fill in some variable?
Qemu's ./configure is not autoconf.
In any case while it could do what you suggest I don't think these spare
headers are causing us such grief that we need to make waves about
getting rid of them.
>
> We know for certain whether the version of qemu pointed to by xen.git
> need the legacy headers still.
>
> ~Andrew
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 15:20 ` Andrew Cooper
2014-07-11 15:21 ` Ian Campbell
@ 2014-07-11 17:04 ` Stefano Stabellini
1 sibling, 0 replies; 9+ messages in thread
From: Stefano Stabellini @ 2014-07-11 17:04 UTC (permalink / raw)
To: Andrew Cooper; +Cc: xen-devel, Ian.Jackson, Ian.Campbell, Stefano Stabellini
On Fri, 11 Jul 2014, Andrew Cooper wrote:
> > diff --git a/tools/python/setup.py b/tools/python/setup.py
> > index 17ebb4a..a9cb9ad 100644
> > --- a/tools/python/setup.py
> > +++ b/tools/python/setup.py
> > @@ -7,9 +7,9 @@ XEN_ROOT = "../.."
> > extra_compile_args = [ "-fno-strict-aliasing", "-Werror" ]
> >
> > PATH_XEN = XEN_ROOT + "/tools/include"
> > -PATH_LIBXC = XEN_ROOT + "/tools/libxc"
> > +PATH_LIBXC = XEN_ROOT + "/tools/libxc/include"
> > PATH_LIBXL = XEN_ROOT + "/tools/libxl"
> > -PATH_XENSTORE = XEN_ROOT + "/tools/xenstore"
> > +PATH_XENSTORE = XEN_ROOT + "/tools/xenstore/include"
>
> This breaks the .so references lower down, which will cause the python
> bits to fail to link.
>
> You should use PATH_$FOO + "/include" in the include_dir lists only.
Yes, you are right. I'll make the change.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 14:48 [PATCH v2] Move xenstore and libxc public headers to include subdir Stefano Stabellini
2014-07-11 15:20 ` Andrew Cooper
@ 2014-07-11 15:24 ` Ian Campbell
2014-07-11 16:58 ` Stefano Stabellini
1 sibling, 1 reply; 9+ messages in thread
From: Ian Campbell @ 2014-07-11 15:24 UTC (permalink / raw)
To: Stefano Stabellini; +Cc: xen-devel, Ian.Jackson
On Fri, 2014-07-11 at 15:48 +0100, Stefano Stabellini wrote:
> Also moves xc_dom.h to include as it is used often by other xen tools.
I think you could say here "expected to be used by other in-tree xen
tools despite not currently being installed" or something to make it
clear that this isn't one of the many bad cases.
> 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
"commenting"
> internal libxc headers to build.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This looks good to me, but ISTR you saying something about a qemu-trad
update which needed to be synchronised?
Ian.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 15:24 ` Ian Campbell
@ 2014-07-11 16:58 ` Stefano Stabellini
2014-07-14 8:58 ` Ian Campbell
0 siblings, 1 reply; 9+ messages in thread
From: Stefano Stabellini @ 2014-07-11 16:58 UTC (permalink / raw)
To: Ian Campbell; +Cc: xen-devel, Ian.Jackson, Stefano Stabellini
On Fri, 11 Jul 2014, Ian Campbell wrote:
> On Fri, 2014-07-11 at 15:48 +0100, Stefano Stabellini wrote:
> > Also moves xc_dom.h to include as it is used often by other xen tools.
>
> I think you could say here "expected to be used by other in-tree xen
> tools despite not currently being installed" or something to make it
> clear that this isn't one of the many bad cases.
>
> > 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
>
> "commenting"
>
> > internal libxc headers to build.
> >
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
> This looks good to me, but ISTR you saying something about a qemu-trad
> update which needed to be synchronised?
Yes, the qemu-xen-traditional patch is:
http://marc.info/?l=xen-devel&m=140500949902568
It has no comments yet, so I didn't send it again.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
2014-07-11 16:58 ` Stefano Stabellini
@ 2014-07-14 8:58 ` Ian Campbell
0 siblings, 0 replies; 9+ messages in thread
From: Ian Campbell @ 2014-07-14 8:58 UTC (permalink / raw)
To: Stefano Stabellini; +Cc: xen-devel, Ian.Jackson
On Fri, 2014-07-11 at 17:58 +0100, Stefano Stabellini wrote:
> On Fri, 11 Jul 2014, Ian Campbell wrote:
> > On Fri, 2014-07-11 at 15:48 +0100, Stefano Stabellini wrote:
> > > Also moves xc_dom.h to include as it is used often by other xen tools.
> >
> > I think you could say here "expected to be used by other in-tree xen
> > tools despite not currently being installed" or something to make it
> > clear that this isn't one of the many bad cases.
> >
> > > 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
> >
> > "commenting"
> >
> > > internal libxc headers to build.
> > >
> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> >
> > This looks good to me, but ISTR you saying something about a qemu-trad
> > update which needed to be synchronised?
>
> Yes, the qemu-xen-traditional patch is:
>
> http://marc.info/?l=xen-devel&m=140500949902568
>
> It has no comments yet, so I didn't send it again.
Ah, your reply to Andrew confusingly implied that it was a WIP patch
against xen.git so I ignored it in favour of this patch. Please tag such
patches appropriate in the subject line.
In any case the reliance on that qemu patch really should have been
described here somewhere or you risk a committer who wasn't party to
previous conversations (or who hasn't made the link) committing it (or
wasting time trying).
Ian.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-07-14 8:58 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-11 14:48 [PATCH v2] Move xenstore and libxc public headers to include subdir Stefano Stabellini
2014-07-11 15:20 ` Andrew Cooper
2014-07-11 15:21 ` Ian Campbell
2014-07-11 15:29 ` Andrew Cooper
2014-07-11 15:41 ` Ian Campbell
2014-07-11 17:04 ` Stefano Stabellini
2014-07-11 15:24 ` Ian Campbell
2014-07-11 16:58 ` Stefano Stabellini
2014-07-14 8:58 ` Ian Campbell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.