From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
xen-devel@lists.xensource.com
Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com
Subject: Re: [PATCH v2] Move xenstore and libxc public headers to include subdir
Date: Fri, 11 Jul 2014 16:20:16 +0100 [thread overview]
Message-ID: <53C000B0.3040005@citrix.com> (raw)
In-Reply-To: <1405090093-29601-1-git-send-email-stefano.stabellini@eu.citrix.com>
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
next prev parent reply other threads:[~2014-07-11 15:20 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53C000B0.3040005@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.