[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2] Move xenstore and libxc public headers to include subdir



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


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.