All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] tools: avoid creating symbolic links during make
@ 2020-10-02 14:22 Juergen Gross
  2020-10-02 14:22 ` [PATCH 1/3] tools/libs: move official headers to common directory Juergen Gross
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Juergen Gross @ 2020-10-02 14:22 UTC (permalink / raw)
  To: xen-devel
  Cc: Juergen Gross, Andrew Cooper, George Dunlap, Ian Jackson,
	Jan Beulich, Julien Grall, Stefano Stabellini, Wei Liu,
	Samuel Thibault, Christian Lindig, David Scott

The rework of the Xen library build introduced creating some additional
symbolic links during the build process.

This series is undoing that by moving all official Xen library headers
to tools/include and by using include paths and the vpath directive
when access to some private headers of another directory is needed.

Juergen Gross (3):
  tools/libs: move official headers to common directory
  tools/libs/guest: don't use symbolic links for xenctrl headers
  tools/libs/store: don't use symbolic links for external files

 .gitignore                                    |  5 ++--
 stubdom/mini-os.mk                            |  2 +-
 tools/Rules.mk                                |  5 ++--
 tools/{libs/vchan => }/include/libxenvchan.h  |  0
 tools/{libs/light => }/include/libxl.h        |  0
 tools/{libs/light => }/include/libxl_event.h  |  0
 tools/{libs/light => }/include/libxl_json.h   |  0
 tools/{libs/light => }/include/libxl_utils.h  |  0
 tools/{libs/light => }/include/libxl_uuid.h   |  0
 tools/{libs/util => }/include/libxlutil.h     |  0
 tools/{libs/call => }/include/xencall.h       |  0
 tools/{libs/ctrl => }/include/xenctrl.h       |  0
 .../{libs/ctrl => }/include/xenctrl_compat.h  |  0
 .../devicemodel => }/include/xendevicemodel.h |  0
 tools/{libs/evtchn => }/include/xenevtchn.h   |  0
 .../include/xenforeignmemory.h                |  0
 tools/{libs/gnttab => }/include/xengnttab.h   |  0
 tools/{libs/guest => }/include/xenguest.h     |  0
 tools/{libs/hypfs => }/include/xenhypfs.h     |  0
 tools/{libs/stat => }/include/xenstat.h       |  0
 .../compat => include/xenstore-compat}/xs.h   |  0
 .../xenstore-compat}/xs_lib.h                 |  0
 tools/{libs/store => }/include/xenstore.h     |  0
 tools/{xenstore => include}/xenstore_lib.h    |  0
 .../{libs/toolcore => }/include/xentoolcore.h |  0
 .../include/xentoolcore_internal.h            |  0
 tools/{libs/toollog => }/include/xentoollog.h |  0
 tools/libs/call/Makefile                      |  3 ---
 tools/libs/ctrl/Makefile                      |  3 ---
 tools/libs/devicemodel/Makefile               |  3 ---
 tools/libs/evtchn/Makefile                    |  2 --
 tools/libs/foreignmemory/Makefile             |  3 ---
 tools/libs/gnttab/Makefile                    |  3 ---
 tools/libs/guest/Makefile                     | 12 ++-------
 tools/libs/hypfs/Makefile                     |  3 ---
 tools/libs/libs.mk                            | 10 +++----
 tools/libs/light/Makefile                     | 27 +++++++++----------
 tools/libs/stat/Makefile                      |  2 --
 tools/libs/store/Makefile                     | 15 +++--------
 tools/libs/toolcore/Makefile                  |  9 +++----
 tools/libs/toollog/Makefile                   |  2 --
 tools/libs/util/Makefile                      |  3 ---
 tools/libs/vchan/Makefile                     |  3 ---
 tools/ocaml/libs/xentoollog/Makefile          |  2 +-
 tools/ocaml/libs/xentoollog/genlevels.py      |  2 +-
 45 files changed, 32 insertions(+), 87 deletions(-)
 rename tools/{libs/vchan => }/include/libxenvchan.h (100%)
 rename tools/{libs/light => }/include/libxl.h (100%)
 rename tools/{libs/light => }/include/libxl_event.h (100%)
 rename tools/{libs/light => }/include/libxl_json.h (100%)
 rename tools/{libs/light => }/include/libxl_utils.h (100%)
 rename tools/{libs/light => }/include/libxl_uuid.h (100%)
 rename tools/{libs/util => }/include/libxlutil.h (100%)
 rename tools/{libs/call => }/include/xencall.h (100%)
 rename tools/{libs/ctrl => }/include/xenctrl.h (100%)
 rename tools/{libs/ctrl => }/include/xenctrl_compat.h (100%)
 rename tools/{libs/devicemodel => }/include/xendevicemodel.h (100%)
 rename tools/{libs/evtchn => }/include/xenevtchn.h (100%)
 rename tools/{libs/foreignmemory => }/include/xenforeignmemory.h (100%)
 rename tools/{libs/gnttab => }/include/xengnttab.h (100%)
 rename tools/{libs/guest => }/include/xenguest.h (100%)
 rename tools/{libs/hypfs => }/include/xenhypfs.h (100%)
 rename tools/{libs/stat => }/include/xenstat.h (100%)
 rename tools/{libs/store/include/compat => include/xenstore-compat}/xs.h (100%)
 rename tools/{libs/store/include/compat => include/xenstore-compat}/xs_lib.h (100%)
 rename tools/{libs/store => }/include/xenstore.h (100%)
 rename tools/{xenstore => include}/xenstore_lib.h (100%)
 rename tools/{libs/toolcore => }/include/xentoolcore.h (100%)
 rename tools/{libs/toolcore => }/include/xentoolcore_internal.h (100%)
 rename tools/{libs/toollog => }/include/xentoollog.h (100%)

-- 
2.26.2



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/3] tools/libs: move official headers to common directory
  2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
@ 2020-10-02 14:22 ` Juergen Gross
  2020-10-08 15:32   ` Wei Liu
  2020-10-02 14:22 ` [PATCH 2/3] tools/libs/guest: don't use symbolic links for xenctrl headers Juergen Gross
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 10+ messages in thread
From: Juergen Gross @ 2020-10-02 14:22 UTC (permalink / raw)
  To: xen-devel
  Cc: Juergen Gross, Andrew Cooper, George Dunlap, Ian Jackson,
	Jan Beulich, Julien Grall, Stefano Stabellini, Wei Liu,
	Samuel Thibault, Christian Lindig, David Scott

Instead of each library having an own include directory move the
official headers to tools/include instead. This will drop the need to
link those headers to tools/include and there is no need any longer
to have library-specific include paths when building Xen.

While at it remove setting of the unused variable
PKG_CONFIG_CFLAGS_LOCAL in libs/*/Makefile.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .gitignore                                    |  5 ++--
 stubdom/mini-os.mk                            |  2 +-
 tools/Rules.mk                                |  5 ++--
 tools/{libs/vchan => }/include/libxenvchan.h  |  0
 tools/{libs/light => }/include/libxl.h        |  0
 tools/{libs/light => }/include/libxl_event.h  |  0
 tools/{libs/light => }/include/libxl_json.h   |  0
 tools/{libs/light => }/include/libxl_utils.h  |  0
 tools/{libs/light => }/include/libxl_uuid.h   |  0
 tools/{libs/util => }/include/libxlutil.h     |  0
 tools/{libs/call => }/include/xencall.h       |  0
 tools/{libs/ctrl => }/include/xenctrl.h       |  0
 .../{libs/ctrl => }/include/xenctrl_compat.h  |  0
 .../devicemodel => }/include/xendevicemodel.h |  0
 tools/{libs/evtchn => }/include/xenevtchn.h   |  0
 .../include/xenforeignmemory.h                |  0
 tools/{libs/gnttab => }/include/xengnttab.h   |  0
 tools/{libs/guest => }/include/xenguest.h     |  0
 tools/{libs/hypfs => }/include/xenhypfs.h     |  0
 tools/{libs/stat => }/include/xenstat.h       |  0
 .../compat => include/xenstore-compat}/xs.h   |  0
 .../xenstore-compat}/xs_lib.h                 |  0
 tools/{libs/store => }/include/xenstore.h     |  0
 tools/{xenstore => include}/xenstore_lib.h    |  0
 .../{libs/toolcore => }/include/xentoolcore.h |  0
 .../include/xentoolcore_internal.h            |  0
 tools/{libs/toollog => }/include/xentoollog.h |  0
 tools/libs/call/Makefile                      |  3 ---
 tools/libs/ctrl/Makefile                      |  3 ---
 tools/libs/devicemodel/Makefile               |  3 ---
 tools/libs/evtchn/Makefile                    |  2 --
 tools/libs/foreignmemory/Makefile             |  3 ---
 tools/libs/gnttab/Makefile                    |  3 ---
 tools/libs/guest/Makefile                     |  3 ---
 tools/libs/hypfs/Makefile                     |  3 ---
 tools/libs/libs.mk                            | 10 +++----
 tools/libs/light/Makefile                     | 27 +++++++++----------
 tools/libs/stat/Makefile                      |  2 --
 tools/libs/store/Makefile                     | 11 +++-----
 tools/libs/toolcore/Makefile                  |  9 +++----
 tools/libs/toollog/Makefile                   |  2 --
 tools/libs/util/Makefile                      |  3 ---
 tools/libs/vchan/Makefile                     |  3 ---
 tools/ocaml/libs/xentoollog/Makefile          |  2 +-
 tools/ocaml/libs/xentoollog/genlevels.py      |  2 +-
 45 files changed, 30 insertions(+), 76 deletions(-)
 rename tools/{libs/vchan => }/include/libxenvchan.h (100%)
 rename tools/{libs/light => }/include/libxl.h (100%)
 rename tools/{libs/light => }/include/libxl_event.h (100%)
 rename tools/{libs/light => }/include/libxl_json.h (100%)
 rename tools/{libs/light => }/include/libxl_utils.h (100%)
 rename tools/{libs/light => }/include/libxl_uuid.h (100%)
 rename tools/{libs/util => }/include/libxlutil.h (100%)
 rename tools/{libs/call => }/include/xencall.h (100%)
 rename tools/{libs/ctrl => }/include/xenctrl.h (100%)
 rename tools/{libs/ctrl => }/include/xenctrl_compat.h (100%)
 rename tools/{libs/devicemodel => }/include/xendevicemodel.h (100%)
 rename tools/{libs/evtchn => }/include/xenevtchn.h (100%)
 rename tools/{libs/foreignmemory => }/include/xenforeignmemory.h (100%)
 rename tools/{libs/gnttab => }/include/xengnttab.h (100%)
 rename tools/{libs/guest => }/include/xenguest.h (100%)
 rename tools/{libs/hypfs => }/include/xenhypfs.h (100%)
 rename tools/{libs/stat => }/include/xenstat.h (100%)
 rename tools/{libs/store/include/compat => include/xenstore-compat}/xs.h (100%)
 rename tools/{libs/store/include/compat => include/xenstore-compat}/xs_lib.h (100%)
 rename tools/{libs/store => }/include/xenstore.h (100%)
 rename tools/{xenstore => include}/xenstore_lib.h (100%)
 rename tools/{libs/toolcore => }/include/xentoolcore.h (100%)
 rename tools/{libs/toolcore => }/include/xentoolcore_internal.h (100%)
 rename tools/{libs/toollog => }/include/xentoollog.h (100%)

diff --git a/.gitignore b/.gitignore
index 188495783e..0515ca0aca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -143,7 +143,6 @@ tools/libs/light/test_timedereg
 tools/libs/light/test_fdderegrace
 tools/libs/light/tmp.*
 tools/libs/light/xenlight.pc
-tools/libs/light/include/_*.h
 tools/libs/stat/_paths.h
 tools/libs/stat/headers.chk
 tools/libs/stat/libxenstat.map
@@ -153,7 +152,6 @@ tools/libs/store/list.h
 tools/libs/store/utils.h
 tools/libs/store/xenstore.pc
 tools/libs/store/xs_lib.c
-tools/libs/store/include/xenstore_lib.h
 tools/libs/util/*.pc
 tools/libs/util/_paths.h
 tools/libs/util/libxlu_cfg_y.output
@@ -231,7 +229,8 @@ tools/hotplug/Linux/xendomains
 tools/hotplug/NetBSD/rc.d/xencommons
 tools/hotplug/NetBSD/rc.d/xendriverdomain
 tools/include/acpi
-tools/include/*.h
+tools/include/_libxl*.h
+tools/include/_xentoolcore_list.h
 tools/include/xen/*
 tools/include/xen-xsm/*
 tools/include/xen-foreign/*.(c|h|size)
diff --git a/stubdom/mini-os.mk b/stubdom/mini-os.mk
index 420e9a8771..7e4968e026 100644
--- a/stubdom/mini-os.mk
+++ b/stubdom/mini-os.mk
@@ -5,7 +5,7 @@
 # XEN_ROOT
 # MINIOS_TARGET_ARCH
 
-XENSTORE_CPPFLAGS = -isystem $(XEN_ROOT)/tools/libs/store/include
+XENSTORE_CPPFLAGS = -isystem $(XEN_ROOT)/tools/include
 TOOLCORE_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toolcore
 TOOLLOG_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog
 EVTCHN_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/evtchn
diff --git a/tools/Rules.mk b/tools/Rules.mk
index f3e0078927..f61da81f4a 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -87,7 +87,7 @@ endif
 define LIB_defs
  FILENAME_$(1) ?= xen$(1)
  XEN_libxen$(1) = $$(XEN_ROOT)/tools/libs/$(1)
- CFLAGS_libxen$(1) = -I$$(XEN_libxen$(1))/include $$(CFLAGS_xeninclude)
+ CFLAGS_libxen$(1) = $$(CFLAGS_xeninclude)
  SHDEPS_libxen$(1) = $$(foreach use,$$(USELIBS_$(1)),$$(SHLIB_libxen$$(use)))
  LDLIBS_libxen$(1) = $$(SHDEPS_libxen$(1)) $$(XEN_libxen$(1))/lib$$(FILENAME_$(1))$$(libextension)
  SHLIB_libxen$(1) = $$(SHDEPS_libxen$(1)) -Wl,-rpath-link=$$(XEN_libxen$(1))
@@ -97,8 +97,7 @@ $(foreach lib,$(LIBS_LIBS),$(eval $(call LIB_defs,$(lib))))
 
 # code which compiles against libxenctrl get __XEN_TOOLS__ and
 # therefore sees the unstable hypercall interfaces.
-CFLAGS_libxenctrl += $(CFLAGS_libxentoollog) $(CFLAGS_libxenforeignmemory) $(CFLAGS_libxendevicemodel) -D__XEN_TOOLS__
-CFLAGS_libxenguest += $(CFLAGS_libxenevtchn) $(CFLAGS_libxenforeignmemory)
+CFLAGS_libxenctrl += -D__XEN_TOOLS__
 
 ifeq ($(CONFIG_Linux),y)
 LDLIBS_libxenstore += -ldl
diff --git a/tools/libs/vchan/include/libxenvchan.h b/tools/include/libxenvchan.h
similarity index 100%
rename from tools/libs/vchan/include/libxenvchan.h
rename to tools/include/libxenvchan.h
diff --git a/tools/libs/light/include/libxl.h b/tools/include/libxl.h
similarity index 100%
rename from tools/libs/light/include/libxl.h
rename to tools/include/libxl.h
diff --git a/tools/libs/light/include/libxl_event.h b/tools/include/libxl_event.h
similarity index 100%
rename from tools/libs/light/include/libxl_event.h
rename to tools/include/libxl_event.h
diff --git a/tools/libs/light/include/libxl_json.h b/tools/include/libxl_json.h
similarity index 100%
rename from tools/libs/light/include/libxl_json.h
rename to tools/include/libxl_json.h
diff --git a/tools/libs/light/include/libxl_utils.h b/tools/include/libxl_utils.h
similarity index 100%
rename from tools/libs/light/include/libxl_utils.h
rename to tools/include/libxl_utils.h
diff --git a/tools/libs/light/include/libxl_uuid.h b/tools/include/libxl_uuid.h
similarity index 100%
rename from tools/libs/light/include/libxl_uuid.h
rename to tools/include/libxl_uuid.h
diff --git a/tools/libs/util/include/libxlutil.h b/tools/include/libxlutil.h
similarity index 100%
rename from tools/libs/util/include/libxlutil.h
rename to tools/include/libxlutil.h
diff --git a/tools/libs/call/include/xencall.h b/tools/include/xencall.h
similarity index 100%
rename from tools/libs/call/include/xencall.h
rename to tools/include/xencall.h
diff --git a/tools/libs/ctrl/include/xenctrl.h b/tools/include/xenctrl.h
similarity index 100%
rename from tools/libs/ctrl/include/xenctrl.h
rename to tools/include/xenctrl.h
diff --git a/tools/libs/ctrl/include/xenctrl_compat.h b/tools/include/xenctrl_compat.h
similarity index 100%
rename from tools/libs/ctrl/include/xenctrl_compat.h
rename to tools/include/xenctrl_compat.h
diff --git a/tools/libs/devicemodel/include/xendevicemodel.h b/tools/include/xendevicemodel.h
similarity index 100%
rename from tools/libs/devicemodel/include/xendevicemodel.h
rename to tools/include/xendevicemodel.h
diff --git a/tools/libs/evtchn/include/xenevtchn.h b/tools/include/xenevtchn.h
similarity index 100%
rename from tools/libs/evtchn/include/xenevtchn.h
rename to tools/include/xenevtchn.h
diff --git a/tools/libs/foreignmemory/include/xenforeignmemory.h b/tools/include/xenforeignmemory.h
similarity index 100%
rename from tools/libs/foreignmemory/include/xenforeignmemory.h
rename to tools/include/xenforeignmemory.h
diff --git a/tools/libs/gnttab/include/xengnttab.h b/tools/include/xengnttab.h
similarity index 100%
rename from tools/libs/gnttab/include/xengnttab.h
rename to tools/include/xengnttab.h
diff --git a/tools/libs/guest/include/xenguest.h b/tools/include/xenguest.h
similarity index 100%
rename from tools/libs/guest/include/xenguest.h
rename to tools/include/xenguest.h
diff --git a/tools/libs/hypfs/include/xenhypfs.h b/tools/include/xenhypfs.h
similarity index 100%
rename from tools/libs/hypfs/include/xenhypfs.h
rename to tools/include/xenhypfs.h
diff --git a/tools/libs/stat/include/xenstat.h b/tools/include/xenstat.h
similarity index 100%
rename from tools/libs/stat/include/xenstat.h
rename to tools/include/xenstat.h
diff --git a/tools/libs/store/include/compat/xs.h b/tools/include/xenstore-compat/xs.h
similarity index 100%
rename from tools/libs/store/include/compat/xs.h
rename to tools/include/xenstore-compat/xs.h
diff --git a/tools/libs/store/include/compat/xs_lib.h b/tools/include/xenstore-compat/xs_lib.h
similarity index 100%
rename from tools/libs/store/include/compat/xs_lib.h
rename to tools/include/xenstore-compat/xs_lib.h
diff --git a/tools/libs/store/include/xenstore.h b/tools/include/xenstore.h
similarity index 100%
rename from tools/libs/store/include/xenstore.h
rename to tools/include/xenstore.h
diff --git a/tools/xenstore/xenstore_lib.h b/tools/include/xenstore_lib.h
similarity index 100%
rename from tools/xenstore/xenstore_lib.h
rename to tools/include/xenstore_lib.h
diff --git a/tools/libs/toolcore/include/xentoolcore.h b/tools/include/xentoolcore.h
similarity index 100%
rename from tools/libs/toolcore/include/xentoolcore.h
rename to tools/include/xentoolcore.h
diff --git a/tools/libs/toolcore/include/xentoolcore_internal.h b/tools/include/xentoolcore_internal.h
similarity index 100%
rename from tools/libs/toolcore/include/xentoolcore_internal.h
rename to tools/include/xentoolcore_internal.h
diff --git a/tools/libs/toollog/include/xentoollog.h b/tools/include/xentoollog.h
similarity index 100%
rename from tools/libs/toollog/include/xentoollog.h
rename to tools/include/xentoollog.h
diff --git a/tools/libs/call/Makefile b/tools/libs/call/Makefile
index 81c7478efd..4ed201b3b3 100644
--- a/tools/libs/call/Makefile
+++ b/tools/libs/call/Makefile
@@ -12,6 +12,3 @@ SRCS-$(CONFIG_NetBSD)  += netbsd.c
 SRCS-$(CONFIG_MiniOS)  += minios.c
 
 include $(XEN_ROOT)/tools/libs/libs.mk
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxencall)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
diff --git a/tools/libs/ctrl/Makefile b/tools/libs/ctrl/Makefile
index 0071226d2a..4185dc3f22 100644
--- a/tools/libs/ctrl/Makefile
+++ b/tools/libs/ctrl/Makefile
@@ -62,9 +62,6 @@ $(eval $(genpath-target))
 
 $(LIB_OBJS) $(PIC_OBJS): _paths.h
 
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenctrl)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
-
 clean: cleanlocal
 
 .PHONY: cleanlocal
diff --git a/tools/libs/devicemodel/Makefile b/tools/libs/devicemodel/Makefile
index 42417958f2..b67fc0fac1 100644
--- a/tools/libs/devicemodel/Makefile
+++ b/tools/libs/devicemodel/Makefile
@@ -12,6 +12,3 @@ SRCS-$(CONFIG_NetBSD)  += compat.c
 SRCS-$(CONFIG_MiniOS)  += compat.c
 
 include $(XEN_ROOT)/tools/libs/libs.mk
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxendevicemodel)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
diff --git a/tools/libs/evtchn/Makefile b/tools/libs/evtchn/Makefile
index aec76641e8..ad01a17b3d 100644
--- a/tools/libs/evtchn/Makefile
+++ b/tools/libs/evtchn/Makefile
@@ -12,5 +12,3 @@ SRCS-$(CONFIG_NetBSD)  += netbsd.c
 SRCS-$(CONFIG_MiniOS)  += minios.c
 
 include $(XEN_ROOT)/tools/libs/libs.mk
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenevtchn)/include
diff --git a/tools/libs/foreignmemory/Makefile b/tools/libs/foreignmemory/Makefile
index cf444d3c1a..13850f7988 100644
--- a/tools/libs/foreignmemory/Makefile
+++ b/tools/libs/foreignmemory/Makefile
@@ -12,6 +12,3 @@ SRCS-$(CONFIG_NetBSD)  += compat.c netbsd.c
 SRCS-$(CONFIG_MiniOS)  += minios.c
 
 include $(XEN_ROOT)/tools/libs/libs.mk
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenforeignmemory)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
diff --git a/tools/libs/gnttab/Makefile b/tools/libs/gnttab/Makefile
index d8d4d55e27..d86c49d243 100644
--- a/tools/libs/gnttab/Makefile
+++ b/tools/libs/gnttab/Makefile
@@ -14,6 +14,3 @@ SRCS-$(CONFIG_SunOS)   += gnttab_unimp.c gntshr_unimp.c
 SRCS-$(CONFIG_NetBSD)  += gnttab_unimp.c gntshr_unimp.c
 
 include $(XEN_ROOT)/tools/libs/libs.mk
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxengnttab)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
diff --git a/tools/libs/guest/Makefile b/tools/libs/guest/Makefile
index f24732fbcd..5b4ad313cc 100644
--- a/tools/libs/guest/Makefile
+++ b/tools/libs/guest/Makefile
@@ -113,9 +113,6 @@ xc_private.h: _paths.h
 
 $(LIB_OBJS) $(PIC_OBJS): $(LINK_FILES)
 
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenctrl)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
-
 .PHONY: cleanlocal
 cleanlocal:
 	rm -f libxenguest.map
diff --git a/tools/libs/hypfs/Makefile b/tools/libs/hypfs/Makefile
index 668d68853f..39feca87e8 100644
--- a/tools/libs/hypfs/Makefile
+++ b/tools/libs/hypfs/Makefile
@@ -9,6 +9,3 @@ APPEND_LDFLAGS += -lz
 SRCS-y                 += core.c
 
 include ../libs.mk
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenhypfs)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index 325b7b7cea..959ff91a56 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -47,10 +47,10 @@ endif
 PKG_CONFIG_LOCAL := $(PKG_CONFIG_DIR)/$(PKG_CONFIG)
 
 LIBHEADER ?= $(LIB_FILE_NAME).h
-LIBHEADERS = $(foreach h, $(LIBHEADER), include/$(h))
-LIBHEADERSGLOB = $(foreach h, $(LIBHEADER), $(XEN_ROOT)/tools/include/$(h))
+LIBHEADERS = $(foreach h, $(LIBHEADER), $(XEN_INCLUDE)/$(h))
 
 $(PKG_CONFIG_LOCAL): PKG_CONFIG_PREFIX = $(XEN_ROOT)
+$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
 $(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
 
 .PHONY: all
@@ -74,14 +74,11 @@ else
 .PHONY: headers.chk
 endif
 
-headers.chk: $(LIBHEADERSGLOB) $(AUTOINCS)
+headers.chk: $(AUTOINCS)
 
 libxen$(LIBNAME).map:
 	echo 'VERS_$(MAJOR).$(MINOR) { global: *; };' >$@
 
-$(LIBHEADERSGLOB): $(LIBHEADERS)
-	for i in $(realpath $(LIBHEADERS)); do ln -sf $$i $(XEN_ROOT)/tools/include; done
-
 lib$(LIB_FILE_NAME).a: $(LIB_OBJS)
 	$(AR) rc $@ $^
 
@@ -123,7 +120,6 @@ clean:
 	rm -f lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR) lib$(LIB_FILE_NAME).so.$(MAJOR)
 	rm -f headers.chk
 	rm -f $(PKG_CONFIG)
-	rm -f $(LIBHEADERSGLOB)
 	rm -f _paths.h
 
 .PHONY: distclean
diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index f58a3214e5..fbaffdf5a2 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -152,7 +152,7 @@ LIBXL_TEST_OBJS += $(foreach t, $(LIBXL_TESTS_INSIDE),libxl_test_$t.opic)
 TEST_PROG_OBJS += $(foreach t, $(LIBXL_TESTS_PROGS),test_$t.o) test_common.o
 TEST_PROGS += $(foreach t, $(LIBXL_TESTS_PROGS),test_$t)
 
-AUTOINCS = _libxl_list.h _paths.h _libxl_save_msgs_callout.h _libxl_save_msgs_helper.h
+AUTOINCS = $(XEN_INCLUDE)/_libxl_list.h _paths.h _libxl_save_msgs_callout.h _libxl_save_msgs_helper.h
 AUTOSRCS = _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
 
 CLIENTS = testidl libxl-save-helper
@@ -165,9 +165,6 @@ NO_HEADERS_CHK := y
 
 include $(XEN_ROOT)/tools/libs/libs.mk
 
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(CURDIR)
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
-
 LDUSELIBS-y += $(PTYFUNCS_LIBS)
 LDUSELIBS-$(CONFIG_LIBNL) += $(LIBNL3_LIBS)
 LDUSELIBS-$(CONFIG_Linux) += -luuid
@@ -185,7 +182,7 @@ libxl_x86_acpi.o libxl_x86_acpi.opic: CFLAGS += -I$(XEN_ROOT)/tools
 $(SAVE_HELPER_OBJS): CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenevtchn) $(CFLAGS_libxenguest)
 
 testidl.o: CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenlight)
-testidl.c: libxl_types.idl gentest.py include/libxl.h $(AUTOINCS)
+testidl.c: libxl_types.idl gentest.py $(XEN_INCLUDE)/libxl.h $(AUTOINCS)
 	$(PYTHON) gentest.py libxl_types.idl testidl.c.new
 	mv testidl.c.new testidl.c
 
@@ -200,15 +197,15 @@ libxl.api-ok: check-libxl-api-rules _libxl.api-for-check
 	$(PERL) $^
 	touch $@
 
-_%.api-for-check: include/%.h $(AUTOINCS)
-	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -c -E $< $(APPEND_CFLAGS) \
+_libxl.api-for-check: $(XEN_INCLUDE)/libxl.h $(AUTOINCS)
+	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_libxl.o) -c -E $< $(APPEND_CFLAGS) \
 		-DLIBXL_EXTERNAL_CALLERS_ONLY=LIBXL_EXTERNAL_CALLERS_ONLY \
 		>$@.new
 	mv -f $@.new $@
 
-_libxl_list.h: $(XEN_INCLUDE)/xen-external/bsd-sys-queue-h-seddery $(XEN_INCLUDE)/xen-external/bsd-sys-queue.h
-	$(PERL) $^ --prefix=libxl >$@.new
-	$(call move-if-changed,$@.new,$@)
+$(XEN_INCLUDE)/_libxl_list.h: $(XEN_INCLUDE)/xen-external/bsd-sys-queue-h-seddery $(XEN_INCLUDE)/xen-external/bsd-sys-queue.h
+	$(PERL) $^ --prefix=libxl >$(notdir $@).new
+	$(call move-if-changed,$(notdir $@).new,$@)
 
 _libxl_save_msgs_helper.c _libxl_save_msgs_callout.c \
 _libxl_save_msgs_helper.h _libxl_save_msgs_callout.h: \
@@ -216,13 +213,13 @@ _libxl_save_msgs_helper.h _libxl_save_msgs_callout.h: \
 	$(PERL) -w $< $@ >$@.new
 	$(call move-if-changed,$@.new,$@)
 
-include/libxl.h: _libxl_types.h _libxl_list.h
-include/libxl_json.h: _libxl_types_json.h
+$(XEN_INCLUDE)/libxl.h: $(XEN_INCLUDE)/_libxl_types.h $(XEN_INCLUDE)/_libxl_list.h
+$(XEN_INCLUDE)/libxl_json.h: $(XEN_INCLUDE)/_libxl_types_json.h
 libxl_internal.h: _libxl_types_internal.h _libxl_types_private.h _libxl_types_internal_private.h _paths.h
 libxl_internal_json.h: _libxl_types_internal_json.h
 xl.h: _paths.h
 
-$(LIB_OBJS) $(PIC_OBJS) $(LIBXL_TEST_OBJS) $(TEST_PROG_OBJS) $(SAVE_HELPER_OBJS): include/libxl.h
+$(LIB_OBJS) $(PIC_OBJS) $(LIBXL_TEST_OBJS) $(TEST_PROG_OBJS) $(SAVE_HELPER_OBJS): $(XEN_INCLUDE)/libxl.h
 $(LIB_OBJS) $(PIC_OBJS) $(LIBXL_TEST_OBJS): libxl_internal.h
 
 _libxl_type%.h _libxl_type%_json.h _libxl_type%_private.h _libxl_type%.c: libxl_type%.idl gentypes.py idl.py
@@ -234,8 +231,8 @@ _libxl_type%.h _libxl_type%_json.h _libxl_type%_private.h _libxl_type%.c: libxl_
 	$(call move-if-changed,__libxl_type$(stem)_json.h,_libxl_type$(stem)_json.h)
 	$(call move-if-changed,__libxl_type$(stem).c,_libxl_type$(stem).c)
 
-include/_%.h: _%.h
-	cp $< $@
+$(XEN_INCLUDE)/_%.h: _%.h
+	$(call move-if-changed,_$*.h,$(XEN_INCLUDE)/_$*.h)
 
 libxenlight_test.so: $(PIC_OBJS) $(LIBXL_TEST_OBJS)
 	$(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenlight.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ $(LDUSELIBS) $(APPEND_LDFLAGS)
diff --git a/tools/libs/stat/Makefile b/tools/libs/stat/Makefile
index 5463f5f7ca..8353e96946 100644
--- a/tools/libs/stat/Makefile
+++ b/tools/libs/stat/Makefile
@@ -30,8 +30,6 @@ APPEND_LDFLAGS += $(LDLIBS-y)
 
 include $(XEN_ROOT)/tools/libs/libs.mk
 
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenstat)/include
-
 $(LIB_OBJS): _paths.h
 
 PYLIB=bindings/swig/python/_xenstat.so
diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
index 4da502646e..930e763de9 100644
--- a/tools/libs/store/Makefile
+++ b/tools/libs/store/Makefile
@@ -21,12 +21,12 @@ CFLAGS += $(CFLAGS_libxentoolcore)
 CFLAGS += -DXEN_LIB_STORED="\"$(XEN_LIB_STORED)\""
 CFLAGS += -DXEN_RUN_STORED="\"$(XEN_RUN_STORED)\""
 
-LINK_FILES = xs_lib.c include/xenstore_lib.h list.h utils.h
+LINK_FILES = xs_lib.c list.h utils.h
 
 $(LIB_OBJS): $(LINK_FILES)
 
 $(LINK_FILES):
-	ln -sf $(XEN_ROOT)/tools/xenstore/$(notdir $@) $@
+	ln -sf $(XEN_ROOT)/tools/xenstore/$@ $@
 
 xs.opic: CFLAGS += -DUSE_PTHREAD
 ifeq ($(CONFIG_Linux),y)
@@ -35,9 +35,6 @@ else
 PKG_CONFIG_REMOVE += -ldl
 endif
 
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenstore)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
-
 .PHONY: install
 install: install-headers
 
@@ -45,8 +42,8 @@ install: install-headers
 install-headers:
 	$(INSTALL_DIR) $(DESTDIR)$(includedir)
 	$(INSTALL_DIR) $(DESTDIR)$(includedir)/xenstore-compat
-	$(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
+	$(INSTALL_DATA) $(XEN_INCLUDE)/xenstore-compat/xs.h $(DESTDIR)$(includedir)/xenstore-compat/xs.h
+	$(INSTALL_DATA) $(XEN_INCLUDE)/xenstore-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/libs/toolcore/Makefile b/tools/libs/toolcore/Makefile
index 5819bbc8ee..1cf30733c9 100644
--- a/tools/libs/toolcore/Makefile
+++ b/tools/libs/toolcore/Makefile
@@ -3,18 +3,17 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR	= 1
 MINOR	= 0
-AUTOINCS := include/_xentoolcore_list.h
+AUTOINCS := $(XEN_INCLUDE)/_xentoolcore_list.h
 
 SRCS-y	+= handlereg.c
 
 include $(XEN_ROOT)/tools/libs/libs.mk
 
 PKG_CONFIG_DESC := Central support for Xen Hypervisor userland libraries
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxentoolcore)/include
 
 $(LIB_OBJS): $(AUTOINCS)
 $(PIC_OBJS): $(AUTOINCS)
 
-include/_xentoolcore_list.h: $(XEN_INCLUDE)/xen-external/bsd-sys-queue-h-seddery $(XEN_INCLUDE)/xen-external/bsd-sys-queue.h
-	$(PERL) $^ --prefix=xentoolcore >$@.new
-	$(call move-if-changed,$@.new,$@)
+$(XEN_INCLUDE)/_xentoolcore_list.h: $(XEN_INCLUDE)/xen-external/bsd-sys-queue-h-seddery $(XEN_INCLUDE)/xen-external/bsd-sys-queue.h
+	$(PERL) $^ --prefix=xentoolcore >$(notdir $@).new
+	$(call move-if-changed,$(notdir $@).new,$@)
diff --git a/tools/libs/toollog/Makefile b/tools/libs/toollog/Makefile
index 3f986835d6..dce1b2de85 100644
--- a/tools/libs/toollog/Makefile
+++ b/tools/libs/toollog/Makefile
@@ -8,5 +8,3 @@ SRCS-y	+= xtl_core.c
 SRCS-y	+= xtl_logger_stdio.c
 
 include $(XEN_ROOT)/tools/libs/libs.mk
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxentoollog)/include
diff --git a/tools/libs/util/Makefile b/tools/libs/util/Makefile
index 0c9db8027d..b739360be7 100644
--- a/tools/libs/util/Makefile
+++ b/tools/libs/util/Makefile
@@ -39,9 +39,6 @@ NO_HEADERS_CHK := y
 
 include $(XEN_ROOT)/tools/libs/libs.mk
 
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenutil)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
-
 $(LIB_OBJS) $(PIC_OBJS): $(AUTOINCS) _paths.h
 
 %.c %.h:: %.y
diff --git a/tools/libs/vchan/Makefile b/tools/libs/vchan/Makefile
index 5e18d5b196..83a45d2817 100644
--- a/tools/libs/vchan/Makefile
+++ b/tools/libs/vchan/Makefile
@@ -12,9 +12,6 @@ NO_HEADERS_CHK := y
 
 include $(XEN_ROOT)/tools/libs/libs.mk
 
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenvchan)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
-
 clean: cleanlocal
 
 .PHONY: cleanlocal
diff --git a/tools/ocaml/libs/xentoollog/Makefile b/tools/ocaml/libs/xentoollog/Makefile
index 8ae0a784fd..593f9e9e9d 100644
--- a/tools/ocaml/libs/xentoollog/Makefile
+++ b/tools/ocaml/libs/xentoollog/Makefile
@@ -49,7 +49,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/libs/toollog/include/xentoollog.h
+_xtl_levels.ml.in _xtl_levels.mli.in _xtl_levels.inc: genlevels.py $(XEN_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 f9cf853e26..11a623e459 100755
--- a/tools/ocaml/libs/xentoollog/genlevels.py
+++ b/tools/ocaml/libs/xentoollog/genlevels.py
@@ -6,7 +6,7 @@ import sys
 from functools import reduce
 
 def read_levels():
-	f = open('../../../libs/toollog/include/xentoollog.h', 'r')
+	f = open('../../../include/xentoollog.h', 'r')
 
 	levels = []
 	record = False
-- 
2.26.2



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/3] tools/libs/guest: don't use symbolic links for xenctrl headers
  2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
  2020-10-02 14:22 ` [PATCH 1/3] tools/libs: move official headers to common directory Juergen Gross
@ 2020-10-02 14:22 ` Juergen Gross
  2020-10-02 14:22 ` [PATCH 3/3] tools/libs/store: don't use symbolic links for external files Juergen Gross
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Juergen Gross @ 2020-10-02 14:22 UTC (permalink / raw)
  To: xen-devel; +Cc: Juergen Gross, Ian Jackson, Wei Liu

Instead of using symbolic links for accessing the xenctrl private
headers use an include path instead.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/libs/guest/Makefile | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/tools/libs/guest/Makefile b/tools/libs/guest/Makefile
index 5b4ad313cc..1c729040b3 100644
--- a/tools/libs/guest/Makefile
+++ b/tools/libs/guest/Makefile
@@ -6,11 +6,6 @@ ifeq ($(CONFIG_LIBXC_MINIOS),y)
 override CONFIG_MIGRATE := n
 endif
 
-LINK_FILES := xc_private.h xc_core.h xc_core_x86.h xc_core_arm.h xc_bitops.h
-
-$(LINK_FILES):
-	ln -sf $(XEN_ROOT)/tools/libs/ctrl/$(notdir $@) $@
-
 SRCS-y += xg_private.c
 SRCS-y += xg_domain.c
 SRCS-y += xg_suspend.c
@@ -29,6 +24,8 @@ else
 SRCS-y += xg_nomigrate.c
 endif
 
+CFLAGS += -I$(XEN_libxenctrl)
+
 vpath %.c ../../../xen/common/libelf
 CFLAGS += -I../../../xen/common/libelf
 
@@ -111,8 +108,6 @@ $(eval $(genpath-target))
 
 xc_private.h: _paths.h
 
-$(LIB_OBJS) $(PIC_OBJS): $(LINK_FILES)
-
 .PHONY: cleanlocal
 cleanlocal:
 	rm -f libxenguest.map
-- 
2.26.2



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/3] tools/libs/store: don't use symbolic links for external files
  2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
  2020-10-02 14:22 ` [PATCH 1/3] tools/libs: move official headers to common directory Juergen Gross
  2020-10-02 14:22 ` [PATCH 2/3] tools/libs/guest: don't use symbolic links for xenctrl headers Juergen Gross
@ 2020-10-02 14:22 ` Juergen Gross
  2020-10-05  8:38 ` [PATCH 0/3] tools: avoid creating symbolic links during make Christian Lindig
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Juergen Gross @ 2020-10-02 14:22 UTC (permalink / raw)
  To: xen-devel; +Cc: Juergen Gross, Ian Jackson, Wei Liu

Instead of using symbolic links to include files from xenstored use
the vpath directive and an include path.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/libs/store/Makefile | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
index 930e763de9..bc89b9cd70 100644
--- a/tools/libs/store/Makefile
+++ b/tools/libs/store/Makefile
@@ -21,12 +21,8 @@ CFLAGS += $(CFLAGS_libxentoolcore)
 CFLAGS += -DXEN_LIB_STORED="\"$(XEN_LIB_STORED)\""
 CFLAGS += -DXEN_RUN_STORED="\"$(XEN_RUN_STORED)\""
 
-LINK_FILES = xs_lib.c list.h utils.h
-
-$(LIB_OBJS): $(LINK_FILES)
-
-$(LINK_FILES):
-	ln -sf $(XEN_ROOT)/tools/xenstore/$@ $@
+vpath xs_lib.c $(XEN_ROOT)/tools/xenstore
+CFLAGS += -I $(XEN_ROOT)/tools/xenstore
 
 xs.opic: CFLAGS += -DUSE_PTHREAD
 ifeq ($(CONFIG_Linux),y)
-- 
2.26.2



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/3] tools: avoid creating symbolic links during make
  2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
                   ` (2 preceding siblings ...)
  2020-10-02 14:22 ` [PATCH 3/3] tools/libs/store: don't use symbolic links for external files Juergen Gross
@ 2020-10-05  8:38 ` Christian Lindig
  2020-10-05  8:48 ` Bertrand Marquis
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Christian Lindig @ 2020-10-05  8:38 UTC (permalink / raw)
  To: Juergen Gross, xen-devel
  Cc: Andrew Cooper, George Dunlap, Ian Jackson, Jan Beulich,
	Julien Grall, Stefano Stabellini, Wei Liu, Samuel Thibault,
	David Scott

--
Acked-by: Christian Lindig <christian.lindig@citrix.com>

________________________________________
From: Juergen Gross <jgross@suse.com>
Sent: 02 October 2020 15:22
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross; Andrew Cooper; George Dunlap; Ian Jackson; Jan Beulich; Julien Grall; Stefano Stabellini; Wei Liu; Samuel Thibault; Christian Lindig; David Scott
Subject: [PATCH 0/3] tools: avoid creating symbolic links during make

The rework of the Xen library build introduced creating some additional
symbolic links during the build process.

This series is undoing that by moving all official Xen library headers
to tools/include and by using include paths and the vpath directive
when access to some private headers of another directory is needed.

Juergen Gross (3):
  tools/libs: move official headers to common directory
  tools/libs/guest: don't use symbolic links for xenctrl headers
  tools/libs/store: don't use symbolic links for external files

 .gitignore                                    |  5 ++--
 stubdom/mini-os.mk                            |  2 +-
 tools/Rules.mk                                |  5 ++--
 tools/{libs/vchan => }/include/libxenvchan.h  |  0
 tools/{libs/light => }/include/libxl.h        |  0
 tools/{libs/light => }/include/libxl_event.h  |  0
 tools/{libs/light => }/include/libxl_json.h   |  0
 tools/{libs/light => }/include/libxl_utils.h  |  0
 tools/{libs/light => }/include/libxl_uuid.h   |  0
 tools/{libs/util => }/include/libxlutil.h     |  0
 tools/{libs/call => }/include/xencall.h       |  0
 tools/{libs/ctrl => }/include/xenctrl.h       |  0
 .../{libs/ctrl => }/include/xenctrl_compat.h  |  0
 .../devicemodel => }/include/xendevicemodel.h |  0
 tools/{libs/evtchn => }/include/xenevtchn.h   |  0
 .../include/xenforeignmemory.h                |  0
 tools/{libs/gnttab => }/include/xengnttab.h   |  0
 tools/{libs/guest => }/include/xenguest.h     |  0
 tools/{libs/hypfs => }/include/xenhypfs.h     |  0
 tools/{libs/stat => }/include/xenstat.h       |  0
 .../compat => include/xenstore-compat}/xs.h   |  0
 .../xenstore-compat}/xs_lib.h                 |  0
 tools/{libs/store => }/include/xenstore.h     |  0
 tools/{xenstore => include}/xenstore_lib.h    |  0
 .../{libs/toolcore => }/include/xentoolcore.h |  0
 .../include/xentoolcore_internal.h            |  0
 tools/{libs/toollog => }/include/xentoollog.h |  0
 tools/libs/call/Makefile                      |  3 ---
 tools/libs/ctrl/Makefile                      |  3 ---
 tools/libs/devicemodel/Makefile               |  3 ---
 tools/libs/evtchn/Makefile                    |  2 --
 tools/libs/foreignmemory/Makefile             |  3 ---
 tools/libs/gnttab/Makefile                    |  3 ---
 tools/libs/guest/Makefile                     | 12 ++-------
 tools/libs/hypfs/Makefile                     |  3 ---
 tools/libs/libs.mk                            | 10 +++----
 tools/libs/light/Makefile                     | 27 +++++++++----------
 tools/libs/stat/Makefile                      |  2 --
 tools/libs/store/Makefile                     | 15 +++--------
 tools/libs/toolcore/Makefile                  |  9 +++----
 tools/libs/toollog/Makefile                   |  2 --
 tools/libs/util/Makefile                      |  3 ---
 tools/libs/vchan/Makefile                     |  3 ---
 tools/ocaml/libs/xentoollog/Makefile          |  2 +-
 tools/ocaml/libs/xentoollog/genlevels.py      |  2 +-
 45 files changed, 32 insertions(+), 87 deletions(-)
 rename tools/{libs/vchan => }/include/libxenvchan.h (100%)
 rename tools/{libs/light => }/include/libxl.h (100%)
 rename tools/{libs/light => }/include/libxl_event.h (100%)
 rename tools/{libs/light => }/include/libxl_json.h (100%)
 rename tools/{libs/light => }/include/libxl_utils.h (100%)
 rename tools/{libs/light => }/include/libxl_uuid.h (100%)
 rename tools/{libs/util => }/include/libxlutil.h (100%)
 rename tools/{libs/call => }/include/xencall.h (100%)
 rename tools/{libs/ctrl => }/include/xenctrl.h (100%)
 rename tools/{libs/ctrl => }/include/xenctrl_compat.h (100%)
 rename tools/{libs/devicemodel => }/include/xendevicemodel.h (100%)
 rename tools/{libs/evtchn => }/include/xenevtchn.h (100%)
 rename tools/{libs/foreignmemory => }/include/xenforeignmemory.h (100%)
 rename tools/{libs/gnttab => }/include/xengnttab.h (100%)
 rename tools/{libs/guest => }/include/xenguest.h (100%)
 rename tools/{libs/hypfs => }/include/xenhypfs.h (100%)
 rename tools/{libs/stat => }/include/xenstat.h (100%)
 rename tools/{libs/store/include/compat => include/xenstore-compat}/xs.h (100%)
 rename tools/{libs/store/include/compat => include/xenstore-compat}/xs_lib.h (100%)
 rename tools/{libs/store => }/include/xenstore.h (100%)
 rename tools/{xenstore => include}/xenstore_lib.h (100%)
 rename tools/{libs/toolcore => }/include/xentoolcore.h (100%)
 rename tools/{libs/toolcore => }/include/xentoolcore_internal.h (100%)
 rename tools/{libs/toollog => }/include/xentoollog.h (100%)

--
2.26.2



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/3] tools: avoid creating symbolic links during make
  2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
                   ` (3 preceding siblings ...)
  2020-10-05  8:38 ` [PATCH 0/3] tools: avoid creating symbolic links during make Christian Lindig
@ 2020-10-05  8:48 ` Bertrand Marquis
  2020-10-14 12:44 ` Jürgen Groß
  2020-10-23 13:26 ` Ian Jackson
  6 siblings, 0 replies; 10+ messages in thread
From: Bertrand Marquis @ 2020-10-05  8:48 UTC (permalink / raw)
  To: Juergen Gross
  Cc: open list:X86, Andrew Cooper, George Dunlap, Ian Jackson,
	Jan Beulich, Julien Grall, Stefano Stabellini, Wei Liu,
	Samuel Thibault, Christian Lindig, David Scott

--
Tested-by: Bertrand Marquis <bertrand.marquis@arm.com>

Work on Yocto Gategarth (including qemu and tools compilation).

Cheers
Bertrand

> On 2 Oct 2020, at 15:22, Juergen Gross <jgross@suse.com> wrote:
> 
> The rework of the Xen library build introduced creating some additional
> symbolic links during the build process.
> 
> This series is undoing that by moving all official Xen library headers
> to tools/include and by using include paths and the vpath directive
> when access to some private headers of another directory is needed.
> 
> Juergen Gross (3):
>  tools/libs: move official headers to common directory
>  tools/libs/guest: don't use symbolic links for xenctrl headers
>  tools/libs/store: don't use symbolic links for external files
> 
> .gitignore                                    |  5 ++--
> stubdom/mini-os.mk                            |  2 +-
> tools/Rules.mk                                |  5 ++--
> tools/{libs/vchan => }/include/libxenvchan.h  |  0
> tools/{libs/light => }/include/libxl.h        |  0
> tools/{libs/light => }/include/libxl_event.h  |  0
> tools/{libs/light => }/include/libxl_json.h   |  0
> tools/{libs/light => }/include/libxl_utils.h  |  0
> tools/{libs/light => }/include/libxl_uuid.h   |  0
> tools/{libs/util => }/include/libxlutil.h     |  0
> tools/{libs/call => }/include/xencall.h       |  0
> tools/{libs/ctrl => }/include/xenctrl.h       |  0
> .../{libs/ctrl => }/include/xenctrl_compat.h  |  0
> .../devicemodel => }/include/xendevicemodel.h |  0
> tools/{libs/evtchn => }/include/xenevtchn.h   |  0
> .../include/xenforeignmemory.h                |  0
> tools/{libs/gnttab => }/include/xengnttab.h   |  0
> tools/{libs/guest => }/include/xenguest.h     |  0
> tools/{libs/hypfs => }/include/xenhypfs.h     |  0
> tools/{libs/stat => }/include/xenstat.h       |  0
> .../compat => include/xenstore-compat}/xs.h   |  0
> .../xenstore-compat}/xs_lib.h                 |  0
> tools/{libs/store => }/include/xenstore.h     |  0
> tools/{xenstore => include}/xenstore_lib.h    |  0
> .../{libs/toolcore => }/include/xentoolcore.h |  0
> .../include/xentoolcore_internal.h            |  0
> tools/{libs/toollog => }/include/xentoollog.h |  0
> tools/libs/call/Makefile                      |  3 ---
> tools/libs/ctrl/Makefile                      |  3 ---
> tools/libs/devicemodel/Makefile               |  3 ---
> tools/libs/evtchn/Makefile                    |  2 --
> tools/libs/foreignmemory/Makefile             |  3 ---
> tools/libs/gnttab/Makefile                    |  3 ---
> tools/libs/guest/Makefile                     | 12 ++-------
> tools/libs/hypfs/Makefile                     |  3 ---
> tools/libs/libs.mk                            | 10 +++----
> tools/libs/light/Makefile                     | 27 +++++++++----------
> tools/libs/stat/Makefile                      |  2 --
> tools/libs/store/Makefile                     | 15 +++--------
> tools/libs/toolcore/Makefile                  |  9 +++----
> tools/libs/toollog/Makefile                   |  2 --
> tools/libs/util/Makefile                      |  3 ---
> tools/libs/vchan/Makefile                     |  3 ---
> tools/ocaml/libs/xentoollog/Makefile          |  2 +-
> tools/ocaml/libs/xentoollog/genlevels.py      |  2 +-
> 45 files changed, 32 insertions(+), 87 deletions(-)
> rename tools/{libs/vchan => }/include/libxenvchan.h (100%)
> rename tools/{libs/light => }/include/libxl.h (100%)
> rename tools/{libs/light => }/include/libxl_event.h (100%)
> rename tools/{libs/light => }/include/libxl_json.h (100%)
> rename tools/{libs/light => }/include/libxl_utils.h (100%)
> rename tools/{libs/light => }/include/libxl_uuid.h (100%)
> rename tools/{libs/util => }/include/libxlutil.h (100%)
> rename tools/{libs/call => }/include/xencall.h (100%)
> rename tools/{libs/ctrl => }/include/xenctrl.h (100%)
> rename tools/{libs/ctrl => }/include/xenctrl_compat.h (100%)
> rename tools/{libs/devicemodel => }/include/xendevicemodel.h (100%)
> rename tools/{libs/evtchn => }/include/xenevtchn.h (100%)
> rename tools/{libs/foreignmemory => }/include/xenforeignmemory.h (100%)
> rename tools/{libs/gnttab => }/include/xengnttab.h (100%)
> rename tools/{libs/guest => }/include/xenguest.h (100%)
> rename tools/{libs/hypfs => }/include/xenhypfs.h (100%)
> rename tools/{libs/stat => }/include/xenstat.h (100%)
> rename tools/{libs/store/include/compat => include/xenstore-compat}/xs.h (100%)
> rename tools/{libs/store/include/compat => include/xenstore-compat}/xs_lib.h (100%)
> rename tools/{libs/store => }/include/xenstore.h (100%)
> rename tools/{xenstore => include}/xenstore_lib.h (100%)
> rename tools/{libs/toolcore => }/include/xentoolcore.h (100%)
> rename tools/{libs/toolcore => }/include/xentoolcore_internal.h (100%)
> rename tools/{libs/toollog => }/include/xentoollog.h (100%)
> 
> -- 
> 2.26.2
> 
> 



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] tools/libs: move official headers to common directory
  2020-10-02 14:22 ` [PATCH 1/3] tools/libs: move official headers to common directory Juergen Gross
@ 2020-10-08 15:32   ` Wei Liu
  2020-10-12  4:19     ` Jürgen Groß
  0 siblings, 1 reply; 10+ messages in thread
From: Wei Liu @ 2020-10-08 15:32 UTC (permalink / raw)
  To: Juergen Gross
  Cc: xen-devel, Andrew Cooper, George Dunlap, Ian Jackson,
	Jan Beulich, Julien Grall, Stefano Stabellini, Wei Liu,
	Samuel Thibault, Christian Lindig, David Scott

On Fri, Oct 02, 2020 at 04:22:12PM +0200, Juergen Gross wrote:
> Instead of each library having an own include directory move the
> official headers to tools/include instead. This will drop the need to
> link those headers to tools/include and there is no need any longer
> to have library-specific include paths when building Xen.
> 
> While at it remove setting of the unused variable
> PKG_CONFIG_CFLAGS_LOCAL in libs/*/Makefile.
> 

Not sure about this.

Will this make packaging individual libraries more difficult?
Maintainers will need to comb through a large amount of headers to pick
the ones they want.

What do others think?

Wei.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] tools/libs: move official headers to common directory
  2020-10-08 15:32   ` Wei Liu
@ 2020-10-12  4:19     ` Jürgen Groß
  0 siblings, 0 replies; 10+ messages in thread
From: Jürgen Groß @ 2020-10-12  4:19 UTC (permalink / raw)
  To: Wei Liu
  Cc: xen-devel, Andrew Cooper, George Dunlap, Ian Jackson,
	Jan Beulich, Julien Grall, Stefano Stabellini, Samuel Thibault,
	Christian Lindig, David Scott

On 08.10.20 17:32, Wei Liu wrote:
> On Fri, Oct 02, 2020 at 04:22:12PM +0200, Juergen Gross wrote:
>> Instead of each library having an own include directory move the
>> official headers to tools/include instead. This will drop the need to
>> link those headers to tools/include and there is no need any longer
>> to have library-specific include paths when building Xen.
>>
>> While at it remove setting of the unused variable
>> PKG_CONFIG_CFLAGS_LOCAL in libs/*/Makefile.
>>
> 
> Not sure about this.
> 
> Will this make packaging individual libraries more difficult?

Not at all. This was meant for the pkg-config file used internally in
the Xen build, not for the ones installed on user's systems.

As there seems to be no need for that I believe we should drop that
extra hook. It can easily be reintroduced in case we need it in future.

> Maintainers will need to comb through a large amount of headers to pick
> the ones they want.
> 
> What do others think?


Juergen


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/3] tools: avoid creating symbolic links during make
  2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
                   ` (4 preceding siblings ...)
  2020-10-05  8:48 ` Bertrand Marquis
@ 2020-10-14 12:44 ` Jürgen Groß
  2020-10-23 13:26 ` Ian Jackson
  6 siblings, 0 replies; 10+ messages in thread
From: Jürgen Groß @ 2020-10-14 12:44 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, George Dunlap, Ian Jackson, Jan Beulich,
	Julien Grall, Stefano Stabellini, Wei Liu, Samuel Thibault,
	Christian Lindig, David Scott

Ping?

On 02.10.20 16:22, Juergen Gross wrote:
> The rework of the Xen library build introduced creating some additional
> symbolic links during the build process.
> 
> This series is undoing that by moving all official Xen library headers
> to tools/include and by using include paths and the vpath directive
> when access to some private headers of another directory is needed.
> 
> Juergen Gross (3):
>    tools/libs: move official headers to common directory
>    tools/libs/guest: don't use symbolic links for xenctrl headers
>    tools/libs/store: don't use symbolic links for external files
> 
>   .gitignore                                    |  5 ++--
>   stubdom/mini-os.mk                            |  2 +-
>   tools/Rules.mk                                |  5 ++--
>   tools/{libs/vchan => }/include/libxenvchan.h  |  0
>   tools/{libs/light => }/include/libxl.h        |  0
>   tools/{libs/light => }/include/libxl_event.h  |  0
>   tools/{libs/light => }/include/libxl_json.h   |  0
>   tools/{libs/light => }/include/libxl_utils.h  |  0
>   tools/{libs/light => }/include/libxl_uuid.h   |  0
>   tools/{libs/util => }/include/libxlutil.h     |  0
>   tools/{libs/call => }/include/xencall.h       |  0
>   tools/{libs/ctrl => }/include/xenctrl.h       |  0
>   .../{libs/ctrl => }/include/xenctrl_compat.h  |  0
>   .../devicemodel => }/include/xendevicemodel.h |  0
>   tools/{libs/evtchn => }/include/xenevtchn.h   |  0
>   .../include/xenforeignmemory.h                |  0
>   tools/{libs/gnttab => }/include/xengnttab.h   |  0
>   tools/{libs/guest => }/include/xenguest.h     |  0
>   tools/{libs/hypfs => }/include/xenhypfs.h     |  0
>   tools/{libs/stat => }/include/xenstat.h       |  0
>   .../compat => include/xenstore-compat}/xs.h   |  0
>   .../xenstore-compat}/xs_lib.h                 |  0
>   tools/{libs/store => }/include/xenstore.h     |  0
>   tools/{xenstore => include}/xenstore_lib.h    |  0
>   .../{libs/toolcore => }/include/xentoolcore.h |  0
>   .../include/xentoolcore_internal.h            |  0
>   tools/{libs/toollog => }/include/xentoollog.h |  0
>   tools/libs/call/Makefile                      |  3 ---
>   tools/libs/ctrl/Makefile                      |  3 ---
>   tools/libs/devicemodel/Makefile               |  3 ---
>   tools/libs/evtchn/Makefile                    |  2 --
>   tools/libs/foreignmemory/Makefile             |  3 ---
>   tools/libs/gnttab/Makefile                    |  3 ---
>   tools/libs/guest/Makefile                     | 12 ++-------
>   tools/libs/hypfs/Makefile                     |  3 ---
>   tools/libs/libs.mk                            | 10 +++----
>   tools/libs/light/Makefile                     | 27 +++++++++----------
>   tools/libs/stat/Makefile                      |  2 --
>   tools/libs/store/Makefile                     | 15 +++--------
>   tools/libs/toolcore/Makefile                  |  9 +++----
>   tools/libs/toollog/Makefile                   |  2 --
>   tools/libs/util/Makefile                      |  3 ---
>   tools/libs/vchan/Makefile                     |  3 ---
>   tools/ocaml/libs/xentoollog/Makefile          |  2 +-
>   tools/ocaml/libs/xentoollog/genlevels.py      |  2 +-
>   45 files changed, 32 insertions(+), 87 deletions(-)
>   rename tools/{libs/vchan => }/include/libxenvchan.h (100%)
>   rename tools/{libs/light => }/include/libxl.h (100%)
>   rename tools/{libs/light => }/include/libxl_event.h (100%)
>   rename tools/{libs/light => }/include/libxl_json.h (100%)
>   rename tools/{libs/light => }/include/libxl_utils.h (100%)
>   rename tools/{libs/light => }/include/libxl_uuid.h (100%)
>   rename tools/{libs/util => }/include/libxlutil.h (100%)
>   rename tools/{libs/call => }/include/xencall.h (100%)
>   rename tools/{libs/ctrl => }/include/xenctrl.h (100%)
>   rename tools/{libs/ctrl => }/include/xenctrl_compat.h (100%)
>   rename tools/{libs/devicemodel => }/include/xendevicemodel.h (100%)
>   rename tools/{libs/evtchn => }/include/xenevtchn.h (100%)
>   rename tools/{libs/foreignmemory => }/include/xenforeignmemory.h (100%)
>   rename tools/{libs/gnttab => }/include/xengnttab.h (100%)
>   rename tools/{libs/guest => }/include/xenguest.h (100%)
>   rename tools/{libs/hypfs => }/include/xenhypfs.h (100%)
>   rename tools/{libs/stat => }/include/xenstat.h (100%)
>   rename tools/{libs/store/include/compat => include/xenstore-compat}/xs.h (100%)
>   rename tools/{libs/store/include/compat => include/xenstore-compat}/xs_lib.h (100%)
>   rename tools/{libs/store => }/include/xenstore.h (100%)
>   rename tools/{xenstore => include}/xenstore_lib.h (100%)
>   rename tools/{libs/toolcore => }/include/xentoolcore.h (100%)
>   rename tools/{libs/toolcore => }/include/xentoolcore_internal.h (100%)
>   rename tools/{libs/toollog => }/include/xentoollog.h (100%)
> 



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/3] tools: avoid creating symbolic links during make
  2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
                   ` (5 preceding siblings ...)
  2020-10-14 12:44 ` Jürgen Groß
@ 2020-10-23 13:26 ` Ian Jackson
  6 siblings, 0 replies; 10+ messages in thread
From: Ian Jackson @ 2020-10-23 13:26 UTC (permalink / raw)
  To: Juergen Gross
  Cc: xen-devel, Andrew Cooper, George Dunlap, Jan Beulich,
	Julien Grall, Stefano Stabellini, Wei Liu, Samuel Thibault,
	Christian Lindig, David Scott

Juergen Gross writes ("[PATCH 0/3] tools: avoid creating symbolic links during make"):
> The rework of the Xen library build introduced creating some additional
> symbolic links during the build process.
> 
> This series is undoing that by moving all official Xen library headers
> to tools/include and by using include paths and the vpath directive
> when access to some private headers of another directory is needed.

I'm OK with these changes and inclined to give my ack and commit all
three.

I did have one observation: it is rather odd that all the
autogenerated header files are each generated by the relevant
tools/libs/foo/Makefile, but the file is in tools/include/.

This is particularly odd given that tools/include/ has a Makefile of
its own which mostly does install stuff.

Can we at least have a comment in tools/include/Makefile saying that
it is forbidden to add rules which build include files here, and
suggesting to the reader which other Makefiles to read ?

Thanks,
Ian.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-10-23 13:26 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-02 14:22 [PATCH 0/3] tools: avoid creating symbolic links during make Juergen Gross
2020-10-02 14:22 ` [PATCH 1/3] tools/libs: move official headers to common directory Juergen Gross
2020-10-08 15:32   ` Wei Liu
2020-10-12  4:19     ` Jürgen Groß
2020-10-02 14:22 ` [PATCH 2/3] tools/libs/guest: don't use symbolic links for xenctrl headers Juergen Gross
2020-10-02 14:22 ` [PATCH 3/3] tools/libs/store: don't use symbolic links for external files Juergen Gross
2020-10-05  8:38 ` [PATCH 0/3] tools: avoid creating symbolic links during make Christian Lindig
2020-10-05  8:48 ` Bertrand Marquis
2020-10-14 12:44 ` Jürgen Groß
2020-10-23 13:26 ` Ian Jackson

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.