* [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles
@ 2022-06-24 16:03 Anthony PERARD
2022-06-24 16:03 ` [XEN PATCH v3 01/25] tools/console: have one Makefile per program/directory Anthony PERARD
` (25 more replies)
0 siblings, 26 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:03 UTC (permalink / raw)
To: xen-devel
Cc: Anthony PERARD, Daniel P. Smith, Juergen Gross, Christian Lindig,
Daniel De Graaf, George Dunlap, Andrew Cooper, Jan Beulich,
David Scott, Stefano Stabellini, Tim Deegan, Wei Liu,
Julien Grall, Elena Ufimtseva, Nick Rosbrook,
Roger Pau Monné
Patch series available in this git branch:
https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git br.toolstack-build-system-v3
Changes in v3:
- rebased
- several new patches, starting with 13/25 "tools/libs/util: cleanup Makefile"
- introducing macros to deal with linking with in-tree xen libraries
- Add -Werror to CFLAGS for all builds in tools/
Changes in v2:
- one new patch
- other changes described in patch notes
Hi everyone,
I've been looking at reworking the build system we have for the "tools/", and
transforming it to something that suit it better. There are a lot of
dependencies between different sub-directories so it would be nice if GNU make
could actually handle them. This is possible with "non-recursive makefiles".
With non-recursive makefiles, make will have to load/include all the makefiles
and thus will have complete overview of all the dependencies. This will allow
make to build the necessary targets in other directory, and we won't need to
build sub-directories one by one.
To help with this transformation, I've chosen to go with a recent project
called "subdirmk". It help to deal with the fact that all makefiles will share
the same namespace, it is hooked into autoconf, we can easily run `make` from
any subdirectory. Together "autoconf" and "subdirmk" will also help to get
closer to be able to do out-of-tree build of the tools, but I'm mainly looking
to have non-recursive makefile.
Link to the project:
https://www.chiark.greenend.org.uk/ucgi/~ian/git/subdirmk.git/
But before getting to the main course, I've got quite a few cleanup and some
changes to the makefiles. I start the patch series with patches that remove old
left over stuff, then start reworking makefiles. They are some common changes like
removing the "build" targets in many places as "all" would be the more common
way to spell it and "all" is the default target anyway. They are other changes
related to the conversion to "subdirmk", I start to use the variable $(TARGETS)
in several makefiles, this variable will have a special meaning in subdirmk
which will build those target by default.
As for the conversion to non-recursive makefile, with subdirmk, I have this WIP
branch, it contains some changes that I'm trying out, some notes, and the
conversion, one Makefile per commit. Cleanup are still needed, some makefile
not converted yet, but it's otherwise mostly done.
https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git br.toolstack-build-system-v1-wip-extra
With that branch, you could tried something like:
./configure; cd tools/xl; make
and `xl` should be built as well as all the xen library needed.
Also, things like `make clean` or rebuild should be faster in the all tools/
directory.
Cheers,
Anthony PERARD (25):
tools/console: have one Makefile per program/directory
tools/debugger/gdbsx: Fix and cleanup makefiles
tools/examples: cleanup Makefile
tools/firmware/hvmloader: rework Makefile
tools/fuzz/libelf: rework makefile
tools/fuzz/x86_instruction_emulator: rework makefile
tools/hotplug: cleanup Makefiles
tools/libfsimage: Cleanup makefiles
tools/xenpaging: Rework makefile
tools/xentop: rework makefile
tools/xentrace: rework Makefile
.gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc}
tools/libs/util: cleanup Makefile
tools/flask/utils: list build targets in $(TARGETS)
libs/libs.mk: Rename $(LIB) to $(TARGETS)
libs/libs.mk: Remove the need for $(PKG_CONFIG_INST)
libs/libs.mk: Rework target headers.chk dependencies
tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*)
tools: Introduce $(xenlibs-ldlibs, ) macro
tools: Introduce $(xenlibs-ldflags, ) macro
tools/helper: Cleanup Makefile
tools/console: Use $(xenlibs-ldlibs,)
tools/helpers: Fix build of xen-init-dom0 with -Werror
tools: Add -Werror by default to all tools/
tools: Remove -Werror everywhere else
tools/configure.ac | 1 +
tools/Makefile | 2 +-
tools/console/Makefile | 49 +----------------
tools/console/client/Makefile | 37 +++++++++++++
tools/console/daemon/Makefile | 45 +++++++++++++++
tools/debugger/gdbsx/Makefile | 20 +++----
tools/debugger/gdbsx/gx/Makefile | 15 +++--
tools/debugger/gdbsx/xg/Makefile | 25 +++------
tools/debugger/kdd/Makefile | 1 -
tools/examples/Makefile | 25 ++-------
tools/firmware/hvmloader/Makefile | 16 +++---
tools/flask/utils/Makefile | 11 ++--
tools/fuzz/cpu-policy/Makefile | 2 +-
tools/fuzz/libelf/Makefile | 21 ++++---
tools/fuzz/x86_instruction_emulator/Makefile | 32 +++++------
tools/golang/xenlight/Makefile | 2 +-
tools/helpers/Makefile | 23 ++++----
tools/hotplug/FreeBSD/Makefile | 11 +---
tools/hotplug/Linux/Makefile | 16 ++----
tools/hotplug/Linux/systemd/Makefile | 16 +++---
tools/hotplug/NetBSD/Makefile | 9 +--
tools/hotplug/common/Makefile | 16 ++----
tools/libfsimage/common/Makefile | 11 +---
tools/libfsimage/ext2fs-lib/Makefile | 9 ---
tools/libfsimage/ext2fs/Makefile | 9 ---
tools/libfsimage/fat/Makefile | 9 ---
tools/libfsimage/iso9660/Makefile | 11 ----
tools/libfsimage/reiserfs/Makefile | 9 ---
tools/libfsimage/ufs/Makefile | 9 ---
tools/libfsimage/xfs/Makefile | 9 ---
tools/libfsimage/zfs/Makefile | 9 ---
tools/libs/util/Makefile | 3 +-
tools/misc/Makefile | 1 -
tools/tests/cpu-policy/Makefile | 2 +-
tools/tests/depriv/Makefile | 2 +-
tools/tests/resource/Makefile | 1 -
tools/tests/tsx/Makefile | 1 -
tools/tests/xenstore/Makefile | 1 -
tools/xcutils/Makefile | 2 -
tools/xenmon/Makefile | 1 -
tools/xenpaging/Makefile | 25 ++++-----
tools/xenpmd/Makefile | 1 -
tools/xentop/Makefile | 23 ++++----
tools/xentrace/Makefile | 21 +++----
tools/xl/Makefile | 2 +-
tools/Rules.mk | 55 ++++++++++++++-----
tools/debugger/gdbsx/Rules.mk | 2 +-
tools/firmware/Rules.mk | 2 -
tools/libfsimage/Rules.mk | 26 +++------
tools/libfsimage/common.mk | 11 ++++
tools/libs/libs.mk | 31 +++++------
tools/helpers/xen-init-dom0.c | 2 +
tools/ocaml/common.make | 2 +-
.gitignore | 35 ------------
config/Tools.mk.in | 1 +
tools/configure | 26 +++++++++
tools/console/client/.gitignore | 1 +
tools/console/daemon/.gitignore | 1 +
tools/fuzz/libelf/.gitignore | 2 +
.../fuzz/x86_instruction_emulator/.gitignore | 7 +++
tools/libs/.gitignore | 2 +
tools/xenstore/Makefile.common | 1 -
62 files changed, 349 insertions(+), 424 deletions(-)
create mode 100644 tools/console/client/Makefile
create mode 100644 tools/console/daemon/Makefile
create mode 100644 tools/libfsimage/common.mk
create mode 100644 tools/console/client/.gitignore
create mode 100644 tools/console/daemon/.gitignore
create mode 100644 tools/fuzz/libelf/.gitignore
create mode 100644 tools/fuzz/x86_instruction_emulator/.gitignore
--
Anthony PERARD
^ permalink raw reply [flat|nested] 73+ messages in thread
* [XEN PATCH v3 01/25] tools/console: have one Makefile per program/directory
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
@ 2022-06-24 16:03 ` Anthony PERARD
2022-07-08 15:08 ` Luca Fancellu
2022-06-24 16:03 ` [XEN PATCH v3 02/25] tools/debugger/gdbsx: Fix and cleanup makefiles Anthony PERARD
` (24 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:03 UTC (permalink / raw)
To: xen-devel
Cc: Anthony PERARD, Andrew Cooper, George Dunlap, Jan Beulich,
Julien Grall, Stefano Stabellini, Wei Liu
Sources of both xenconsoled and xenconsole are already separated into
different directory and don't share anything in common. Having two
different Makefile means it's easier to deal with *FLAGS.
Some common changes:
Rename $(BIN) to $(TARGETS), this will be useful later.
Stop removing *.so *.rpm *.a as they aren't created here.
Use $(OBJS-y) to list objects.
Update $(CFLAGS) for the directory rather than a single object.
daemon:
Remove the need for $(LDLIBS_xenconsoled), use $(LDLIBS) instead.
Remove the need for $(CONSOLE_CFLAGS-y) and use $(CFLAGS-y)
instead.
client:
Remove the unused $(LDLIBS_xenconsole)
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- create per-directory .gitignore
tools/console/Makefile | 49 ++------------------------------
tools/console/client/Makefile | 39 +++++++++++++++++++++++++
tools/console/daemon/Makefile | 50 +++++++++++++++++++++++++++++++++
.gitignore | 2 --
tools/console/client/.gitignore | 1 +
tools/console/daemon/.gitignore | 1 +
6 files changed, 94 insertions(+), 48 deletions(-)
create mode 100644 tools/console/client/Makefile
create mode 100644 tools/console/daemon/Makefile
create mode 100644 tools/console/client/.gitignore
create mode 100644 tools/console/daemon/.gitignore
diff --git a/tools/console/Makefile b/tools/console/Makefile
index 207c04c9cd..63bd2ac302 100644
--- a/tools/console/Makefile
+++ b/tools/console/Makefile
@@ -1,50 +1,7 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
+SUBDIRS-y := daemon client
-CFLAGS += $(CFLAGS_libxenctrl)
-CFLAGS += $(CFLAGS_libxenstore)
-LDLIBS += $(LDLIBS_libxenctrl)
-LDLIBS += $(LDLIBS_libxenstore)
-LDLIBS += $(SOCKET_LIBS)
-
-LDLIBS_xenconsoled += $(UTIL_LIBS)
-LDLIBS_xenconsoled += -lrt
-CONSOLE_CFLAGS-$(CONFIG_ARM) = -DCONFIG_ARM
-
-BIN = xenconsoled xenconsole
-
-.PHONY: all
-all: $(BIN)
-
-.PHONY: clean
-clean:
- $(RM) *.a *.so *.o *.rpm $(BIN) $(DEPS_RM)
- $(RM) client/*.o daemon/*.o
-
-.PHONY: distclean
-distclean: clean
-
-daemon/main.o: CFLAGS += -include $(XEN_ROOT)/tools/config.h
-daemon/io.o: CFLAGS += $(CFLAGS_libxenevtchn) $(CFLAGS_libxengnttab) $(CFLAGS_libxenforeignmemory) $(CONSOLE_CFLAGS-y)
-xenconsoled: $(patsubst %.c,%.o,$(wildcard daemon/*.c))
- $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) $(LDLIBS_libxenevtchn) $(LDLIBS_libxengnttab) $(LDLIBS_libxenforeignmemory) $(LDLIBS_xenconsoled) $(APPEND_LDFLAGS)
-
-client/main.o: CFLAGS += -include $(XEN_ROOT)/tools/config.h
-xenconsole: $(patsubst %.c,%.o,$(wildcard client/*.c))
- $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) $(LDLIBS_xenconsole) $(APPEND_LDFLAGS)
-
-.PHONY: install
-install: $(BIN)
- $(INSTALL_DIR) $(DESTDIR)/$(sbindir)
- $(INSTALL_PROG) xenconsoled $(DESTDIR)/$(sbindir)
- $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
- $(INSTALL_PROG) xenconsole $(DESTDIR)$(LIBEXEC_BIN)
-
-.PHONY: uninstall
-uninstall:
- rm -f $(DESTDIR)$(LIBEXEC_BIN)/xenconsole
- rm -f $(DESTDIR)$(sbindir)/xenconsoled
-
--include $(DEPS_INCLUDE)
+.PHONY: all clean install distclean uninstall
+all clean install distclean uninstall: %: subdirs-%
diff --git a/tools/console/client/Makefile b/tools/console/client/Makefile
new file mode 100644
index 0000000000..44176c6d93
--- /dev/null
+++ b/tools/console/client/Makefile
@@ -0,0 +1,39 @@
+XEN_ROOT=$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+CFLAGS += -Werror
+CFLAGS += $(CFLAGS_libxenctrl)
+CFLAGS += $(CFLAGS_libxenstore)
+CFLAGS += -include $(XEN_ROOT)/tools/config.h
+
+LDLIBS += $(LDLIBS_libxenctrl)
+LDLIBS += $(LDLIBS_libxenstore)
+LDLIBS += $(SOCKET_LIBS)
+
+OBJS-y := main.o
+
+TARGETS := xenconsole
+
+.PHONY: all
+all: $(TARGETS)
+
+xenconsole: $(OBJS-y)
+ $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) $(APPEND_LDFLAGS)
+
+.PHONY: install
+install: all
+ $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
+ $(INSTALL_PROG) xenconsole $(DESTDIR)$(LIBEXEC_BIN)
+
+.PHONY: uninstall
+uninstall:
+ rm -f $(DESTDIR)$(LIBEXEC_BIN)/xenconsole
+
+.PHONY: clean
+clean:
+ $(RM) *.o $(TARGETS) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/console/daemon/Makefile b/tools/console/daemon/Makefile
new file mode 100644
index 0000000000..0f004f0b14
--- /dev/null
+++ b/tools/console/daemon/Makefile
@@ -0,0 +1,50 @@
+XEN_ROOT=$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+CFLAGS += -Werror
+CFLAGS += $(CFLAGS_libxenctrl)
+CFLAGS += $(CFLAGS_libxenstore)
+CFLAGS += $(CFLAGS_libxenevtchn)
+CFLAGS += $(CFLAGS_libxengnttab)
+CFLAGS += $(CFLAGS_libxenforeignmemory)
+CFLAGS-$(CONFIG_ARM) += -DCONFIG_ARM
+CFLAGS += -include $(XEN_ROOT)/tools/config.h
+
+LDLIBS += $(LDLIBS_libxenctrl)
+LDLIBS += $(LDLIBS_libxenstore)
+LDLIBS += $(LDLIBS_libxenevtchn)
+LDLIBS += $(LDLIBS_libxengnttab)
+LDLIBS += $(LDLIBS_libxenforeignmemory)
+LDLIBS += $(SOCKET_LIBS)
+LDLIBS += $(UTIL_LIBS)
+LDLIBS += -lrt
+
+OBJS-y := main.o
+OBJS-y += io.o
+OBJS-y += utils.o
+
+TARGETS := xenconsoled
+
+.PHONY: all
+all: $(TARGETS)
+
+xenconsoled: $(OBJS-y)
+ $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) $(APPEND_LDFLAGS)
+
+.PHONY: install
+install: all
+ $(INSTALL_DIR) $(DESTDIR)/$(sbindir)
+ $(INSTALL_PROG) xenconsoled $(DESTDIR)/$(sbindir)
+
+.PHONY: uninstall
+uninstall:
+ rm -f $(DESTDIR)$(sbindir)/xenconsoled
+
+.PHONY: clean
+clean:
+ $(RM) *.o $(TARGETS) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+
+-include $(DEPS_INCLUDE)
diff --git a/.gitignore b/.gitignore
index 18ef56a780..7cf26051db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -160,8 +160,6 @@ tools/libs/util/libxenutil.map
tools/libs/vchan/headers.chk
tools/libs/vchan/libxenvchan.map
tools/libs/vchan/xenvchan.pc
-tools/console/xenconsole
-tools/console/xenconsoled
tools/debugger/gdb/gdb-6.2.1-linux-i386-xen/*
tools/debugger/gdb/gdb-6.2.1/*
tools/debugger/gdb/gdb-6.2.1.tar.bz2
diff --git a/tools/console/client/.gitignore b/tools/console/client/.gitignore
new file mode 100644
index 0000000000..b096a1d841
--- /dev/null
+++ b/tools/console/client/.gitignore
@@ -0,0 +1 @@
+/xenconsole
diff --git a/tools/console/daemon/.gitignore b/tools/console/daemon/.gitignore
new file mode 100644
index 0000000000..55c8f84664
--- /dev/null
+++ b/tools/console/daemon/.gitignore
@@ -0,0 +1 @@
+/xenconsoled
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 02/25] tools/debugger/gdbsx: Fix and cleanup makefiles
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
2022-06-24 16:03 ` [XEN PATCH v3 01/25] tools/console: have one Makefile per program/directory Anthony PERARD
@ 2022-06-24 16:03 ` Anthony PERARD
2022-07-08 15:23 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 03/25] tools/examples: cleanup Makefile Anthony PERARD
` (23 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:03 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Elena Ufimtseva, Wei Liu
gdbsx/:
- Make use of subdir facility for the "clean" target.
- No need to remove the *.a, they aren't in this dir.
- Avoid calling "distclean" in subdirs as "distclean" targets do only
call "clean", and the "clean" also runs "clean" in subdirs.
- Avoid the need to make "gx_all.a" and "xg_all.a" in the "all"
recipe by forcing make to check for update of "xg/xg_all.a" and
"gx/gx_all.a" by having "FORCE" as prerequisite. Now, when making
"gdbsx", make will recurse even when both *.a already exist.
- List target in $(TARGETS).
gdbsx/*/:
- Fix dependency on *.h.
- Remove some dead code.
- List targets in $(TARGETS).
- Remove "build" target.
- Cleanup "clean" targets.
- remove comments about the choice of "ar" instead of "ld"
- Use "$(AR)" instead of plain "ar".
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- also replace plain "ar" by "$(AR)"
tools/debugger/gdbsx/Makefile | 20 ++++++++++----------
tools/debugger/gdbsx/gx/Makefile | 15 +++++++--------
tools/debugger/gdbsx/xg/Makefile | 25 +++++++------------------
3 files changed, 24 insertions(+), 36 deletions(-)
diff --git a/tools/debugger/gdbsx/Makefile b/tools/debugger/gdbsx/Makefile
index 5571450a89..4aaf427c45 100644
--- a/tools/debugger/gdbsx/Makefile
+++ b/tools/debugger/gdbsx/Makefile
@@ -1,20 +1,20 @@
XEN_ROOT = $(CURDIR)/../../..
include ./Rules.mk
+SUBDIRS-y += gx
+SUBDIRS-y += xg
+
+TARGETS := gdbsx
+
.PHONY: all
-all:
- $(MAKE) -C gx
- $(MAKE) -C xg
- $(MAKE) gdbsx
+all: $(TARGETS)
.PHONY: clean
-clean:
- rm -f xg_all.a gx_all.a gdbsx
- set -e; for d in xg gx; do $(MAKE) -C $$d clean; done
+clean: subdirs-clean
+ rm -f $(TARGETS)
.PHONY: distclean
distclean: clean
- set -e; for d in xg gx; do $(MAKE) -C $$d distclean; done
.PHONY: install
install: all
@@ -28,7 +28,7 @@ uninstall:
gdbsx: gx/gx_all.a xg/xg_all.a
$(CC) $(LDFLAGS) -o $@ $^
-xg/xg_all.a:
+xg/xg_all.a: FORCE
$(MAKE) -C xg
-gx/gx_all.a:
+gx/gx_all.a: FORCE
$(MAKE) -C gx
diff --git a/tools/debugger/gdbsx/gx/Makefile b/tools/debugger/gdbsx/gx/Makefile
index 3b8467f799..e9859aea9c 100644
--- a/tools/debugger/gdbsx/gx/Makefile
+++ b/tools/debugger/gdbsx/gx/Makefile
@@ -2,21 +2,20 @@ XEN_ROOT = $(CURDIR)/../../../..
include ../Rules.mk
GX_OBJS := gx_comm.o gx_main.o gx_utils.o gx_local.o
-GX_HDRS := $(wildcard *.h)
+
+TARGETS := gx_all.a
.PHONY: all
-all: gx_all.a
+all: $(TARGETS)
.PHONY: clean
clean:
- rm -rf gx_all.a *.o .*.d
+ rm -f *.o $(TARGETS) $(DEPS_RM)
.PHONY: distclean
distclean: clean
-#%.o: %.c $(GX_HDRS) Makefile
-# $(CC) -c $(CFLAGS) -o $@ $<
-
-gx_all.a: $(GX_OBJS) Makefile $(GX_HDRS)
- ar cr $@ $(GX_OBJS) # problem with ld using -m32
+gx_all.a: $(GX_OBJS) Makefile
+ $(AR) cr $@ $(GX_OBJS)
+-include $(DEPS_INCLUDE)
diff --git a/tools/debugger/gdbsx/xg/Makefile b/tools/debugger/gdbsx/xg/Makefile
index acdcddf0d5..05325d6d81 100644
--- a/tools/debugger/gdbsx/xg/Makefile
+++ b/tools/debugger/gdbsx/xg/Makefile
@@ -1,35 +1,24 @@
XEN_ROOT = $(CURDIR)/../../../..
include ../Rules.mk
-XG_HDRS := xg_public.h
XG_OBJS := xg_main.o
CFLAGS += -D__XEN_TOOLS__
CFLAGS += $(CFLAGS_xeninclude)
+TARGETS := xg_all.a
.PHONY: all
-all: build
+all: $(TARGETS)
-.PHONY: build
-build: xg_all.a $(XG_HDRS) $(XG_OBJS) Makefile
-# build: mk-symlinks xg_all.a $(XG_HDRS) $(XG_OBJS) Makefile
-# build: mk-symlinks xg_all.a
-
-xg_all.a: $(XG_OBJS) Makefile $(XG_HDRS)
- ar cr $@ $(XG_OBJS) # problems using -m32 in ld
-# $(LD) -b elf32-i386 $(LDFLAGS) -r -o $@ $^
-# $(CC) -m32 -c -o $@ $^
-
-# xg_main.o: xg_main.c Makefile $(XG_HDRS)
-#$(CC) -c $(CFLAGS) -o $@ $<
-
-# %.o: %.c $(XG_HDRS) Makefile -- doesn't work as it won't overwrite Rules.mk
-#%.o: %.c -- doesn't recompile when .c changed
+xg_all.a: $(XG_OBJS) Makefile
+ $(AR) cr $@ $(XG_OBJS)
.PHONY: clean
clean:
- rm -rf xen xg_all.a $(XG_OBJS) .*.d
+ rm -f $(TARGETS) $(XG_OBJS) $(DEPS_RM)
.PHONY: distclean
distclean: clean
+
+-include $(DEPS_INCLUDE)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 03/25] tools/examples: cleanup Makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
2022-06-24 16:03 ` [XEN PATCH v3 01/25] tools/console: have one Makefile per program/directory Anthony PERARD
2022-06-24 16:03 ` [XEN PATCH v3 02/25] tools/debugger/gdbsx: Fix and cleanup makefiles Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-08 15:31 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile Anthony PERARD
` (22 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
Don't check if a target exist before installing it. For directory,
install doesn't complain, and for file it would prevent from updating
them. Also remove the existing loop and instead install all files with
a single call to $(INSTALL_DATA).
Remove XEN_CONFIGS-y which isn't used.
Remove "build" target.
Add an empty line after the first comment. The comment isn't about
$(XEN_READMES), it is about the makefile as a whole.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- remove existing loops in install targets and use a single call to
$(INSTALL_DATA) to install multiple files.
tools/examples/Makefile | 25 ++++++-------------------
1 file changed, 6 insertions(+), 19 deletions(-)
diff --git a/tools/examples/Makefile b/tools/examples/Makefile
index 14e24f4cb3..c839bf5603 100644
--- a/tools/examples/Makefile
+++ b/tools/examples/Makefile
@@ -2,6 +2,7 @@ XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
# Xen configuration dir and configs to go there.
+
XEN_READMES = README
XEN_CONFIGS += xlexample.hvm
@@ -10,14 +11,9 @@ XEN_CONFIGS += xlexample.pvhlinux
XEN_CONFIGS += xl.conf
XEN_CONFIGS += cpupool
-XEN_CONFIGS += $(XEN_CONFIGS-y)
-
.PHONY: all
all:
-.PHONY: build
-build:
-
.PHONY: install
install: all install-readmes install-configs
@@ -26,12 +22,8 @@ uninstall: uninstall-readmes uninstall-configs
.PHONY: install-readmes
install-readmes:
- [ -d $(DESTDIR)$(XEN_CONFIG_DIR) ] || \
- $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
- set -e; for i in $(XEN_READMES); \
- do [ -e $(DESTDIR)$(XEN_CONFIG_DIR)/$$i ] || \
- $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \
- done
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
+ $(INSTALL_DATA) $(XEN_READMES) $(DESTDIR)$(XEN_CONFIG_DIR)
.PHONY: uninstall-readmes
uninstall-readmes:
@@ -39,14 +31,9 @@ uninstall-readmes:
.PHONY: install-configs
install-configs: $(XEN_CONFIGS)
- [ -d $(DESTDIR)$(XEN_CONFIG_DIR) ] || \
- $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
- [ -d $(DESTDIR)$(XEN_CONFIG_DIR)/auto ] || \
- $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)/auto
- set -e; for i in $(XEN_CONFIGS); \
- do [ -e $(DESTDIR)$(XEN_CONFIG_DIR)/$$i ] || \
- $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \
- done
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)/auto
+ $(INSTALL_DATA) $(XEN_CONFIGS) $(DESTDIR)$(XEN_CONFIG_DIR)
.PHONY: uninstall-configs
uninstall-configs:
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (2 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 03/25] tools/examples: cleanup Makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-08 15:39 ` Luca Fancellu
2022-07-11 13:52 ` Jan Beulich
2022-06-24 16:04 ` [XEN PATCH v3 05/25] tools/fuzz/libelf: rework makefile Anthony PERARD
` (21 subsequent siblings)
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel
Cc: Anthony PERARD, Jan Beulich, Andrew Cooper, Roger Pau Monné,
Wei Liu
Setup proper dependencies with libacpi so we don't need to run "make
hvmloader" in the "all" target. ("build.o" new prerequisite isn't
exactly proper but a side effect of building the $(DSDT_FILES) is to
generate the "ssdt_*.h" needed by "build.o".)
Make use if "-iquote" instead of a plain "-I".
For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use
full path to "mkhex" instead of a relative one. Lastly, add "-f" flag
to "mv", in case the target already exist.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/firmware/hvmloader/Makefile | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index b754220839..fc20932110 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -60,8 +60,7 @@ ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM)
endif
.PHONY: all
-all: acpi
- $(MAKE) hvmloader
+all: hvmloader
.PHONY: acpi
acpi:
@@ -73,12 +72,15 @@ smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
ACPI_PATH = ../../libacpi
DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o
-$(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
+$(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
CFLAGS += -I$(ACPI_PATH)
vpath build.c $(ACPI_PATH)
vpath static_tables.c $(ACPI_PATH)
OBJS += $(ACPI_OBJS)
+$(DSDT_FILES): acpi
+build.o: $(DSDT_FILES)
+
hvmloader: $(OBJS) hvmloader.lds
$(LD) $(LDFLAGS_DIRECT) -N -T hvmloader.lds -o $@ $(OBJS)
@@ -87,21 +89,21 @@ roms.inc: $(ROMS)
ifneq ($(ROMBIOS_ROM),)
echo "#ifdef ROM_INCLUDE_ROMBIOS" >> $@.new
- sh ../../misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
+ $(SHELL) $(XEN_ROOT)/tools/misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
echo "#endif" >> $@.new
endif
ifneq ($(STDVGA_ROM),)
echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
- sh ../../misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
+ $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
echo "#endif" >> $@.new
endif
ifneq ($(CIRRUSVGA_ROM),)
echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
- sh ../../misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
+ $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
echo "#endif" >> $@.new
endif
- mv $@.new $@
+ mv -f $@.new $@
.PHONY: clean
clean:
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 05/25] tools/fuzz/libelf: rework makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (3 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-11 11:23 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: " Anthony PERARD
` (20 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel
Cc: Anthony PERARD, Andrew Cooper, George Dunlap, Jan Beulich,
Julien Grall, Stefano Stabellini, Wei Liu
Rename ELF_LIB_OBJS to LIBELF_OBJS as to have the same name as in
libs/guest/.
Replace "-I" by "-iquote".
Remove the use of "vpath". It will not works when we will convert this
makefile to subdirmk. Instead, we create symlinks to the source files.
Since we are creating a new .gitignore for the links, also move the
existing entry to it.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- create a per-directory .gitignore to add new entry and existing one
tools/fuzz/libelf/Makefile | 21 ++++++++++-----------
.gitignore | 1 -
tools/fuzz/libelf/.gitignore | 2 ++
3 files changed, 12 insertions(+), 12 deletions(-)
create mode 100644 tools/fuzz/libelf/.gitignore
diff --git a/tools/fuzz/libelf/Makefile b/tools/fuzz/libelf/Makefile
index 9eb30ee40c..9211f75951 100644
--- a/tools/fuzz/libelf/Makefile
+++ b/tools/fuzz/libelf/Makefile
@@ -1,25 +1,24 @@
XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
-# libelf fuzz target
-vpath %.c ../../../xen/common/libelf
-CFLAGS += -I../../../xen/common/libelf
-ELF_SRCS-y += libelf-tools.c libelf-loader.c libelf-dominfo.c
-ELF_LIB_OBJS := $(patsubst %.c,%.o,$(ELF_SRCS-y))
+LIBELF_OBJS := libelf-tools.o libelf-loader.o libelf-dominfo.o
-$(patsubst %.c,%.o,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
-
-$(ELF_LIB_OBJS): CFLAGS += -DFUZZ_NO_LIBXC $(CFLAGS_xeninclude)
+CFLAGS += -iquote ../../../xen/common/libelf
+$(LIBELF_OBJS): CFLAGS += -Wno-pointer-sign
+$(LIBELF_OBJS): CFLAGS += -DFUZZ_NO_LIBXC $(CFLAGS_xeninclude)
libelf-fuzzer.o: CFLAGS += $(CFLAGS_xeninclude)
-libelf.a: libelf-fuzzer.o $(ELF_LIB_OBJS)
+$(LIBELF_OBJS:.o=.c): libelf-%.c: ../../../xen/common/libelf/libelf-%.c FORCE
+ ln -nsf $< $@
+
+libelf.a: libelf-fuzzer.o $(LIBELF_OBJS)
$(AR) rc $@ $^
.PHONY: libelf-fuzzer-all
libelf-fuzzer-all: libelf.a libelf-fuzzer.o
-afl-libelf-fuzzer: afl-libelf-fuzzer.o libelf-fuzzer.o $(ELF_LIB_OBJS)
+afl-libelf-fuzzer: afl-libelf-fuzzer.o libelf-fuzzer.o $(LIBELF_OBJS)
$(CC) $(CFLAGS) $^ -o $@
# Common targets
@@ -31,7 +30,7 @@ distclean: clean
.PHONY: clean
clean:
- rm -f *.o .*.d *.a *-libelf-fuzzer
+ rm -f *.o .*.d *.a *-libelf-fuzzer $(LIBELF_OBJS:.o=.c)
.PHONY: install
install: all
diff --git a/.gitignore b/.gitignore
index 7cf26051db..6410dfbc72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -195,7 +195,6 @@ tools/flask/utils/flask-loadpolicy
tools/flask/utils/flask-setenforce
tools/flask/utils/flask-set-bool
tools/flask/utils/flask-label-pci
-tools/fuzz/libelf/afl-libelf-fuzzer
tools/fuzz/x86_instruction_emulator/asm
tools/fuzz/x86_instruction_emulator/afl-harness
tools/fuzz/x86_instruction_emulator/afl-harness-cov
diff --git a/tools/fuzz/libelf/.gitignore b/tools/fuzz/libelf/.gitignore
new file mode 100644
index 0000000000..ed634214c9
--- /dev/null
+++ b/tools/fuzz/libelf/.gitignore
@@ -0,0 +1,2 @@
+/afl-libelf-fuzzer
+/libelf-*.c
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: rework makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (4 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 05/25] tools/fuzz/libelf: rework makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-11 13:16 ` Luca Fancellu
2022-07-11 14:08 ` Jan Beulich
2022-06-24 16:04 ` [XEN PATCH v3 07/25] tools/hotplug: cleanup Makefiles Anthony PERARD
` (19 subsequent siblings)
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel
Cc: Anthony PERARD, Andrew Cooper, George Dunlap, Jan Beulich,
Julien Grall, Stefano Stabellini, Wei Liu, Roger Pau Monné
Rework dependencies of all objects. We don't need to add dependencies
for headers that $(CC) is capable of generating, we only need to
include $(DEPS_INCLUDE). Some dependencies are still needed so make
knows to generate symlinks for them.
We remove the use of "vpath" for cpuid.c. While it works fine for now,
when we will convert this makefile to subdirmk, vpath will not be
usable. Also, "-iquote" is now needed to build "cpuid.o".
Replace "-I." by "-iquote .", so it applies to double-quote includes
only.
Rather than checking if a symlink exist, always regenerate the
symlink. So if the source tree changed location, the symlink is
updated.
Since we are creating a new .gitignore for the symlink, also move the
entry to it.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- create a new per-directory .gitignore to add the new entry and existing ones
tools/fuzz/x86_instruction_emulator/Makefile | 32 ++++++++-----------
.gitignore | 6 ----
.../fuzz/x86_instruction_emulator/.gitignore | 7 ++++
3 files changed, 21 insertions(+), 24 deletions(-)
create mode 100644 tools/fuzz/x86_instruction_emulator/.gitignore
diff --git a/tools/fuzz/x86_instruction_emulator/Makefile b/tools/fuzz/x86_instruction_emulator/Makefile
index 1a6dbf94e1..f11437e6a2 100644
--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -8,33 +8,27 @@ else
x86-insn-fuzz-all:
endif
-# Add libx86 to the build
-vpath %.c $(XEN_ROOT)/xen/lib/x86
+cpuid.c: %: $(XEN_ROOT)/xen/lib/x86/% FORCE
+ ln -nsf $< $@
-x86_emulate:
- [ -L $@ ] || ln -sf $(XEN_ROOT)/xen/arch/x86/$@
+x86_emulate: FORCE
+ ln -nsf $(XEN_ROOT)/xen/arch/x86/$@
x86_emulate/%: x86_emulate ;
-x86-emulate.c x86-emulate.h wrappers.c: %:
- [ -L $* ] || ln -sf $(XEN_ROOT)/tools/tests/x86_emulator/$*
+x86-emulate.c x86-emulate.h wrappers.c: %: $(XEN_ROOT)/tools/tests/x86_emulator/% FORCE
+ ln -nsf $< $@
-CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -I.
+CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -iquote .
+cpuid.o: CFLAGS += -iquote $(XEN_ROOT)/xen/lib/x86
GCOV_FLAGS := --coverage
%-cov.o: %.c
$(CC) -c $(CFLAGS) $(GCOV_FLAGS) $< -o $@
-x86.h := $(addprefix $(XEN_ROOT)/tools/include/xen/asm/,\
- x86-vendors.h x86-defns.h msr-index.h) \
- $(addprefix $(XEN_ROOT)/tools/include/xen/lib/x86/, \
- cpuid.h cpuid-autogen.h)
-x86_emulate.h := x86-emulate.h x86_emulate/x86_emulate.h $(x86.h)
-
-# x86-emulate.c will be implicit for both
-x86-emulate.o x86-emulate-cov.o: x86_emulate/x86_emulate.c $(x86_emulate.h)
-
-fuzz-emul.o fuzz-emulate-cov.o cpuid.o wrappers.o: $(x86_emulate.h)
+x86-emulate.h: x86_emulate/x86_emulate.h
+x86-emulate.o x86-emulate-cov.o: x86-emulate.h x86_emulate/x86_emulate.c
+fuzz-emul.o fuzz-emul-cov.o wrappers.o: x86-emulate.h
x86-insn-fuzzer.a: fuzz-emul.o x86-emulate.o cpuid.o
$(AR) rc $@ $^
@@ -51,7 +45,7 @@ all: x86-insn-fuzz-all
.PHONY: distclean
distclean: clean
- rm -f x86_emulate x86-emulate.c x86-emulate.h
+ rm -f x86_emulate x86-emulate.c x86-emulate.h wrappers.c cpuid.c
.PHONY: clean
clean:
@@ -67,3 +61,5 @@ afl: afl-harness
.PHONY: afl-cov
afl-cov: afl-harness-cov
+
+-include $(DEPS_INCLUDE)
diff --git a/.gitignore b/.gitignore
index 6410dfbc72..8b6886f3fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -195,12 +195,6 @@ tools/flask/utils/flask-loadpolicy
tools/flask/utils/flask-setenforce
tools/flask/utils/flask-set-bool
tools/flask/utils/flask-label-pci
-tools/fuzz/x86_instruction_emulator/asm
-tools/fuzz/x86_instruction_emulator/afl-harness
-tools/fuzz/x86_instruction_emulator/afl-harness-cov
-tools/fuzz/x86_instruction_emulator/wrappers.c
-tools/fuzz/x86_instruction_emulator/x86_emulate
-tools/fuzz/x86_instruction_emulator/x86-emulate.[ch]
tools/helpers/init-xenstore-domain
tools/helpers/xen-init-dom0
tools/hotplug/common/hotplugpath.sh
diff --git a/tools/fuzz/x86_instruction_emulator/.gitignore b/tools/fuzz/x86_instruction_emulator/.gitignore
new file mode 100644
index 0000000000..65c3cf9702
--- /dev/null
+++ b/tools/fuzz/x86_instruction_emulator/.gitignore
@@ -0,0 +1,7 @@
+/asm
+/afl-harness
+/afl-harness-cov
+/cpuid.c
+/wrappers.c
+/x86_emulate
+/x86-emulate.[ch]
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 07/25] tools/hotplug: cleanup Makefiles
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (5 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: " Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 11:02 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 08/25] tools/libfsimage: Cleanup makefiles Anthony PERARD
` (18 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
Remove "build" targets.
Use simply expanded variables when recursively expanded variable
aren't needed. (Use ":=" instead of "=".)
Don't check if a directory already exist when installing, just create
it.
Fix $(HOTPLUGPATH), it shouldn't have any double-quote.
Some reindentation.
FreeBSD, "hotplugpath.sh" is already installed by common/.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/hotplug/FreeBSD/Makefile | 11 +++--------
tools/hotplug/Linux/Makefile | 16 ++++++----------
tools/hotplug/Linux/systemd/Makefile | 16 +++++++---------
tools/hotplug/NetBSD/Makefile | 9 +++------
tools/hotplug/common/Makefile | 16 ++++++----------
5 files changed, 25 insertions(+), 43 deletions(-)
diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile
index de9928cd86..a6552c9884 100644
--- a/tools/hotplug/FreeBSD/Makefile
+++ b/tools/hotplug/FreeBSD/Makefile
@@ -2,18 +2,15 @@ XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
# Xen script dir and scripts to go there.
-XEN_SCRIPTS = vif-bridge block
+XEN_SCRIPTS := vif-bridge block
-XEN_SCRIPT_DATA =
+XEN_SCRIPT_DATA :=
-XEN_RCD_PROG = rc.d/xencommons rc.d/xendriverdomain
+XEN_RCD_PROG := rc.d/xencommons rc.d/xendriverdomain
.PHONY: all
all:
-.PHONY: build
-build:
-
.PHONY: install
install: install-scripts install-rcd
@@ -44,12 +41,10 @@ install-rcd:
do \
$(INSTALL_PROG) $$i $(DESTDIR)$(INITD_DIR); \
done
- $(INSTALL_DATA) ../common/hotplugpath.sh $(DESTDIR)$(XEN_SCRIPT_DIR)
.PHONY: uninstall-rcd
uninstall-rcd:
rm -f $(addprefix $(DESTDIR)$(INITD_DIR)/, $(XEN_RCD_PROG))
- rm -f $(DESTDIR)$(XEN_SCRIPT_DIR)/hotplugpath.sh
.PHONY: clean
clean:
diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile
index 0b1d111d7e..9a7b3a3515 100644
--- a/tools/hotplug/Linux/Makefile
+++ b/tools/hotplug/Linux/Makefile
@@ -2,7 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
# Xen script dir and scripts to go there.
-XEN_SCRIPTS = vif-bridge
+XEN_SCRIPTS := vif-bridge
XEN_SCRIPTS += vif-route
XEN_SCRIPTS += vif-nat
XEN_SCRIPTS += vif-openvswitch
@@ -22,16 +22,13 @@ XEN_SCRIPTS += launch-xenstore
SUBDIRS-$(CONFIG_SYSTEMD) += systemd
-XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh
+XEN_SCRIPT_DATA := xen-script-common.sh locking.sh logging.sh
XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
XEN_SCRIPT_DATA += block-common.sh
.PHONY: all
all: subdirs-all
-.PHONY: build
-build:
-
.PHONY: install
install: install-initd install-scripts subdirs-install
@@ -41,9 +38,9 @@ uninstall: uninstall-initd uninstall-scripts subdirs-uninstall
# See docs/misc/distro_mapping.txt for INITD_DIR location
.PHONY: install-initd
install-initd:
- [ -d $(DESTDIR)$(INITD_DIR) ] || $(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
- [ -d $(DESTDIR)$(SYSCONFIG_DIR) ] || $(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR)
- [ -d $(DESTDIR)$(LIBEXEC_BIN) ] || $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
+ $(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
+ $(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR)
+ $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
$(INSTALL_DATA) init.d/sysconfig.xendomains $(DESTDIR)$(SYSCONFIG_DIR)/xendomains
$(INSTALL_DATA) init.d/sysconfig.xencommons $(DESTDIR)$(SYSCONFIG_DIR)/xencommons
$(INSTALL_PROG) xendomains $(DESTDIR)$(LIBEXEC_BIN)
@@ -64,8 +61,7 @@ uninstall-initd:
.PHONY: install-scripts
install-scripts:
- [ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \
- $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
set -e; for i in $(XEN_SCRIPTS); \
do \
$(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
diff --git a/tools/hotplug/Linux/systemd/Makefile b/tools/hotplug/Linux/systemd/Makefile
index a5d41d86ef..26df2a43b1 100644
--- a/tools/hotplug/Linux/systemd/Makefile
+++ b/tools/hotplug/Linux/systemd/Makefile
@@ -1,12 +1,12 @@
XEN_ROOT = $(CURDIR)/../../../..
include $(XEN_ROOT)/tools/Rules.mk
-XEN_SYSTEMD_MODULES = xen.conf
+XEN_SYSTEMD_MODULES := xen.conf
-XEN_SYSTEMD_MOUNT = proc-xen.mount
+XEN_SYSTEMD_MOUNT := proc-xen.mount
XEN_SYSTEMD_MOUNT += var-lib-xenstored.mount
-XEN_SYSTEMD_SERVICE = xenstored.service
+XEN_SYSTEMD_SERVICE := xenstored.service
XEN_SYSTEMD_SERVICE += xenconsoled.service
XEN_SYSTEMD_SERVICE += xen-qemu-dom0-disk-backend.service
XEN_SYSTEMD_SERVICE += xendomains.service
@@ -14,7 +14,7 @@ XEN_SYSTEMD_SERVICE += xen-watchdog.service
XEN_SYSTEMD_SERVICE += xen-init-dom0.service
XEN_SYSTEMD_SERVICE += xendriverdomain.service
-ALL_XEN_SYSTEMD = $(XEN_SYSTEMD_MODULES) \
+ALL_XEN_SYSTEMD := $(XEN_SYSTEMD_MODULES) \
$(XEN_SYSTEMD_MOUNT) \
$(XEN_SYSTEMD_SERVICE)
@@ -30,10 +30,8 @@ distclean: clean
.PHONY: install
install: $(ALL_XEN_SYSTEMD)
- [ -d $(DESTDIR)$(XEN_SYSTEMD_DIR) ] || \
- $(INSTALL_DIR) $(DESTDIR)$(XEN_SYSTEMD_DIR)
- [ -d $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD) ] || \
- $(INSTALL_DIR) $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD)
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_SYSTEMD_DIR)
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD)
$(INSTALL_DATA) *.service $(DESTDIR)$(XEN_SYSTEMD_DIR)
$(INSTALL_DATA) *.mount $(DESTDIR)$(XEN_SYSTEMD_DIR)
$(INSTALL_DATA) *.conf $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD)
@@ -48,5 +46,5 @@ $(XEN_SYSTEMD_MODULES):
rm -f $@.tmp
for mod in $(LINUX_BACKEND_MODULES) ; do \
echo $$mod ; \
- done > $@.tmp
+ done > $@.tmp
$(call move-if-changed,$@.tmp,$@)
diff --git a/tools/hotplug/NetBSD/Makefile b/tools/hotplug/NetBSD/Makefile
index f909ffa367..1cd3db2ccb 100644
--- a/tools/hotplug/NetBSD/Makefile
+++ b/tools/hotplug/NetBSD/Makefile
@@ -2,22 +2,19 @@ XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
# Xen script dir and scripts to go there.
-XEN_SCRIPTS =
+XEN_SCRIPTS :=
XEN_SCRIPTS += locking.sh
XEN_SCRIPTS += block
XEN_SCRIPTS += vif-bridge
XEN_SCRIPTS += vif-ip
XEN_SCRIPTS += qemu-ifup
-XEN_SCRIPT_DATA =
-XEN_RCD_PROG = rc.d/xencommons rc.d/xendomains rc.d/xen-watchdog rc.d/xendriverdomain
+XEN_SCRIPT_DATA :=
+XEN_RCD_PROG := rc.d/xencommons rc.d/xendomains rc.d/xen-watchdog rc.d/xendriverdomain
.PHONY: all
all:
-.PHONY: build
-build:
-
.PHONY: install
install: install-scripts install-rcd
diff --git a/tools/hotplug/common/Makefile b/tools/hotplug/common/Makefile
index ef48bfacc9..e8a8dbea6c 100644
--- a/tools/hotplug/common/Makefile
+++ b/tools/hotplug/common/Makefile
@@ -1,22 +1,19 @@
XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
-HOTPLUGPATH="hotplugpath.sh"
+HOTPLUGPATH := hotplugpath.sh
# OS-independent hotplug scripts go in this directory
# Xen scripts to go there.
-XEN_SCRIPTS =
-XEN_SCRIPT_DATA = $(HOTPLUGPATH)
+XEN_SCRIPTS :=
+XEN_SCRIPT_DATA := $(HOTPLUGPATH)
genpath-target = $(call buildmakevars2file,$(HOTPLUGPATH))
$(eval $(genpath-target))
.PHONY: all
-all: build
-
-.PHONY: build
-build: $(HOTPLUGPATH)
+all: $(HOTPLUGPATH)
.PHONY: install
install: install-scripts
@@ -25,9 +22,8 @@ install: install-scripts
uninstall: uninstall-scripts
.PHONY: install-scripts
-install-scripts: build
- [ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \
- $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
+install-scripts: all
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
set -e; for i in $(XEN_SCRIPTS); \
do \
$(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 08/25] tools/libfsimage: Cleanup makefiles
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (6 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 07/25] tools/hotplug: cleanup Makefiles Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 12:07 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 09/25] tools/xenpaging: Rework makefile Anthony PERARD
` (17 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
Remove the need for "fs-*" targets by creating a "common.mk" which
have flags that are common to libfsimage/common/ and the other
libfsimages/*/ directories.
In common.mk, make $(PIC_OBJS) a recursively expanded variable so it
doesn't matter where $(LIB_SRCS-y) is defined, and remove the extra
$(PIC_OBJS) from libfsimage/common/Makefile.
Use a $(TARGETS) variable to list things to be built. And $(TARGETS)
can be use in the clean target in common.mk.
iso9660/:
Remove the explicit dependency between fsys_iso9660.c and
iso9660.h, this is handled automaticaly by the .*.d dependency files,
and iso9660.h already exist.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/libfsimage/common/Makefile | 11 +++--------
tools/libfsimage/ext2fs-lib/Makefile | 9 ---------
tools/libfsimage/ext2fs/Makefile | 9 ---------
tools/libfsimage/fat/Makefile | 9 ---------
tools/libfsimage/iso9660/Makefile | 11 -----------
tools/libfsimage/reiserfs/Makefile | 9 ---------
tools/libfsimage/ufs/Makefile | 9 ---------
tools/libfsimage/xfs/Makefile | 9 ---------
tools/libfsimage/zfs/Makefile | 9 ---------
tools/libfsimage/Rules.mk | 26 ++++++++------------------
tools/libfsimage/common.mk | 11 +++++++++++
11 files changed, 22 insertions(+), 100 deletions(-)
create mode 100644 tools/libfsimage/common.mk
diff --git a/tools/libfsimage/common/Makefile b/tools/libfsimage/common/Makefile
index 0c5a34baea..79f8cfd28e 100644
--- a/tools/libfsimage/common/Makefile
+++ b/tools/libfsimage/common/Makefile
@@ -1,5 +1,5 @@
XEN_ROOT = $(CURDIR)/../../..
-include $(XEN_ROOT)/tools/libfsimage/Rules.mk
+include $(XEN_ROOT)/tools/libfsimage/common.mk
MAJOR := $(shell $(XEN_ROOT)/version.sh $(XEN_ROOT)/xen/Makefile)
MINOR = 0
@@ -13,12 +13,10 @@ LDFLAGS += $(PTHREAD_LDFLAGS)
LIB_SRCS-y = fsimage.c fsimage_plugin.c fsimage_grub.c
-PIC_OBJS := $(patsubst %.c,%.opic,$(LIB_SRCS-y))
-
-LIB = libxenfsimage.so libxenfsimage.so.$(MAJOR) libxenfsimage.so.$(MAJOR).$(MINOR)
+TARGETS = libxenfsimage.so libxenfsimage.so.$(MAJOR) libxenfsimage.so.$(MAJOR).$(MINOR)
.PHONY: all
-all: $(LIB)
+all: $(TARGETS)
.PHONY: install
install: all
@@ -40,9 +38,6 @@ uninstall:
rm -f $(DESTDIR)$(libdir)/libxenfsimage.so.$(MAJOR)
rm -f $(DESTDIR)$(libdir)/libxenfsimage.so.$(MAJOR).$(MINOR)
-clean distclean::
- rm -f $(LIB)
-
libxenfsimage.so: libxenfsimage.so.$(MAJOR)
ln -sf $< $@
libxenfsimage.so.$(MAJOR): libxenfsimage.so.$(MAJOR).$(MINOR)
diff --git a/tools/libfsimage/ext2fs-lib/Makefile b/tools/libfsimage/ext2fs-lib/Makefile
index 431a79068e..b9b560df75 100644
--- a/tools/libfsimage/ext2fs-lib/Makefile
+++ b/tools/libfsimage/ext2fs-lib/Makefile
@@ -9,13 +9,4 @@ FS_LIBDEPS = $(EXTFS_LIBS)
# Include configure output (config.h)
CFLAGS += -include $(XEN_ROOT)/tools/config.h
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/ext2fs/Makefile b/tools/libfsimage/ext2fs/Makefile
index c62ae359ac..fe01f98148 100644
--- a/tools/libfsimage/ext2fs/Makefile
+++ b/tools/libfsimage/ext2fs/Makefile
@@ -4,13 +4,4 @@ LIB_SRCS-y = fsys_ext2fs.c
FS = ext2fs
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/fat/Makefile b/tools/libfsimage/fat/Makefile
index 7ee5e7588d..58bcc0751d 100644
--- a/tools/libfsimage/fat/Makefile
+++ b/tools/libfsimage/fat/Makefile
@@ -4,13 +4,4 @@ LIB_SRCS-y = fsys_fat.c
FS = fat
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/iso9660/Makefile b/tools/libfsimage/iso9660/Makefile
index bc86baf2c0..acf3164046 100644
--- a/tools/libfsimage/iso9660/Makefile
+++ b/tools/libfsimage/iso9660/Makefile
@@ -4,15 +4,4 @@ LIB_SRCS-y = fsys_iso9660.c
FS = iso9660
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
-fsys_iso9660.c: iso9660.h
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/reiserfs/Makefile b/tools/libfsimage/reiserfs/Makefile
index 5acfedf25e..42b751e007 100644
--- a/tools/libfsimage/reiserfs/Makefile
+++ b/tools/libfsimage/reiserfs/Makefile
@@ -4,13 +4,4 @@ LIB_SRCS-y = fsys_reiserfs.c
FS = reiserfs
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/ufs/Makefile b/tools/libfsimage/ufs/Makefile
index f32b9178bd..cca4f0a588 100644
--- a/tools/libfsimage/ufs/Makefile
+++ b/tools/libfsimage/ufs/Makefile
@@ -4,13 +4,4 @@ LIB_SRCS-y = fsys_ufs.c
FS = ufs
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/xfs/Makefile b/tools/libfsimage/xfs/Makefile
index 54eeb6e35e..ebac7baf14 100644
--- a/tools/libfsimage/xfs/Makefile
+++ b/tools/libfsimage/xfs/Makefile
@@ -4,13 +4,4 @@ LIB_SRCS-y = fsys_xfs.c
FS = xfs
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/zfs/Makefile b/tools/libfsimage/zfs/Makefile
index 084e5ec08d..434a9c3580 100644
--- a/tools/libfsimage/zfs/Makefile
+++ b/tools/libfsimage/zfs/Makefile
@@ -28,13 +28,4 @@ LIB_SRCS-y = zfs_lzjb.c zfs_sha256.c zfs_fletcher.c fsi_zfs.c fsys_zfs.c
FS = zfs
-.PHONY: all
-all: fs-all
-
-.PHONY: install
-install: fs-install
-
-.PHONY: uninstall
-uninstall: fs-uninstall
-
include $(XEN_ROOT)/tools/libfsimage/Rules.mk
diff --git a/tools/libfsimage/Rules.mk b/tools/libfsimage/Rules.mk
index bb6d42abb4..cf37d6cb0d 100644
--- a/tools/libfsimage/Rules.mk
+++ b/tools/libfsimage/Rules.mk
@@ -1,25 +1,18 @@
-include $(XEN_ROOT)/tools/Rules.mk
-
-CFLAGS += -Wno-unknown-pragmas -I$(XEN_ROOT)/tools/libfsimage/common/ -DFSIMAGE_FSDIR=\"$(FSDIR)\"
-CFLAGS += -Werror -D_GNU_SOURCE
-LDFLAGS += -L../common/
-
-PIC_OBJS := $(patsubst %.c,%.opic,$(LIB_SRCS-y))
-
-FSDIR = $(libdir)/xenfsimage
+include $(XEN_ROOT)/tools/libfsimage/common.mk
FSLIB = fsimage.so
+TARGETS += $(FSLIB)
-.PHONY: fs-all
-fs-all: $(FSLIB)
+.PHONY: all
+all: $(TARGETS)
-.PHONY: fs-install
-fs-install: fs-all
+.PHONY: install
+install: all
$(INSTALL_DIR) $(DESTDIR)$(FSDIR)/$(FS)
$(INSTALL_PROG) $(FSLIB) $(DESTDIR)$(FSDIR)/$(FS)
-.PHONY: fs-uninstall
-fs-uninstall:
+.PHONY: uninstall
+uninstall:
rm -f $(addprefix $(DESTDIR)$(FSDIR)/$(FS)/, $(FSLIB))
if [ -d $(DESTDIR)$(FSDIR)/$(FS) ]; then \
rmdir $(DESTDIR)$(FSDIR)/$(FS); \
@@ -28,7 +21,4 @@ fs-uninstall:
$(FSLIB): $(PIC_OBJS)
$(CC) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $^ -lxenfsimage $(FS_LIBDEPS) $(APPEND_LDFLAGS)
-clean distclean::
- rm -f $(PIC_OBJS) $(FSLIB) $(DEPS_RM)
-
-include $(DEPS_INCLUDE)
diff --git a/tools/libfsimage/common.mk b/tools/libfsimage/common.mk
new file mode 100644
index 0000000000..77bc957f27
--- /dev/null
+++ b/tools/libfsimage/common.mk
@@ -0,0 +1,11 @@
+include $(XEN_ROOT)/tools/Rules.mk
+
+FSDIR := $(libdir)/xenfsimage
+CFLAGS += -Wno-unknown-pragmas -I$(XEN_ROOT)/tools/libfsimage/common/ -DFSIMAGE_FSDIR=\"$(FSDIR)\"
+CFLAGS += -Werror -D_GNU_SOURCE
+LDFLAGS += -L../common/
+
+PIC_OBJS = $(patsubst %.c,%.opic,$(LIB_SRCS-y))
+
+clean distclean::
+ rm -f $(PIC_OBJS) $(TARGETS) $(DEPS_RM)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 09/25] tools/xenpaging: Rework makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (7 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 08/25] tools/libfsimage: Cleanup makefiles Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 12:17 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 10/25] tools/xentop: rework makefile Anthony PERARD
` (16 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
- Rename $(SRCS) to $(OBJS-y), we don't need to collect sources.
- Rename $(IBINS) to $(TARGETS)
- Stop cleaning "xen" and non-set variable $(LIB).
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/xenpaging/Makefile | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/tools/xenpaging/Makefile b/tools/xenpaging/Makefile
index 04743b335c..e2ed9eaa3f 100644
--- a/tools/xenpaging/Makefile
+++ b/tools/xenpaging/Makefile
@@ -5,33 +5,33 @@ CFLAGS += $(CFLAGS_libxentoollog) $(CFLAGS_libxenevtchn) $(CFLAGS_libxenctrl) $(
LDLIBS += $(LDLIBS_libxentoollog) $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) $(PTHREAD_LIBS)
LDFLAGS += $(PTHREAD_LDFLAGS)
-POLICY = default
+POLICY := default
-SRC :=
-SRCS += file_ops.c xenpaging.c policy_$(POLICY).c
-SRCS += pagein.c
+OBJS-y := file_ops.o
+OBJS-y += xenpaging.o
+OBJS-y += policy_$(POLICY).o
+OBJS-y += pagein.o
CFLAGS += -Werror
CFLAGS += -Wno-unused
-OBJS = $(SRCS:.c=.o)
-IBINS = xenpaging
+TARGETS := xenpaging
-all: $(IBINS)
+all: $(TARGETS)
-xenpaging: $(OBJS)
+xenpaging: $(OBJS-y)
$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(APPEND_LDFLAGS)
install: all
$(INSTALL_DIR) -m 0700 $(DESTDIR)$(XEN_PAGING_DIR)
$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
- $(INSTALL_PROG) $(IBINS) $(DESTDIR)$(LIBEXEC_BIN)
+ $(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC_BIN)
uninstall:
- rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(IBINS))
+ rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(TARGETS))
clean:
- rm -f *.o *~ $(DEPS_RM) xen TAGS $(IBINS) $(LIB)
+ rm -f *.o *~ $(DEPS_RM) TAGS $(TARGETS)
distclean: clean
@@ -39,6 +39,6 @@ distclean: clean
.PHONY: TAGS
TAGS:
- etags -t $(SRCS) *.h
+ etags -t *.c *.h
-include $(DEPS_INCLUDE)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 10/25] tools/xentop: rework makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (8 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 09/25] tools/xenpaging: Rework makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 13:13 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 11/25] tools/xentrace: rework Makefile Anthony PERARD
` (15 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
Add "xentop" to "TARGETS" because this variable will be useful later.
Always define all the targets, even when configured with
--disable-monitor, instead don't visit the subdirectory.
This mean xentop/ isn't visited anymore during "make clean" that's how
most other subdirs in the tools/ works.
Also add missing "xentop" rules. It only works without it because we
still have make's built-ins rules and variables, but fix this to not
have to rely on them.
Use $(TARGETS) with $(INSTALL_PROG), and thus install into the
directory rather than spelling the program name.
In the "clean" rule, use $(RM) and remove all "*.o" instead of just
one object.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- use $(RM) in clean.
- remove all *.o instead of just one object in "clean" rule.
- in "install" rule, make use of $(TARGETS). install into a dir rather
than to a specific path, in case there's more targets.
tools/Makefile | 2 +-
tools/xentop/Makefile | 21 +++++++++------------
2 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/tools/Makefile b/tools/Makefile
index 79b4c7e3de..0c1d8b64a4 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -17,7 +17,7 @@ SUBDIRS-$(CONFIG_XCUTILS) += xcutils
SUBDIRS-$(CONFIG_X86) += firmware
SUBDIRS-y += console
SUBDIRS-y += xenmon
-SUBDIRS-y += xentop
+SUBDIRS-$(XENSTAT_XENTOP) += xentop
SUBDIRS-y += libfsimage
SUBDIRS-$(CONFIG_Linux) += vchan
diff --git a/tools/xentop/Makefile b/tools/xentop/Makefile
index 0034114684..7bd96f34d5 100644
--- a/tools/xentop/Makefile
+++ b/tools/xentop/Makefile
@@ -13,36 +13,33 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-ifneq ($(XENSTAT_XENTOP),y)
-.PHONY: all install xentop uninstall
-all install xentop uninstall:
-else
-
CFLAGS += -DGCC_PRINTF -Werror $(CFLAGS_libxenstat)
LDLIBS += $(LDLIBS_libxenstat) $(CURSES_LIBS) $(TINFO_LIBS) $(SOCKET_LIBS) -lm
CFLAGS += -DHOST_$(XEN_OS)
# Include configure output (config.h)
CFLAGS += -include $(XEN_ROOT)/tools/config.h
-LDFLAGS += $(APPEND_LDFLAGS)
+
+TARGETS := xentop
.PHONY: all
-all: xentop
+all: $(TARGETS)
+
+xentop: xentop.o
+ $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS) $(APPEND_LDFLAGS)
.PHONY: install
-install: xentop
+install: all
$(INSTALL_DIR) $(DESTDIR)$(sbindir)
- $(INSTALL_PROG) xentop $(DESTDIR)$(sbindir)/xentop
+ $(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(sbindir)
.PHONY: uninstall
uninstall:
rm -f $(DESTDIR)$(sbindir)/xentop
-endif
-
.PHONY: clean
clean:
- rm -f xentop xentop.o $(DEPS_RM)
+ $(RM) *.o $(TARGETS) $(DEPS_RM)
.PHONY: distclean
distclean: clean
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 11/25] tools/xentrace: rework Makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (9 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 10/25] tools/xentop: rework makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 13:30 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc} Anthony PERARD
` (14 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, George Dunlap, Wei Liu
Remove "build" targets.
Use "$(TARGETS)" to list binary to be built.
Cleanup "clean" rule.
Also drop conditional install of $(BIN) and $(LIBBIN) as those two
variables are now always populated.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- fix typo in title
- drop conditional install of $(BIN) and $(LIBBIN)
tools/xentrace/Makefile | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile
index 9fb7fc96e7..0995fa9203 100644
--- a/tools/xentrace/Makefile
+++ b/tools/xentrace/Makefile
@@ -14,36 +14,31 @@ SBIN = xentrace xentrace_setsize
LIBBIN = xenctx
SCRIPTS = xentrace_format
-.PHONY: all
-all: build
+TARGETS := $(BIN) $(SBIN) $(LIBBIN)
-.PHONY: build
-build: $(BIN) $(SBIN) $(LIBBIN)
+.PHONY: all
+all: $(TARGETS)
.PHONY: install
-install: build
+install: all
$(INSTALL_DIR) $(DESTDIR)$(bindir)
$(INSTALL_DIR) $(DESTDIR)$(sbindir)
- [ -z "$(LIBBIN)" ] || $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
-ifneq ($(BIN),)
+ $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
$(INSTALL_PROG) $(BIN) $(DESTDIR)$(bindir)
-endif
$(INSTALL_PROG) $(SBIN) $(DESTDIR)$(sbindir)
$(INSTALL_PYTHON_PROG) $(SCRIPTS) $(DESTDIR)$(bindir)
- [ -z "$(LIBBIN)" ] || $(INSTALL_PROG) $(LIBBIN) $(DESTDIR)$(LIBEXEC_BIN)
+ $(INSTALL_PROG) $(LIBBIN) $(DESTDIR)$(LIBEXEC_BIN)
.PHONY: uninstall
uninstall:
rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(LIBBIN))
rm -f $(addprefix $(DESTDIR)$(bindir)/, $(SCRIPTS))
rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(SBIN))
-ifneq ($(BIN),)
rm -f $(addprefix $(DESTDIR)$(bindir)/, $(BIN))
-endif
.PHONY: clean
clean:
- $(RM) *.a *.so *.o *.rpm $(BIN) $(SBIN) $(LIBBIN) $(DEPS_RM)
+ $(RM) *.o $(TARGETS) $(DEPS_RM)
.PHONY: distclean
distclean: clean
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc}
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (10 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 11/25] tools/xentrace: rework Makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 10:15 ` Juergen Gross
2022-07-05 13:17 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile Anthony PERARD
` (13 subsequent siblings)
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel
Cc: Anthony PERARD, Andrew Cooper, George Dunlap, Jan Beulich,
Julien Grall, Stefano Stabellini, Wei Liu, Juergen Gross
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v2:
- move new .gitignore entries to the one in tools/libs/
.gitignore | 26 --------------------------
tools/libs/.gitignore | 2 ++
2 files changed, 2 insertions(+), 26 deletions(-)
diff --git a/.gitignore b/.gitignore
index 8b6886f3fd..1de28c833c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -106,26 +106,8 @@ tools/config.cache
config/Tools.mk
config/Stubdom.mk
config/Docs.mk
-tools/libs/toolcore/headers.chk
-tools/libs/toolcore/xentoolcore.pc
-tools/libs/toollog/headers.chk
-tools/libs/toollog/xentoollog.pc
-tools/libs/evtchn/headers.chk
-tools/libs/evtchn/xenevtchn.pc
-tools/libs/gnttab/headers.chk
-tools/libs/gnttab/xengnttab.pc
-tools/libs/hypfs/headers.chk
-tools/libs/hypfs/xenhypfs.pc
-tools/libs/call/headers.chk
-tools/libs/call/xencall.pc
tools/libs/ctrl/libxenctrl.map
-tools/libs/ctrl/xencontrol.pc
-tools/libs/foreignmemory/headers.chk
-tools/libs/foreignmemory/xenforeignmemory.pc
-tools/libs/devicemodel/headers.chk
-tools/libs/devicemodel/xendevicemodel.pc
tools/libs/guest/libxenguest.map
-tools/libs/guest/xenguest.pc
tools/libs/guest/xc_bitops.h
tools/libs/guest/xc_core.h
tools/libs/guest/xc_core_arm.h
@@ -145,21 +127,13 @@ tools/libs/light/testidl.c
tools/libs/light/test_timedereg
tools/libs/light/test_fdderegrace
tools/libs/light/tmp.*
-tools/libs/light/xenlight.pc
-tools/libs/stat/headers.chk
tools/libs/stat/libxenstat.map
-tools/libs/stat/xenstat.pc
-tools/libs/store/headers.chk
tools/libs/store/list.h
tools/libs/store/utils.h
-tools/libs/store/xenstore.pc
tools/libs/store/xs_lib.c
-tools/libs/util/*.pc
tools/libs/util/libxlu_cfg_y.output
tools/libs/util/libxenutil.map
-tools/libs/vchan/headers.chk
tools/libs/vchan/libxenvchan.map
-tools/libs/vchan/xenvchan.pc
tools/debugger/gdb/gdb-6.2.1-linux-i386-xen/*
tools/debugger/gdb/gdb-6.2.1/*
tools/debugger/gdb/gdb-6.2.1.tar.bz2
diff --git a/tools/libs/.gitignore b/tools/libs/.gitignore
index 4a13126144..1ad7c7f0cb 100644
--- a/tools/libs/.gitignore
+++ b/tools/libs/.gitignore
@@ -1 +1,3 @@
+*/*.pc
+*/headers.chk
*/headers.lst
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (11 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc} Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 10:18 ` Juergen Gross
2022-07-05 13:20 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 14/25] tools/flask/utils: list build targets in $(TARGETS) Anthony PERARD
` (12 subsequent siblings)
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu, Juergen Gross
Remove -I. from CFLAGS, it isn't necessary.
Removed $(AUTOSRCS), it isn't used.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/libs/util/Makefile | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/libs/util/Makefile b/tools/libs/util/Makefile
index ffe507b379..493d2e00be 100644
--- a/tools/libs/util/Makefile
+++ b/tools/libs/util/Makefile
@@ -11,7 +11,7 @@ OBJS-y += libxlu_pci.o
CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
-Wno-declaration-after-statement -Wformat-nonliteral
-CFLAGS += -I. $(CFLAGS_libxenctrl)
+CFLAGS += $(CFLAGS_libxenctrl)
CFLAGS += $(PTHREAD_CFLAGS)
LDFLAGS += $(PTHREAD_LDFLAGS)
@@ -29,7 +29,6 @@ ifeq ($(BISON),)
endif
AUTOINCS = libxlu_cfg_y.h libxlu_cfg_l.h libxlu_disk_l.h
-AUTOSRCS = libxlu_cfg_y.c libxlu_cfg_l.c
LIBHEADER := libxlutil.h
PKG_CONFIG_NAME := Xlutil
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 14/25] tools/flask/utils: list build targets in $(TARGETS)
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (12 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-12 1:30 ` Henry Wang
2022-06-24 16:04 ` [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS) Anthony PERARD
` (11 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Daniel De Graaf, Daniel P. Smith, Wei Liu
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/flask/utils/Makefile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tools/flask/utils/Makefile b/tools/flask/utils/Makefile
index db567b13dc..6be134142a 100644
--- a/tools/flask/utils/Makefile
+++ b/tools/flask/utils/Makefile
@@ -4,10 +4,10 @@ include $(XEN_ROOT)/tools/Rules.mk
CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenctrl)
-CLIENTS := flask-loadpolicy flask-setenforce flask-getenforce flask-label-pci flask-get-bool flask-set-bool
+TARGETS := flask-loadpolicy flask-setenforce flask-getenforce flask-label-pci flask-get-bool flask-set-bool
.PHONY: all
-all: $(CLIENTS)
+all: $(TARGETS)
flask-loadpolicy: loadpolicy.o
$(CC) $(LDFLAGS) $< $(LDLIBS) $(LDLIBS_libxenctrl) -o $@
@@ -29,7 +29,7 @@ flask-set-bool: set-bool.o
.PHONY: clean
clean:
- $(RM) *.o $(CLIENTS) $(DEPS_RM)
+ $(RM) *.o $(TARGETS) $(DEPS_RM)
.PHONY: distclean
distclean: clean
@@ -37,10 +37,10 @@ distclean: clean
.PHONY: install
install: all
$(INSTALL_DIR) $(DESTDIR)$(sbindir)
- $(INSTALL_PROG) $(CLIENTS) $(DESTDIR)$(sbindir)
+ $(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(sbindir)
.PHONY: uninstall
uninstall:
- rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(CLIENTS))
+ rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(TARGETS))
-include $(DEPS_INCLUDE)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS)
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (13 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 14/25] tools/flask/utils: list build targets in $(TARGETS) Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 10:19 ` Juergen Gross
2022-07-05 13:21 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST) Anthony PERARD
` (10 subsequent siblings)
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu, Juergen Gross
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/libs/libs.mk | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index 58d8166b09..e02f91f95e 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -23,9 +23,9 @@ LDLIBS += $(foreach lib, $(USELIBS_$(LIBNAME)), $(LDLIBS_libxen$(lib)))
PIC_OBJS := $(OBJS-y:.o=.opic)
LIB_FILE_NAME = $(FILENAME_$(LIBNAME))
-LIB := lib$(LIB_FILE_NAME).a
+TARGETS := lib$(LIB_FILE_NAME).a
ifneq ($(nosharedlibs),y)
-LIB += lib$(LIB_FILE_NAME).so
+TARGETS += lib$(LIB_FILE_NAME).so
endif
PKG_CONFIG ?= $(LIB_FILE_NAME).pc
@@ -55,7 +55,7 @@ $(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
.PHONY: all
-all: headers.chk $(LIB) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
+all: headers.chk $(TARGETS) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
ifneq ($(NO_HEADERS_CHK),y)
headers.chk:
@@ -124,7 +124,7 @@ TAGS:
.PHONY: clean
clean::
- rm -rf $(LIB) *~ $(DEPS_RM) $(OBJS-y) $(PIC_OBJS)
+ rm -rf $(TARGETS) *~ $(DEPS_RM) $(OBJS-y) $(PIC_OBJS)
rm -f lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR) lib$(LIB_FILE_NAME).so.$(MAJOR)
rm -f headers.chk headers.lst
rm -f $(PKG_CONFIG)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST)
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (14 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS) Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 10:22 ` Juergen Gross
2022-07-05 13:27 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies Anthony PERARD
` (9 subsequent siblings)
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu, Juergen Gross
We can simply use $(PKG_CONFIG) to set the parameters, and add it to
$(TARGETS) as necessary.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/libs/libs.mk | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index e02f91f95e..7aee449370 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -37,10 +37,10 @@ PKG_CONFIG_LIB := $(LIB_FILE_NAME)
PKG_CONFIG_REQPRIV := $(subst $(space),$(comma),$(strip $(foreach lib,$(patsubst ctrl,control,$(USELIBS_$(LIBNAME))),xen$(lib))))
ifneq ($(CONFIG_LIBXC_MINIOS),y)
-PKG_CONFIG_INST := $(PKG_CONFIG)
-$(PKG_CONFIG_INST): PKG_CONFIG_PREFIX = $(prefix)
-$(PKG_CONFIG_INST): PKG_CONFIG_INCDIR = $(includedir)
-$(PKG_CONFIG_INST): PKG_CONFIG_LIBDIR = $(libdir)
+TARGETS += $(PKG_CONFIG)
+$(PKG_CONFIG): PKG_CONFIG_PREFIX = $(prefix)
+$(PKG_CONFIG): PKG_CONFIG_INCDIR = $(includedir)
+$(PKG_CONFIG): PKG_CONFIG_LIBDIR = $(libdir)
endif
PKG_CONFIG_LOCAL := $(PKG_CONFIG_DIR)/$(PKG_CONFIG)
@@ -55,7 +55,7 @@ $(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
.PHONY: all
-all: headers.chk $(TARGETS) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
+all: headers.chk $(TARGETS) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
ifneq ($(NO_HEADERS_CHK),y)
headers.chk:
@@ -127,7 +127,6 @@ clean::
rm -rf $(TARGETS) *~ $(DEPS_RM) $(OBJS-y) $(PIC_OBJS)
rm -f lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR) lib$(LIB_FILE_NAME).so.$(MAJOR)
rm -f headers.chk headers.lst
- rm -f $(PKG_CONFIG)
.PHONY: distclean
distclean: clean
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (15 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST) Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 10:23 ` Juergen Gross
2022-07-05 13:29 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 18/25] tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*) Anthony PERARD
` (8 subsequent siblings)
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu, Juergen Gross
There is no need to call the "headers.chk" target when it isn't
wanted, so it never need to be .PHONY.
Also, there is no more reason to separate the prerequisites from the
recipe.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/libs/libs.mk | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index 7aee449370..f778a7df82 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -55,22 +55,20 @@ $(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
.PHONY: all
-all: headers.chk $(TARGETS) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
+all: $(TARGETS) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
ifneq ($(NO_HEADERS_CHK),y)
-headers.chk:
+all: headers.chk
+
+headers.chk: $(LIBHEADERS) $(AUTOINCS)
for i in $(filter %.h,$^); do \
$(CC) -x c -ansi -Wall -Werror $(CFLAGS_xeninclude) \
-S -o /dev/null $$i || exit 1; \
echo $$i; \
done >$@.new
mv $@.new $@
-else
-.PHONY: headers.chk
endif
-headers.chk: $(LIBHEADERS) $(AUTOINCS)
-
headers.lst: FORCE
@{ set -e; $(foreach h,$(LIBHEADERS),echo $(h);) } > $@.tmp
@$(call move-if-changed,$@.tmp,$@)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 18/25] tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*)
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (16 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 10:26 ` Juergen Gross
2022-06-24 16:04 ` [XEN PATCH v3 19/25] tools: Introduce $(xenlibs-ldlibs, ) macro Anthony PERARD
` (7 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu, Juergen Gross
This patch introduce a new macro $(xenlibs-dependencies,) to generate
a list of all the xen library that a library is list against, and they
are listed only once. We use the side effect of $(sort ) which remove
duplicates.
This is used by another macro $(xenlibs-rpath,) which is to replace
$(SHDEPS_libxen*).
In libs.mk, we don't need to $(sort ) SHLIB_lib* anymore as this was used
to remove duplicates and they are no more duplicates.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/Rules.mk | 29 ++++++++++++++++-------------
tools/libs/libs.mk | 2 +-
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 47424935ba..23979ed254 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -61,13 +61,8 @@ endif
# public headers. Users of libfoo are therefore transitively
# using libbaz's header but not linking against libbaz.
#
-# SHDEPS_libfoo: Flags for linking recursive dependencies of
-# libfoo. Must contain SHLIB for every library which
-# libfoo links against. So must contain both
-# $(SHLIB_libbar) and $(SHLIB_libbaz).
-#
# SHLIB_libfoo: Flags for recursively linking against libfoo. Must
-# contains SHDEPS_libfoo and:
+# contains $(call xenlibs-rpath,foo) and:
# -Wl,-rpath-link=<directory containing libfoo.so>
#
# CFLAGS_libfoo: Flags for compiling against libfoo. Must add the
@@ -79,23 +74,31 @@ endif
# libfoo.
#
# LDLIBS_libfoo: Flags for linking against libfoo. Must contain
-# $(SHDEPS_libfoo) and the path to libfoo.so
+# $(call xenlibs-rpath,foo) and the path to libfoo.so
#
# Consumers of libfoo should include $(CFLAGS_libfoo) and
# $(LDLIBS_libfoo) in their appropriate directories. They should not
# include any CFLAGS or LDLIBS relating to libbar or libbaz unless
# they use those libraries directly (not via libfoo) too.
-#
-# Consumers of libfoo should not directly use $(SHDEPS_libfoo) or
-# $(SHLIB_libfoo)
+
+# Give the list of Xen library that the libraries in $(1) are linked against,
+# directly or indirectly.
+define xenlibs-dependencies
+ $(sort $(foreach lib,$(1), \
+ $(USELIBS_$(lib)) $(call xenlibs-dependencies,$(USELIBS_$(lib)))))
+endef
+
+# Flags for linking recursive dependencies of Xen libraries in $(1)
+define xenlibs-rpath
+ $(addprefix -Wl$(comma)-rpath-link=$(XEN_ROOT)/tools/libs/,$(call xenlibs-dependencies,$(1)))
+endef
define LIB_defs
FILENAME_$(1) ?= xen$(1)
XEN_libxen$(1) = $$(XEN_ROOT)/tools/libs/$(1)
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))
+ SHLIB_libxen$(1) = $$(call xenlibs-rpath,$(1)) -Wl,-rpath-link=$$(XEN_libxen$(1))
+ LDLIBS_libxen$(1) = $$(call xenlibs-rpath,$(1)) $$(XEN_libxen$(1))/lib$$(FILENAME_$(1))$$(libextension)
endef
$(foreach lib,$(LIBS_LIBS),$(eval $(call LIB_defs,$(lib))))
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index f778a7df82..d7e1274249 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -32,7 +32,7 @@ PKG_CONFIG ?= $(LIB_FILE_NAME).pc
PKG_CONFIG_NAME ?= Xen$(LIBNAME)
PKG_CONFIG_DESC ?= The $(PKG_CONFIG_NAME) library for Xen hypervisor
PKG_CONFIG_VERSION := $(MAJOR).$(MINOR)
-PKG_CONFIG_USELIBS := $(sort $(SHLIB_libxen$(LIBNAME)))
+PKG_CONFIG_USELIBS := $(SHLIB_libxen$(LIBNAME))
PKG_CONFIG_LIB := $(LIB_FILE_NAME)
PKG_CONFIG_REQPRIV := $(subst $(space),$(comma),$(strip $(foreach lib,$(patsubst ctrl,control,$(USELIBS_$(LIBNAME))),xen$(lib))))
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 19/25] tools: Introduce $(xenlibs-ldlibs, ) macro
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (17 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 18/25] tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*) Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 10:29 ` Juergen Gross
2022-06-24 16:04 ` [XEN PATCH v3 20/25] tools: Introduce $(xenlibs-ldflags, " Anthony PERARD
` (6 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu, Juergen Gross
This can be used when linking against multiple in-tree Xen libraries,
and avoid duplicated flags. It can be used instead of multiple
$(LDLIBS_libxen*).
For now, replace the open-coding in libs.mk.
The macro $(xenlibs-libs, ) will be useful later when only the path to
the libraries is wanted (e.g. for checking for dependencies).
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/Rules.mk | 16 ++++++++++++++--
tools/libs/libs.mk | 2 +-
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 23979ed254..ce77dd2eb1 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -93,12 +93,24 @@ define xenlibs-rpath
$(addprefix -Wl$(comma)-rpath-link=$(XEN_ROOT)/tools/libs/,$(call xenlibs-dependencies,$(1)))
endef
+# Provide a path for each library in $(1)
+define xenlibs-libs
+ $(foreach lib,$(1), \
+ $(XEN_ROOT)/tools/libs/$(lib)/lib$(FILENAME_$(lib))$(libextension))
+endef
+
+# Flags for linking against all Xen libraries listed in $(1)
+define xenlibs-ldlibs
+ $(call xenlibs-rpath,$(1)) $(call xenlibs-libs,$(1)) \
+ $(foreach lib,$(1),$(xenlibs-ldlibs-$(lib)))
+endef
+
define LIB_defs
FILENAME_$(1) ?= xen$(1)
XEN_libxen$(1) = $$(XEN_ROOT)/tools/libs/$(1)
CFLAGS_libxen$(1) = $$(CFLAGS_xeninclude)
SHLIB_libxen$(1) = $$(call xenlibs-rpath,$(1)) -Wl,-rpath-link=$$(XEN_libxen$(1))
- LDLIBS_libxen$(1) = $$(call xenlibs-rpath,$(1)) $$(XEN_libxen$(1))/lib$$(FILENAME_$(1))$$(libextension)
+ LDLIBS_libxen$(1) = $$(call xenlibs-ldlibs,$(1))
endef
$(foreach lib,$(LIBS_LIBS),$(eval $(call LIB_defs,$(lib))))
@@ -108,7 +120,7 @@ $(foreach lib,$(LIBS_LIBS),$(eval $(call LIB_defs,$(lib))))
CFLAGS_libxenctrl += -D__XEN_TOOLS__
ifeq ($(CONFIG_Linux),y)
-LDLIBS_libxenstore += -ldl
+xenlibs-ldlibs-store := -ldl
endif
CFLAGS_libxenlight += $(CFLAGS_libxenctrl)
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index d7e1274249..2b8e7a6128 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -18,7 +18,7 @@ CFLAGS += -Werror -Wmissing-prototypes
CFLAGS += $(CFLAGS_xeninclude)
CFLAGS += $(foreach lib, $(USELIBS_$(LIBNAME)), $(CFLAGS_libxen$(lib)))
-LDLIBS += $(foreach lib, $(USELIBS_$(LIBNAME)), $(LDLIBS_libxen$(lib)))
+LDLIBS += $(call xenlibs-ldlibs,$(USELIBS_$(LIBNAME)))
PIC_OBJS := $(OBJS-y:.o=.opic)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 20/25] tools: Introduce $(xenlibs-ldflags, ) macro
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (18 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 19/25] tools: Introduce $(xenlibs-ldlibs, ) macro Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-12 1:40 ` Henry Wang
2022-06-24 16:04 ` [XEN PATCH v3 21/25] tools/helper: Cleanup Makefile Anthony PERARD
` (5 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu, Nick Rosbrook
This avoid the need to open-coding the list of flags needed to link
with an in-tree Xen library when using -lxen*.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/golang/xenlight/Makefile | 2 +-
tools/Rules.mk | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/tools/golang/xenlight/Makefile b/tools/golang/xenlight/Makefile
index 64671f246c..00e6d17f2b 100644
--- a/tools/golang/xenlight/Makefile
+++ b/tools/golang/xenlight/Makefile
@@ -27,7 +27,7 @@ GOXL_GEN_FILES = types.gen.go helpers.gen.go
# so that it can find the actual library.
.PHONY: build
build: xenlight.go $(GOXL_GEN_FILES)
- CGO_CFLAGS="$(CFLAGS_libxenlight) $(CFLAGS_libxentoollog) $(APPEND_CFLAGS)" CGO_LDFLAGS="$(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) -L$(XEN_libxenlight) -L$(XEN_libxentoollog) $(APPEND_LDFLAGS)" $(GO) build -x
+ CGO_CFLAGS="$(CFLAGS_libxenlight) $(CFLAGS_libxentoollog) $(APPEND_CFLAGS)" CGO_LDFLAGS="$(call xenlibs-ldflags,light toollog) $(APPEND_LDFLAGS)" $(GO) build -x
.PHONY: install
install: build
diff --git a/tools/Rules.mk b/tools/Rules.mk
index ce77dd2eb1..26958b2948 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -105,6 +105,14 @@ define xenlibs-ldlibs
$(foreach lib,$(1),$(xenlibs-ldlibs-$(lib)))
endef
+# Provide needed flags for linking an in-tree Xen library by an external
+# project (or when it is necessary to link with "-lxen$(1)" instead of using
+# the full path to the library).
+define xenlibs-ldflags
+ $(call xenlibs-rpath,$(1)) \
+ $(foreach lib,$(1),-L$(XEN_ROOT)/tools/libs/$(lib))
+endef
+
define LIB_defs
FILENAME_$(1) ?= xen$(1)
XEN_libxen$(1) = $$(XEN_ROOT)/tools/libs/$(1)
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 21/25] tools/helper: Cleanup Makefile
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (19 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 20/25] tools: Introduce $(xenlibs-ldflags, " Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 14:06 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 22/25] tools/console: Use $(xenlibs-ldlibs,) Anthony PERARD
` (4 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
Use $(TARGETS) to collect targets.
Collect library to link against in $(LDLIBS).
Remove extra "-f" flags that is already part of $(RM).
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
v3:
- apply changes to the new "init-dom0less" helper.
- make use of the new macro $(xenlibs-ldlibs,)
tools/helpers/Makefile | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile
index 8d78ab1e90..7c9d671b32 100644
--- a/tools/helpers/Makefile
+++ b/tools/helpers/Makefile
@@ -5,13 +5,13 @@
XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-PROGS += xen-init-dom0
+TARGETS += xen-init-dom0
ifeq ($(CONFIG_Linux),y)
ifeq ($(CONFIG_X86),y)
-PROGS += init-xenstore-domain
+TARGETS += init-xenstore-domain
endif
ifeq ($(CONFIG_ARM),y)
-PROGS += init-dom0less
+TARGETS += init-dom0less
endif
endif
@@ -20,6 +20,7 @@ $(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxenstore)
$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxenlight)
$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxenctrl)
+xen-init-dom0: LDLIBS += $(call xenlibs-ldlibs,ctrl toollog store light)
INIT_XENSTORE_DOMAIN_OBJS = init-xenstore-domain.o init-dom-json.o
$(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
@@ -28,6 +29,7 @@ $(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += $(CFLAGS_libxenctrl)
$(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += $(CFLAGS_libxenstore)
$(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += $(CFLAGS_libxenlight)
$(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h
+init-xenstore-domain: LDLIBS += $(call xenlibs-ldlibs,toollog store ctrl guest light)
INIT_DOM0LESS_OBJS = init-dom0less.o init-dom-json.o
$(INIT_DOM0LESS_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
@@ -35,30 +37,31 @@ $(INIT_DOM0LESS_OBJS): CFLAGS += $(CFLAGS_libxenstore)
$(INIT_DOM0LESS_OBJS): CFLAGS += $(CFLAGS_libxenlight)
$(INIT_DOM0LESS_OBJS): CFLAGS += $(CFLAGS_libxenctrl)
$(INIT_DOM0LESS_OBJS): CFLAGS += $(CFLAGS_libxenevtchn)
+init-dom0less: LDLIBS += $(call xenlibs-ldlibs,ctrl evtchn toollog store light guest foreignmemory)
.PHONY: all
-all: $(PROGS)
+all: $(TARGETS)
xen-init-dom0: $(XEN_INIT_DOM0_OBJS)
- $(CC) $(LDFLAGS) -o $@ $(XEN_INIT_DOM0_OBJS) $(LDLIBS_libxenctrl) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) $(LDLIBS_libxenlight) $(APPEND_LDFLAGS)
+ $(CC) $(LDFLAGS) -o $@ $(XEN_INIT_DOM0_OBJS) $(LDLIBS) $(APPEND_LDFLAGS)
init-xenstore-domain: $(INIT_XENSTORE_DOMAIN_OBJS)
- $(CC) $(LDFLAGS) -o $@ $(INIT_XENSTORE_DOMAIN_OBJS) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenlight) $(APPEND_LDFLAGS)
+ $(CC) $(LDFLAGS) -o $@ $(INIT_XENSTORE_DOMAIN_OBJS) $(LDLIBS) $(APPEND_LDFLAGS)
init-dom0less: $(INIT_DOM0LESS_OBJS)
- $(CC) $(LDFLAGS) -o $@ $(INIT_DOM0LESS_OBJS) $(LDLIBS_libxenctrl) $(LDLIBS_libxenevtchn) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) $(LDLIBS_libxenlight) $(LDLIBS_libxenguest) $(LDLIBS_libxenforeignmemory) $(APPEND_LDFLAGS)
+ $(CC) $(LDFLAGS) -o $@ $(INIT_DOM0LESS_OBJS) $(LDLIBS) $(APPEND_LDFLAGS)
.PHONY: install
install: all
$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
- for i in $(PROGS); do $(INSTALL_PROG) $$i $(DESTDIR)$(LIBEXEC_BIN); done
+ for i in $(TARGETS); do $(INSTALL_PROG) $$i $(DESTDIR)$(LIBEXEC_BIN); done
.PHONY: uninstall
uninstall:
- for i in $(PROGS); do rm -f $(DESTDIR)$(LIBEXEC_BIN)/$$i; done
+ for i in $(TARGETS); do rm -f $(DESTDIR)$(LIBEXEC_BIN)/$$i; done
.PHONY: clean
clean:
- $(RM) -f *.o $(PROGS) $(DEPS_RM)
+ $(RM) *.o $(TARGETS) $(DEPS_RM)
distclean: clean
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 22/25] tools/console: Use $(xenlibs-ldlibs,)
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (20 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 21/25] tools/helper: Cleanup Makefile Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 14:15 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 23/25] tools/helpers: Fix build of xen-init-dom0 with -Werror Anthony PERARD
` (3 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/console/client/Makefile | 3 +--
tools/console/daemon/Makefile | 6 +-----
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/tools/console/client/Makefile b/tools/console/client/Makefile
index 44176c6d93..e2f2554f92 100644
--- a/tools/console/client/Makefile
+++ b/tools/console/client/Makefile
@@ -6,8 +6,7 @@ CFLAGS += $(CFLAGS_libxenctrl)
CFLAGS += $(CFLAGS_libxenstore)
CFLAGS += -include $(XEN_ROOT)/tools/config.h
-LDLIBS += $(LDLIBS_libxenctrl)
-LDLIBS += $(LDLIBS_libxenstore)
+LDLIBS += $(call xenlibs-ldlibs,ctrl store)
LDLIBS += $(SOCKET_LIBS)
OBJS-y := main.o
diff --git a/tools/console/daemon/Makefile b/tools/console/daemon/Makefile
index 0f004f0b14..99bb33b6a2 100644
--- a/tools/console/daemon/Makefile
+++ b/tools/console/daemon/Makefile
@@ -10,11 +10,7 @@ CFLAGS += $(CFLAGS_libxenforeignmemory)
CFLAGS-$(CONFIG_ARM) += -DCONFIG_ARM
CFLAGS += -include $(XEN_ROOT)/tools/config.h
-LDLIBS += $(LDLIBS_libxenctrl)
-LDLIBS += $(LDLIBS_libxenstore)
-LDLIBS += $(LDLIBS_libxenevtchn)
-LDLIBS += $(LDLIBS_libxengnttab)
-LDLIBS += $(LDLIBS_libxenforeignmemory)
+LDLIBS += $(call xenlibs-ldlibs,ctrl store evtchn gnttab foreignmemory)
LDLIBS += $(SOCKET_LIBS)
LDLIBS += $(UTIL_LIBS)
LDLIBS += -lrt
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 23/25] tools/helpers: Fix build of xen-init-dom0 with -Werror
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (21 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 22/25] tools/console: Use $(xenlibs-ldlibs,) Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-12 1:31 ` Henry Wang
2022-06-24 16:04 ` [XEN PATCH v3 24/25] tools: Add -Werror by default to all tools/ Anthony PERARD
` (2 subsequent siblings)
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
Missing prototype of asprintf() without _GNU_SOURCE.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/helpers/xen-init-dom0.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/helpers/xen-init-dom0.c b/tools/helpers/xen-init-dom0.c
index 37eff8868f..764f837887 100644
--- a/tools/helpers/xen-init-dom0.c
+++ b/tools/helpers/xen-init-dom0.c
@@ -1,3 +1,5 @@
+#define _GNU_SOURCE
+
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 24/25] tools: Add -Werror by default to all tools/
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (22 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 23/25] tools/helpers: Fix build of xen-init-dom0 with -Werror Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-07-22 14:31 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else Anthony PERARD
2022-06-27 7:25 ` [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Christian Lindig
25 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel; +Cc: Anthony PERARD, Wei Liu
And provide an option to ./configure to disable it.
A follow-up patch will remove -Werror from every other Makefile in
tools/. ("tools: Remove -Werror everywhere else")
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/configure.ac | 1 +
tools/Rules.mk | 4 ++++
config/Tools.mk.in | 1 +
tools/configure | 26 ++++++++++++++++++++++++++
4 files changed, 32 insertions(+)
diff --git a/tools/configure.ac b/tools/configure.ac
index 1094d896fc..06311b99c2 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -79,6 +79,7 @@ m4_include([../m4/header.m4])
AX_XEN_EXPAND_CONFIG()
# Enable/disable options
+AX_ARG_DEFAULT_ENABLE([werror], [Build tools without -Werror])
AX_ARG_DEFAULT_DISABLE([rpath], [Build tools with -Wl,-rpath,LIBDIR])
AX_ARG_DEFAULT_DISABLE([githttp], [Download GIT repositories via HTTP])
AX_ARG_DEFAULT_ENABLE([monitors], [Disable xenstat and xentop monitoring tools])
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 26958b2948..a165dc4bda 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -133,6 +133,10 @@ endif
CFLAGS_libxenlight += $(CFLAGS_libxenctrl)
+ifeq ($(CONFIG_WERROR),y)
+CFLAGS += -Werror
+endif
+
ifeq ($(debug),y)
# Use -Og if available, -O0 otherwise
dbg_opt_level := $(call cc-option,$(CC),-Og,-O0)
diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 6c1a0a676f..d0d460f922 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -1,5 +1,6 @@
-include $(XEN_ROOT)/config/Paths.mk
+CONFIG_WERROR := @werror@
CONFIG_RUMP := @CONFIG_RUMP@
ifeq ($(CONFIG_RUMP),y)
XEN_OS := NetBSDRump
diff --git a/tools/configure b/tools/configure
index a052c186a5..986cb1d933 100755
--- a/tools/configure
+++ b/tools/configure
@@ -716,6 +716,7 @@ ocamltools
monitors
githttp
rpath
+werror
DEBUG_DIR
XEN_DUMP_DIR
XEN_PAGING_DIR
@@ -805,6 +806,7 @@ with_xen_scriptdir
with_xen_dumpdir
with_rundir
with_debugdir
+enable_werror
enable_rpath
enable_githttp
enable_monitors
@@ -1490,6 +1492,7 @@ Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-largefile omit support for large files
+ --disable-werror Build tools without -Werror (default is ENABLED)
--enable-rpath Build tools with -Wl,-rpath,LIBDIR (default is
DISABLED)
--enable-githttp Download GIT repositories via HTTP (default is
@@ -4111,6 +4114,29 @@ DEBUG_DIR=$debugdir_path
# Enable/disable options
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+ enableval=$enable_werror;
+fi
+
+
+if test "x$enable_werror" = "xno"; then :
+
+ ax_cv_werror="n"
+
+elif test "x$enable_werror" = "xyes"; then :
+
+ ax_cv_werror="y"
+
+elif test -z $ax_cv_werror; then :
+
+ ax_cv_werror="y"
+
+fi
+werror=$ax_cv_werror
+
+
+
# Check whether --enable-rpath was given.
if test "${enable_rpath+set}" = set; then :
enableval=$enable_rpath;
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (23 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 24/25] tools: Add -Werror by default to all tools/ Anthony PERARD
@ 2022-06-24 16:04 ` Anthony PERARD
2022-06-29 8:59 ` Luca Fancellu
2022-06-29 10:31 ` Juergen Gross
2022-06-27 7:25 ` [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Christian Lindig
25 siblings, 2 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-06-24 16:04 UTC (permalink / raw)
To: xen-devel
Cc: Anthony PERARD, Wei Liu, Elena Ufimtseva, Tim Deegan,
Daniel De Graaf, Daniel P. Smith, Roger Pau Monné,
Juergen Gross, Christian Lindig, David Scott
Patch "tools: Add -Werror by default to all tools/" have added
"-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
makefiles as it is now duplicated.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
tools/console/client/Makefile | 1 -
tools/console/daemon/Makefile | 1 -
tools/debugger/kdd/Makefile | 1 -
tools/flask/utils/Makefile | 1 -
tools/fuzz/cpu-policy/Makefile | 2 +-
tools/misc/Makefile | 1 -
tools/tests/cpu-policy/Makefile | 2 +-
tools/tests/depriv/Makefile | 2 +-
tools/tests/resource/Makefile | 1 -
tools/tests/tsx/Makefile | 1 -
tools/tests/xenstore/Makefile | 1 -
tools/xcutils/Makefile | 2 --
tools/xenmon/Makefile | 1 -
tools/xenpaging/Makefile | 1 -
tools/xenpmd/Makefile | 1 -
tools/xentop/Makefile | 2 +-
tools/xentrace/Makefile | 2 --
tools/xl/Makefile | 2 +-
tools/debugger/gdbsx/Rules.mk | 2 +-
tools/firmware/Rules.mk | 2 --
tools/libfsimage/common.mk | 2 +-
tools/libs/libs.mk | 2 +-
tools/ocaml/common.make | 2 +-
tools/xenstore/Makefile.common | 1 -
24 files changed, 9 insertions(+), 27 deletions(-)
diff --git a/tools/console/client/Makefile b/tools/console/client/Makefile
index e2f2554f92..62d89fdeb9 100644
--- a/tools/console/client/Makefile
+++ b/tools/console/client/Makefile
@@ -1,7 +1,6 @@
XEN_ROOT=$(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenctrl)
CFLAGS += $(CFLAGS_libxenstore)
CFLAGS += -include $(XEN_ROOT)/tools/config.h
diff --git a/tools/console/daemon/Makefile b/tools/console/daemon/Makefile
index 99bb33b6a2..9fc3b6711f 100644
--- a/tools/console/daemon/Makefile
+++ b/tools/console/daemon/Makefile
@@ -1,7 +1,6 @@
XEN_ROOT=$(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenctrl)
CFLAGS += $(CFLAGS_libxenstore)
CFLAGS += $(CFLAGS_libxenevtchn)
diff --git a/tools/debugger/kdd/Makefile b/tools/debugger/kdd/Makefile
index 26116949d4..a72ad3b1e0 100644
--- a/tools/debugger/kdd/Makefile
+++ b/tools/debugger/kdd/Makefile
@@ -1,7 +1,6 @@
XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenctrl)
CFLAGS += -DXC_WANT_COMPAT_MAP_FOREIGN_API
LDLIBS += $(LDLIBS_libxenctrl)
diff --git a/tools/flask/utils/Makefile b/tools/flask/utils/Makefile
index 6be134142a..88d7edb6b1 100644
--- a/tools/flask/utils/Makefile
+++ b/tools/flask/utils/Makefile
@@ -1,7 +1,6 @@
XEN_ROOT=$(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenctrl)
TARGETS := flask-loadpolicy flask-setenforce flask-getenforce flask-label-pci flask-get-bool flask-set-bool
diff --git a/tools/fuzz/cpu-policy/Makefile b/tools/fuzz/cpu-policy/Makefile
index 41a2230408..6e7743e0aa 100644
--- a/tools/fuzz/cpu-policy/Makefile
+++ b/tools/fuzz/cpu-policy/Makefile
@@ -17,7 +17,7 @@ install: all
.PHONY: uninstall
-CFLAGS += -Werror $(CFLAGS_xeninclude) -D__XEN_TOOLS__
+CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__
CFLAGS += $(APPEND_CFLAGS) -Og
vpath %.c ../../../xen/lib/x86
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 0e02401227..1c6e1d6a04 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -1,7 +1,6 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
# Include configure output (config.h)
CFLAGS += -include $(XEN_ROOT)/tools/config.h
CFLAGS += $(CFLAGS_libxenevtchn)
diff --git a/tools/tests/cpu-policy/Makefile b/tools/tests/cpu-policy/Makefile
index 93af9d76fa..c5b81afc71 100644
--- a/tools/tests/cpu-policy/Makefile
+++ b/tools/tests/cpu-policy/Makefile
@@ -36,7 +36,7 @@ install: all
uninstall:
$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/,$(TARGETS))
-CFLAGS += -Werror -D__XEN_TOOLS__
+CFLAGS += -D__XEN_TOOLS__
CFLAGS += $(CFLAGS_xeninclude)
CFLAGS += $(APPEND_CFLAGS)
diff --git a/tools/tests/depriv/Makefile b/tools/tests/depriv/Makefile
index 3cba28da25..7d9e3b01bb 100644
--- a/tools/tests/depriv/Makefile
+++ b/tools/tests/depriv/Makefile
@@ -1,7 +1,7 @@
XEN_ROOT=$(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror -Wno-declaration-after-statement
+CFLAGS += -Wno-declaration-after-statement
CFLAGS += $(CFLAGS_xeninclude)
CFLAGS += $(CFLAGS_libxenctrl)
diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
index b3cd70c06d..a5856bf095 100644
--- a/tools/tests/resource/Makefile
+++ b/tools/tests/resource/Makefile
@@ -27,7 +27,6 @@ install: all
uninstall:
$(RM) -- $(DESTDIR)$(LIBEXEC_BIN)/$(TARGET)
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_xeninclude)
CFLAGS += $(CFLAGS_libxenctrl)
CFLAGS += $(CFLAGS_libxenforeginmemory)
diff --git a/tools/tests/tsx/Makefile b/tools/tests/tsx/Makefile
index d7d2a5d95e..a4f516b725 100644
--- a/tools/tests/tsx/Makefile
+++ b/tools/tests/tsx/Makefile
@@ -26,7 +26,6 @@ uninstall:
.PHONY: uninstall
uninstall:
-CFLAGS += -Werror
CFLAGS += -I$(XEN_ROOT)/tools/libs/ctrl -I$(XEN_ROOT)/tools/libs/guest
CFLAGS += $(CFLAGS_xeninclude)
CFLAGS += $(CFLAGS_libxenctrl)
diff --git a/tools/tests/xenstore/Makefile b/tools/tests/xenstore/Makefile
index 239e1dce47..202dda0d3c 100644
--- a/tools/tests/xenstore/Makefile
+++ b/tools/tests/xenstore/Makefile
@@ -27,7 +27,6 @@ install: all
uninstall:
$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/,$(TARGETS))
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenstore)
CFLAGS += $(APPEND_CFLAGS)
diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
index e40a2c4bfa..3687f6cd8f 100644
--- a/tools/xcutils/Makefile
+++ b/tools/xcutils/Makefile
@@ -13,8 +13,6 @@ include $(XEN_ROOT)/tools/Rules.mk
TARGETS := readnotes lsevtchn
-CFLAGS += -Werror
-
CFLAGS_readnotes.o := $(CFLAGS_libxenevtchn) $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
CFLAGS_lsevtchn.o := $(CFLAGS_libxenevtchn) $(CFLAGS_libxenctrl)
diff --git a/tools/xenmon/Makefile b/tools/xenmon/Makefile
index 3e150b0659..679c4b41a3 100644
--- a/tools/xenmon/Makefile
+++ b/tools/xenmon/Makefile
@@ -13,7 +13,6 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenevtchn)
CFLAGS += $(CFLAGS_libxenctrl)
LDLIBS += $(LDLIBS_libxenctrl)
diff --git a/tools/xenpaging/Makefile b/tools/xenpaging/Makefile
index e2ed9eaa3f..835cf2b965 100644
--- a/tools/xenpaging/Makefile
+++ b/tools/xenpaging/Makefile
@@ -12,7 +12,6 @@ OBJS-y += xenpaging.o
OBJS-y += policy_$(POLICY).o
OBJS-y += pagein.o
-CFLAGS += -Werror
CFLAGS += -Wno-unused
TARGETS := xenpaging
diff --git a/tools/xenpmd/Makefile b/tools/xenpmd/Makefile
index e0d3f06ab2..8da20510b5 100644
--- a/tools/xenpmd/Makefile
+++ b/tools/xenpmd/Makefile
@@ -1,7 +1,6 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
CFLAGS += $(CFLAGS_libxenstore)
LDLIBS += $(LDLIBS_libxenstore)
diff --git a/tools/xentop/Makefile b/tools/xentop/Makefile
index 7bd96f34d5..70cc2211c5 100644
--- a/tools/xentop/Makefile
+++ b/tools/xentop/Makefile
@@ -13,7 +13,7 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -DGCC_PRINTF -Werror $(CFLAGS_libxenstat)
+CFLAGS += -DGCC_PRINTF $(CFLAGS_libxenstat)
LDLIBS += $(LDLIBS_libxenstat) $(CURSES_LIBS) $(TINFO_LIBS) $(SOCKET_LIBS) -lm
CFLAGS += -DHOST_$(XEN_OS)
diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile
index 0995fa9203..b188ba70d6 100644
--- a/tools/xentrace/Makefile
+++ b/tools/xentrace/Makefile
@@ -1,8 +1,6 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror
-
CFLAGS += $(CFLAGS_libxenevtchn)
CFLAGS += $(CFLAGS_libxenctrl)
LDLIBS += $(LDLIBS_libxenevtchn)
diff --git a/tools/xl/Makefile b/tools/xl/Makefile
index b7f439121a..5f7aa5f46c 100644
--- a/tools/xl/Makefile
+++ b/tools/xl/Makefile
@@ -5,7 +5,7 @@
XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations \
+CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
-Wno-declaration-after-statement -Wformat-nonliteral
CFLAGS += -fPIC
diff --git a/tools/debugger/gdbsx/Rules.mk b/tools/debugger/gdbsx/Rules.mk
index 920f1c87fb..0610db873b 100644
--- a/tools/debugger/gdbsx/Rules.mk
+++ b/tools/debugger/gdbsx/Rules.mk
@@ -1,6 +1,6 @@
include $(XEN_ROOT)/tools/Rules.mk
-CFLAGS += -Werror -Wmissing-prototypes
+CFLAGS += -Wmissing-prototypes
# (gcc 4.3x and later) -Wconversion -Wno-sign-conversion
CFLAGS-$(clang) += -Wno-ignored-attributes
diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
index 278cca01e4..d3482c9ec4 100644
--- a/tools/firmware/Rules.mk
+++ b/tools/firmware/Rules.mk
@@ -11,8 +11,6 @@ ifneq ($(debug),y)
CFLAGS += -DNDEBUG
endif
-CFLAGS += -Werror
-
$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
$(call cc-option-add,CFLAGS,CC,-fcf-protection=none)
diff --git a/tools/libfsimage/common.mk b/tools/libfsimage/common.mk
index 77bc957f27..4fc8c66795 100644
--- a/tools/libfsimage/common.mk
+++ b/tools/libfsimage/common.mk
@@ -2,7 +2,7 @@ include $(XEN_ROOT)/tools/Rules.mk
FSDIR := $(libdir)/xenfsimage
CFLAGS += -Wno-unknown-pragmas -I$(XEN_ROOT)/tools/libfsimage/common/ -DFSIMAGE_FSDIR=\"$(FSDIR)\"
-CFLAGS += -Werror -D_GNU_SOURCE
+CFLAGS += -D_GNU_SOURCE
LDFLAGS += -L../common/
PIC_OBJS = $(patsubst %.c,%.opic,$(LIB_SRCS-y))
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index 2b8e7a6128..e47fb30ed4 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -14,7 +14,7 @@ MINOR ?= 0
SHLIB_LDFLAGS += -Wl,--version-script=libxen$(LIBNAME).map
-CFLAGS += -Werror -Wmissing-prototypes
+CFLAGS += -Wmissing-prototypes
CFLAGS += $(CFLAGS_xeninclude)
CFLAGS += $(foreach lib, $(USELIBS_$(LIBNAME)), $(CFLAGS_libxen$(lib)))
diff --git a/tools/ocaml/common.make b/tools/ocaml/common.make
index d5478f626f..0c8a597d5b 100644
--- a/tools/ocaml/common.make
+++ b/tools/ocaml/common.make
@@ -9,7 +9,7 @@ OCAMLLEX ?= ocamllex
OCAMLYACC ?= ocamlyacc
OCAMLFIND ?= ocamlfind
-CFLAGS += -fPIC -Werror -I$(shell ocamlc -where)
+CFLAGS += -fPIC -I$(shell ocamlc -where)
OCAMLOPTFLAG_G := $(shell $(OCAMLOPT) -h 2>&1 | sed -n 's/^ *\(-g\) .*/\1/p')
OCAMLOPTFLAGS = $(OCAMLOPTFLAG_G) -ccopt "$(LDFLAGS)" -dtypes $(OCAMLINCLUDE) -cc $(CC) -w F -warn-error F
diff --git a/tools/xenstore/Makefile.common b/tools/xenstore/Makefile.common
index 21b78b0538..ddbac052ac 100644
--- a/tools/xenstore/Makefile.common
+++ b/tools/xenstore/Makefile.common
@@ -9,7 +9,6 @@ XENSTORED_OBJS-$(CONFIG_NetBSD) += xenstored_posix.o
XENSTORED_OBJS-$(CONFIG_FreeBSD) += xenstored_posix.o
XENSTORED_OBJS-$(CONFIG_MiniOS) += xenstored_minios.o
-CFLAGS += -Werror
# Include configure output (config.h)
CFLAGS += -include $(XEN_ROOT)/tools/config.h
CFLAGS += -I./include
--
Anthony PERARD
^ permalink raw reply related [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
` (24 preceding siblings ...)
2022-06-24 16:04 ` [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else Anthony PERARD
@ 2022-06-27 7:25 ` Christian Lindig
25 siblings, 0 replies; 73+ messages in thread
From: Christian Lindig @ 2022-06-27 7:25 UTC (permalink / raw)
To: Anthony Perard
Cc: Xen-devel, Daniel P. Smith, Juergen Gross, Daniel De Graaf,
George Dunlap, Andrew Cooper, Jan Beulich, David Scott,
Stefano Stabellini, Tim (Xen.org),
Wei Liu, Julien Grall, Elena Ufimtseva, Nick Rosbrook,
Roger Pau Monne
[-- Attachment #1: Type: text/plain, Size: 442 bytes --]
On 24 Jun 2022, at 17:03, Anthony PERARD <anthony.perard@citrix.com<mailto:anthony.perard@citrix.com>> wrote:
Changes in v3:
- rebased
- several new patches, starting with 13/25 "tools/libs/util: cleanup Makefile"
- introducing macros to deal with linking with in-tree xen libraries
- Add -Werror to CFLAGS for all builds in tools/
Acked-by: Christian Lindig <christian.lindig@citrix.com<mailto:christian.lindig@citrix.com>>
[-- Attachment #2: Type: text/html, Size: 4850 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-06-24 16:04 ` [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else Anthony PERARD
@ 2022-06-29 8:59 ` Luca Fancellu
2022-06-29 17:22 ` Stefano Stabellini
2022-06-29 10:31 ` Juergen Gross
1 sibling, 1 reply; 73+ messages in thread
From: Luca Fancellu @ 2022-06-29 8:59 UTC (permalink / raw)
To: Anthony PERARD
Cc: Xen-devel, Wei Liu, Elena Ufimtseva, Tim Deegan, Daniel De Graaf,
Daniel P. Smith, Roger Pau Monné,
Juergen Gross, Christian Lindig, David Scott, Stefano Stabellini
+ CC: Stefano Stabellini
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Patch "tools: Add -Werror by default to all tools/" have added
> "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
> makefiles as it is now duplicated.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Anthony,
I will try to review the serie when I manage to have some time, in the mean time I can say the whole
serie builds fine in my Yocto setup on arm64 and x86_64, I’ve tried also the tool stack to
create/destroy/console guests and no problem so far.
The only problem I have is building for arm32 because, I think, this patch does a great job and it
discovers a problem here:
arm-poky-linux-gnueabi-gcc -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 --sysroot=/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/recipe-sysroot -marm -DBUILD_ID -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Wno-unused-but-set-variable -Wno-unused-local-typedefs -Werror -O2 -fomit-frame-pointer -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__ -MMD -MP -MF .init-dom0less.o.d -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0=/usr/src/debug/xen-tools/4.17+git1-r0 -fdebug-prefix-map=/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0=/usr/src/debug/xen-tools/4.17+git1-r0 -fdebug-prefix-map=/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/recipe-sysroot= -fdebug-prefix-map=/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/recipe-sysroot-native= -I/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/local-xen/xen/tools/helpers/../../tools/include -I/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/local-xen/xen/tools/helpers/../../tools/include -I/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/local-xen/xen/tools/helpers/../../tools/include -I/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/local-xen/xen/tools/helpers/../../tools/include -D__XEN_TOOLS__ -I/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/local-xen/xen/tools/helpers/../../tools/include -D__XEN_TOOLS__ -I/data_sdc1/lucfan01/test_kirkstone_xen/build/xtp-qemu-arm32/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/xen-tools/4.17+git1-r0/local-xen/xen/tools/helpers/../../tools/include -c -o init-dom0less.o init-dom0less.c
init-dom0less.c: In function 'create_xenstore':
init-dom0less.c:141:53: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=]
141 | rc = snprintf(max_memkb_str, STR_MAX_LENGTH, "%lu", info->max_memkb);
| ~~^ ~~~~~~~~~~~~~~~
| | |
| | uint64_t {aka long long unsigned int}
| long unsigned int
| %llu
init-dom0less.c:144:56: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=]
144 | rc = snprintf(target_memkb_str, STR_MAX_LENGTH, "%lu", info->current_memkb);
| ~~^ ~~~~~~~~~~~~~~~~~~~
| | |
| | uint64_t {aka long long unsigned int}
| long unsigned int
| %llu
Won’t be too difficult to fix, if I have time I will do it, otherwise if someone wants to do it’s fine for me.
Cheers,
Luca
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc}
2022-06-24 16:04 ` [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc} Anthony PERARD
@ 2022-06-29 10:15 ` Juergen Gross
2022-07-05 13:17 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:15 UTC (permalink / raw)
To: Anthony PERARD, xen-devel
Cc: Andrew Cooper, George Dunlap, Jan Beulich, Julien Grall,
Stefano Stabellini, Wei Liu
[-- Attachment #1.1.1: Type: text/plain, Size: 164 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile
2022-06-24 16:04 ` [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile Anthony PERARD
@ 2022-06-29 10:18 ` Juergen Gross
2022-07-05 13:20 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:18 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu
[-- Attachment #1.1.1: Type: text/plain, Size: 258 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> Remove -I. from CFLAGS, it isn't necessary.
>
> Removed $(AUTOSRCS), it isn't used.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS)
2022-06-24 16:04 ` [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS) Anthony PERARD
@ 2022-06-29 10:19 ` Juergen Gross
2022-07-05 13:21 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:19 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu
[-- Attachment #1.1.1: Type: text/plain, Size: 164 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST)
2022-06-24 16:04 ` [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST) Anthony PERARD
@ 2022-06-29 10:22 ` Juergen Gross
2022-07-05 13:27 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:22 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu
[-- Attachment #1.1.1: Type: text/plain, Size: 268 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> We can simply use $(PKG_CONFIG) to set the parameters, and add it to
> $(TARGETS) as necessary.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies
2022-06-24 16:04 ` [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies Anthony PERARD
@ 2022-06-29 10:23 ` Juergen Gross
2022-07-05 13:29 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:23 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu
[-- Attachment #1.1.1: Type: text/plain, Size: 364 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> There is no need to call the "headers.chk" target when it isn't
> wanted, so it never need to be .PHONY.
>
> Also, there is no more reason to separate the prerequisites from the
> recipe.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 18/25] tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*)
2022-06-24 16:04 ` [XEN PATCH v3 18/25] tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*) Anthony PERARD
@ 2022-06-29 10:26 ` Juergen Gross
0 siblings, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:26 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu
[-- Attachment #1.1.1: Type: text/plain, Size: 638 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> This patch introduce a new macro $(xenlibs-dependencies,) to generate
> a list of all the xen library that a library is list against, and they
> are listed only once. We use the side effect of $(sort ) which remove
> duplicates.
>
> This is used by another macro $(xenlibs-rpath,) which is to replace
> $(SHDEPS_libxen*).
>
> In libs.mk, we don't need to $(sort ) SHLIB_lib* anymore as this was used
> to remove duplicates and they are no more duplicates.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 19/25] tools: Introduce $(xenlibs-ldlibs, ) macro
2022-06-24 16:04 ` [XEN PATCH v3 19/25] tools: Introduce $(xenlibs-ldlibs, ) macro Anthony PERARD
@ 2022-06-29 10:29 ` Juergen Gross
0 siblings, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:29 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu
[-- Attachment #1.1.1: Type: text/plain, Size: 524 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> This can be used when linking against multiple in-tree Xen libraries,
> and avoid duplicated flags. It can be used instead of multiple
> $(LDLIBS_libxen*).
>
> For now, replace the open-coding in libs.mk.
>
> The macro $(xenlibs-libs, ) will be useful later when only the path to
> the libraries is wanted (e.g. for checking for dependencies).
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-06-24 16:04 ` [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else Anthony PERARD
2022-06-29 8:59 ` Luca Fancellu
@ 2022-06-29 10:31 ` Juergen Gross
1 sibling, 0 replies; 73+ messages in thread
From: Juergen Gross @ 2022-06-29 10:31 UTC (permalink / raw)
To: Anthony PERARD, xen-devel
Cc: Wei Liu, Elena Ufimtseva, Tim Deegan, Daniel De Graaf,
Daniel P. Smith, Roger Pau Monné,
Christian Lindig, David Scott
[-- Attachment #1.1.1: Type: text/plain, Size: 341 bytes --]
On 24.06.22 18:04, Anthony PERARD wrote:
> Patch "tools: Add -Werror by default to all tools/" have added
> "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
> makefiles as it is now duplicated.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-06-29 8:59 ` Luca Fancellu
@ 2022-06-29 17:22 ` Stefano Stabellini
2022-06-30 7:33 ` Bertrand Marquis
0 siblings, 1 reply; 73+ messages in thread
From: Stefano Stabellini @ 2022-06-29 17:22 UTC (permalink / raw)
To: Luca Fancellu
Cc: Anthony PERARD, Xen-devel, Wei Liu, Elena Ufimtseva, Tim Deegan,
Daniel De Graaf, Daniel P. Smith, Roger Pau Monné,
Juergen Gross, Christian Lindig, David Scott, Stefano Stabellini
[-- Attachment #1: Type: text/plain, Size: 1116 bytes --]
On Wed, 29 Jun 2022, Luca Fancellu wrote:
> + CC: Stefano Stabellini
>
> > On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
> >
> > Patch "tools: Add -Werror by default to all tools/" have added
> > "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
> > makefiles as it is now duplicated.
> >
> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>
> Hi Anthony,
>
> I will try to review the serie when I manage to have some time, in the mean time I can say the whole
> serie builds fine in my Yocto setup on arm64 and x86_64, I’ve tried also the tool stack to
> create/destroy/console guests and no problem so far.
>
> The only problem I have is building for arm32 because, I think, this patch does a great job and it
> discovers a problem here:
That reminds me that we only have arm32 Xen hypervisor builds in
gitlab-ci, we don't have any arm32 Xen tools builds. I'll add it to my
TODO but if someone (not necessarily Luca) has some spare time it could
be a nice project. It could be done with Yocto by adding a Yocto build
container to automation/build/.
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-06-29 17:22 ` Stefano Stabellini
@ 2022-06-30 7:33 ` Bertrand Marquis
2022-06-30 21:03 ` Stefano Stabellini
0 siblings, 1 reply; 73+ messages in thread
From: Bertrand Marquis @ 2022-06-30 7:33 UTC (permalink / raw)
To: Stefano Stabellini
Cc: Luca Fancellu, Anthony PERARD, Xen-devel, Wei Liu,
Elena Ufimtseva, Tim Deegan, Daniel De Graaf, Daniel P. Smith,
Roger Pau Monné,
Juergen Gross, Christian Lindig, David Scott
Hi Stefano,
> On 29 Jun 2022, at 18:22, Stefano Stabellini <sstabellini@kernel.org> wrote:
>
> On Wed, 29 Jun 2022, Luca Fancellu wrote:
>> + CC: Stefano Stabellini
>>
>>> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>>>
>>> Patch "tools: Add -Werror by default to all tools/" have added
>>> "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
>>> makefiles as it is now duplicated.
>>>
>>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>>
>> Hi Anthony,
>>
>> I will try to review the serie when I manage to have some time, in the mean time I can say the whole
>> serie builds fine in my Yocto setup on arm64 and x86_64, I’ve tried also the tool stack to
>> create/destroy/console guests and no problem so far.
>>
>> The only problem I have is building for arm32 because, I think, this patch does a great job and it
>> discovers a problem here:
>
> That reminds me that we only have arm32 Xen hypervisor builds in
> gitlab-ci, we don't have any arm32 Xen tools builds. I'll add it to my
> TODO but if someone (not necessarily Luca) has some spare time it could
> be a nice project. It could be done with Yocto by adding a Yocto build
> container to automation/build/.
We have now a way to build and run xen for arm32 on qemu using Yocto.
We are using this internally and also will test Xen with guests on arm32 using this soon.
I am upstreaming to meta-virtualisation all the fixes needed for that so it should be fairly straight forward do reproduce this in Yocto build in a container.
Please tell me what you need and I will try to provide you a set of scripts or instructions do reproduce that on gitlab.
Cheers
Bertrand
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-06-30 7:33 ` Bertrand Marquis
@ 2022-06-30 21:03 ` Stefano Stabellini
2022-07-01 13:26 ` Bertrand Marquis
0 siblings, 1 reply; 73+ messages in thread
From: Stefano Stabellini @ 2022-06-30 21:03 UTC (permalink / raw)
To: Bertrand Marquis
Cc: Stefano Stabellini, Luca Fancellu, Anthony PERARD, Xen-devel,
Wei Liu, Elena Ufimtseva, Tim Deegan, Daniel De Graaf,
Daniel P. Smith, Roger Pau Monné,
Juergen Gross, Christian Lindig, David Scott
[-- Attachment #1: Type: text/plain, Size: 3410 bytes --]
On Thu, 30 Jun 2022, Bertrand Marquis wrote:
> > On 29 Jun 2022, at 18:22, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >
> > On Wed, 29 Jun 2022, Luca Fancellu wrote:
> >> + CC: Stefano Stabellini
> >>
> >>> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
> >>>
> >>> Patch "tools: Add -Werror by default to all tools/" have added
> >>> "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
> >>> makefiles as it is now duplicated.
> >>>
> >>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> >>
> >> Hi Anthony,
> >>
> >> I will try to review the serie when I manage to have some time, in the mean time I can say the whole
> >> serie builds fine in my Yocto setup on arm64 and x86_64, I’ve tried also the tool stack to
> >> create/destroy/console guests and no problem so far.
> >>
> >> The only problem I have is building for arm32 because, I think, this patch does a great job and it
> >> discovers a problem here:
> >
> > That reminds me that we only have arm32 Xen hypervisor builds in
> > gitlab-ci, we don't have any arm32 Xen tools builds. I'll add it to my
> > TODO but if someone (not necessarily Luca) has some spare time it could
> > be a nice project. It could be done with Yocto by adding a Yocto build
> > container to automation/build/.
>
> We have now a way to build and run xen for arm32 on qemu using Yocto.
> We are using this internally and also will test Xen with guests on arm32 using this soon.
>
> I am upstreaming to meta-virtualisation all the fixes needed for that so it should be fairly straight forward do reproduce this in Yocto build in a container.
>
> Please tell me what you need and I will try to provide you a set of scripts or instructions do reproduce that on gitlab.
That would be great!
We need two things:
- a Yocto build container
- a build script
The build container would be something like:
automation/build/debian/unstable-arm64v8.dockerfile. It is a Dockerfile
to create a container with Yocto and all required dependencies. It could
be based on Debian arm64. The build container is only built once and
pushed to the gitlab registry, but it is executed every time a gitlab
pipeline is started.
We probably want the meta layers to be pulled as part of the build
container build (git clone from the Dockerfile) because otherwise we
would end up git cloining them every time we run a gitlab-ci pipeline,
slowing everything down.
The build script is the script executed in the build container for every
pipeline.
Imagine you have a container "yocto-arm32", basically we want to do:
# docker run yocto-arm32 build.script
where build.script is the script that actually triggers the Xen build
and produces the binary output.
The current build script is automation/scripts/build; it is used for all
build containers (all of them, from Debian to Fedora and Alpine) but it
is probably not suitable to be used for Yocto. It simply calls
./configure; make; make install. It is more for normal distros.
I imagine that the build script for Yocto would call bitbake.
With the build container Dockerfile and the build script it becomes
very simple to add Yocto arm32 to gitlab-ci.
I realize that the actual build could be done on both arm64 or x86.
Currently the arm32 hypervisor-only cross-build is done on x86. See
automation/build/debian/unstable-arm32-gcc.dockerfile. Either way is OK.
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-06-30 21:03 ` Stefano Stabellini
@ 2022-07-01 13:26 ` Bertrand Marquis
2022-07-01 17:47 ` Stefano Stabellini
0 siblings, 1 reply; 73+ messages in thread
From: Bertrand Marquis @ 2022-07-01 13:26 UTC (permalink / raw)
To: Stefano Stabellini
Cc: Luca Fancellu, Anthony PERARD, Xen-devel, Wei Liu,
Elena Ufimtseva, Tim Deegan, Daniel De Graaf, Daniel P. Smith,
Roger Pau Monné,
Juergen Gross, Christian Lindig, David Scott
Hi Stefano,
> On 30 Jun 2022, at 22:03, Stefano Stabellini <sstabellini@kernel.org> wrote:
>
> On Thu, 30 Jun 2022, Bertrand Marquis wrote:
>>> On 29 Jun 2022, at 18:22, Stefano Stabellini <sstabellini@kernel.org> wrote:
>>>
>>> On Wed, 29 Jun 2022, Luca Fancellu wrote:
>>>> + CC: Stefano Stabellini
>>>>
>>>>> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>>>>>
>>>>> Patch "tools: Add -Werror by default to all tools/" have added
>>>>> "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
>>>>> makefiles as it is now duplicated.
>>>>>
>>>>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>>>>
>>>> Hi Anthony,
>>>>
>>>> I will try to review the serie when I manage to have some time, in the mean time I can say the whole
>>>> serie builds fine in my Yocto setup on arm64 and x86_64, I’ve tried also the tool stack to
>>>> create/destroy/console guests and no problem so far.
>>>>
>>>> The only problem I have is building for arm32 because, I think, this patch does a great job and it
>>>> discovers a problem here:
>>>
>>> That reminds me that we only have arm32 Xen hypervisor builds in
>>> gitlab-ci, we don't have any arm32 Xen tools builds. I'll add it to my
>>> TODO but if someone (not necessarily Luca) has some spare time it could
>>> be a nice project. It could be done with Yocto by adding a Yocto build
>>> container to automation/build/.
>>
>> We have now a way to build and run xen for arm32 on qemu using Yocto.
>> We are using this internally and also will test Xen with guests on arm32 using this soon.
>>
>> I am upstreaming to meta-virtualisation all the fixes needed for that so it should be fairly straight forward do reproduce this in Yocto build in a container.
>>
>> Please tell me what you need and I will try to provide you a set of scripts or instructions do reproduce that on gitlab.
>
> That would be great!
>
> We need two things:
>
> - a Yocto build container
> - a build script
>
>
> The build container would be something like:
> automation/build/debian/unstable-arm64v8.dockerfile. It is a Dockerfile
> to create a container with Yocto and all required dependencies. It could
> be based on Debian arm64. The build container is only built once and
> pushed to the gitlab registry, but it is executed every time a gitlab
> pipeline is started.
>
> We probably want the meta layers to be pulled as part of the build
> container build (git clone from the Dockerfile) because otherwise we
> would end up git cloining them every time we run a gitlab-ci pipeline,
> slowing everything down.
>
>
> The build script is the script executed in the build container for every
> pipeline.
>
> Imagine you have a container "yocto-arm32", basically we want to do:
>
> # docker run yocto-arm32 build.script
>
> where build.script is the script that actually triggers the Xen build
> and produces the binary output.
>
> The current build script is automation/scripts/build; it is used for all
> build containers (all of them, from Debian to Fedora and Alpine) but it
> is probably not suitable to be used for Yocto. It simply calls
> ./configure; make; make install. It is more for normal distros.
>
> I imagine that the build script for Yocto would call bitbake.
>
>
> With the build container Dockerfile and the build script it becomes
> very simple to add Yocto arm32 to gitlab-ci.
>
> I realize that the actual build could be done on both arm64 or x86.
> Currently the arm32 hypervisor-only cross-build is done on x86. See
> automation/build/debian/unstable-arm32-gcc.dockerfile. Either way is OK.
I will work on that and I think we can take this discussion offline as there are some elements missing right now (like where is the xen tree to test).
Cheers
Bertrand
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else
2022-07-01 13:26 ` Bertrand Marquis
@ 2022-07-01 17:47 ` Stefano Stabellini
0 siblings, 0 replies; 73+ messages in thread
From: Stefano Stabellini @ 2022-07-01 17:47 UTC (permalink / raw)
To: Bertrand Marquis
Cc: Stefano Stabellini, Luca Fancellu, Anthony PERARD, Xen-devel,
Wei Liu, Elena Ufimtseva, Tim Deegan, Daniel De Graaf,
Daniel P. Smith, Roger Pau Monné,
Juergen Gross, Christian Lindig, David Scott
[-- Attachment #1: Type: text/plain, Size: 4208 bytes --]
On Fri, 1 Jul 2022, Bertrand Marquis wrote:
> > On 30 Jun 2022, at 22:03, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >
> > On Thu, 30 Jun 2022, Bertrand Marquis wrote:
> >>> On 29 Jun 2022, at 18:22, Stefano Stabellini <sstabellini@kernel.org> wrote:
> >>>
> >>> On Wed, 29 Jun 2022, Luca Fancellu wrote:
> >>>> + CC: Stefano Stabellini
> >>>>
> >>>>> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
> >>>>>
> >>>>> Patch "tools: Add -Werror by default to all tools/" have added
> >>>>> "-Werror" to CFLAGS in tools/Rules.mk, remove it from every other
> >>>>> makefiles as it is now duplicated.
> >>>>>
> >>>>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> >>>>
> >>>> Hi Anthony,
> >>>>
> >>>> I will try to review the serie when I manage to have some time, in the mean time I can say the whole
> >>>> serie builds fine in my Yocto setup on arm64 and x86_64, I’ve tried also the tool stack to
> >>>> create/destroy/console guests and no problem so far.
> >>>>
> >>>> The only problem I have is building for arm32 because, I think, this patch does a great job and it
> >>>> discovers a problem here:
> >>>
> >>> That reminds me that we only have arm32 Xen hypervisor builds in
> >>> gitlab-ci, we don't have any arm32 Xen tools builds. I'll add it to my
> >>> TODO but if someone (not necessarily Luca) has some spare time it could
> >>> be a nice project. It could be done with Yocto by adding a Yocto build
> >>> container to automation/build/.
> >>
> >> We have now a way to build and run xen for arm32 on qemu using Yocto.
> >> We are using this internally and also will test Xen with guests on arm32 using this soon.
> >>
> >> I am upstreaming to meta-virtualisation all the fixes needed for that so it should be fairly straight forward do reproduce this in Yocto build in a container.
> >>
> >> Please tell me what you need and I will try to provide you a set of scripts or instructions do reproduce that on gitlab.
> >
> > That would be great!
> >
> > We need two things:
> >
> > - a Yocto build container
> > - a build script
> >
> >
> > The build container would be something like:
> > automation/build/debian/unstable-arm64v8.dockerfile. It is a Dockerfile
> > to create a container with Yocto and all required dependencies. It could
> > be based on Debian arm64. The build container is only built once and
> > pushed to the gitlab registry, but it is executed every time a gitlab
> > pipeline is started.
> >
> > We probably want the meta layers to be pulled as part of the build
> > container build (git clone from the Dockerfile) because otherwise we
> > would end up git cloining them every time we run a gitlab-ci pipeline,
> > slowing everything down.
> >
> >
> > The build script is the script executed in the build container for every
> > pipeline.
> >
> > Imagine you have a container "yocto-arm32", basically we want to do:
> >
> > # docker run yocto-arm32 build.script
> >
> > where build.script is the script that actually triggers the Xen build
> > and produces the binary output.
> >
> > The current build script is automation/scripts/build; it is used for all
> > build containers (all of them, from Debian to Fedora and Alpine) but it
> > is probably not suitable to be used for Yocto. It simply calls
> > ./configure; make; make install. It is more for normal distros.
> >
> > I imagine that the build script for Yocto would call bitbake.
> >
> >
> > With the build container Dockerfile and the build script it becomes
> > very simple to add Yocto arm32 to gitlab-ci.
> >
> > I realize that the actual build could be done on both arm64 or x86.
> > Currently the arm32 hypervisor-only cross-build is done on x86. See
> > automation/build/debian/unstable-arm32-gcc.dockerfile. Either way is OK.
>
> I will work on that and I think we can take this discussion offline as there are some elements missing right now (like where is the xen tree to test).
No problem, I am happy to help offline as well. The Xen tree is given to
you automatically by gitlab-ci (because it is the repository with the
.gitlab* yaml files.) The build container starts execution with the Xen
repository to test ready inside.
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc}
2022-06-24 16:04 ` [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc} Anthony PERARD
2022-06-29 10:15 ` Juergen Gross
@ 2022-07-05 13:17 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Bertrand Marquis @ 2022-07-05 13:17 UTC (permalink / raw)
To: Anthony PERARD
Cc: Xen-devel, Andrew Cooper, George Dunlap, Jan Beulich,
Julien Grall, Stefano Stabellini, Wei Liu, Juergen Gross
Hi Anthony,
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Cheers
Bertrand
> ---
>
> Notes:
> v2:
> - move new .gitignore entries to the one in tools/libs/
>
> .gitignore | 26 --------------------------
> tools/libs/.gitignore | 2 ++
> 2 files changed, 2 insertions(+), 26 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index 8b6886f3fd..1de28c833c 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -106,26 +106,8 @@ tools/config.cache
> config/Tools.mk
> config/Stubdom.mk
> config/Docs.mk
> -tools/libs/toolcore/headers.chk
> -tools/libs/toolcore/xentoolcore.pc
> -tools/libs/toollog/headers.chk
> -tools/libs/toollog/xentoollog.pc
> -tools/libs/evtchn/headers.chk
> -tools/libs/evtchn/xenevtchn.pc
> -tools/libs/gnttab/headers.chk
> -tools/libs/gnttab/xengnttab.pc
> -tools/libs/hypfs/headers.chk
> -tools/libs/hypfs/xenhypfs.pc
> -tools/libs/call/headers.chk
> -tools/libs/call/xencall.pc
> tools/libs/ctrl/libxenctrl.map
> -tools/libs/ctrl/xencontrol.pc
> -tools/libs/foreignmemory/headers.chk
> -tools/libs/foreignmemory/xenforeignmemory.pc
> -tools/libs/devicemodel/headers.chk
> -tools/libs/devicemodel/xendevicemodel.pc
> tools/libs/guest/libxenguest.map
> -tools/libs/guest/xenguest.pc
> tools/libs/guest/xc_bitops.h
> tools/libs/guest/xc_core.h
> tools/libs/guest/xc_core_arm.h
> @@ -145,21 +127,13 @@ tools/libs/light/testidl.c
> tools/libs/light/test_timedereg
> tools/libs/light/test_fdderegrace
> tools/libs/light/tmp.*
> -tools/libs/light/xenlight.pc
> -tools/libs/stat/headers.chk
> tools/libs/stat/libxenstat.map
> -tools/libs/stat/xenstat.pc
> -tools/libs/store/headers.chk
> tools/libs/store/list.h
> tools/libs/store/utils.h
> -tools/libs/store/xenstore.pc
> tools/libs/store/xs_lib.c
> -tools/libs/util/*.pc
> tools/libs/util/libxlu_cfg_y.output
> tools/libs/util/libxenutil.map
> -tools/libs/vchan/headers.chk
> tools/libs/vchan/libxenvchan.map
> -tools/libs/vchan/xenvchan.pc
> tools/debugger/gdb/gdb-6.2.1-linux-i386-xen/*
> tools/debugger/gdb/gdb-6.2.1/*
> tools/debugger/gdb/gdb-6.2.1.tar.bz2
> diff --git a/tools/libs/.gitignore b/tools/libs/.gitignore
> index 4a13126144..1ad7c7f0cb 100644
> --- a/tools/libs/.gitignore
> +++ b/tools/libs/.gitignore
> @@ -1 +1,3 @@
> +*/*.pc
> +*/headers.chk
> */headers.lst
> --
> Anthony PERARD
>
>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile
2022-06-24 16:04 ` [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile Anthony PERARD
2022-06-29 10:18 ` Juergen Gross
@ 2022-07-05 13:20 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Bertrand Marquis @ 2022-07-05 13:20 UTC (permalink / raw)
To: Anthony PERARD; +Cc: Xen-devel, Wei Liu, Juergen Gross
Hi Anthony,
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Remove -I. from CFLAGS, it isn't necessary.
>
> Removed $(AUTOSRCS), it isn't used.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Cheers
Bertrand
> ---
> tools/libs/util/Makefile | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/tools/libs/util/Makefile b/tools/libs/util/Makefile
> index ffe507b379..493d2e00be 100644
> --- a/tools/libs/util/Makefile
> +++ b/tools/libs/util/Makefile
> @@ -11,7 +11,7 @@ OBJS-y += libxlu_pci.o
>
> CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
> -Wno-declaration-after-statement -Wformat-nonliteral
> -CFLAGS += -I. $(CFLAGS_libxenctrl)
> +CFLAGS += $(CFLAGS_libxenctrl)
>
> CFLAGS += $(PTHREAD_CFLAGS)
> LDFLAGS += $(PTHREAD_LDFLAGS)
> @@ -29,7 +29,6 @@ ifeq ($(BISON),)
> endif
>
> AUTOINCS = libxlu_cfg_y.h libxlu_cfg_l.h libxlu_disk_l.h
> -AUTOSRCS = libxlu_cfg_y.c libxlu_cfg_l.c
>
> LIBHEADER := libxlutil.h
> PKG_CONFIG_NAME := Xlutil
> --
> Anthony PERARD
>
>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS)
2022-06-24 16:04 ` [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS) Anthony PERARD
2022-06-29 10:19 ` Juergen Gross
@ 2022-07-05 13:21 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Bertrand Marquis @ 2022-07-05 13:21 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu, Juergen Gross
HI Anthony,
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Cheers
Bertrand
> ---
> tools/libs/libs.mk | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
> index 58d8166b09..e02f91f95e 100644
> --- a/tools/libs/libs.mk
> +++ b/tools/libs/libs.mk
> @@ -23,9 +23,9 @@ LDLIBS += $(foreach lib, $(USELIBS_$(LIBNAME)), $(LDLIBS_libxen$(lib)))
> PIC_OBJS := $(OBJS-y:.o=.opic)
>
> LIB_FILE_NAME = $(FILENAME_$(LIBNAME))
> -LIB := lib$(LIB_FILE_NAME).a
> +TARGETS := lib$(LIB_FILE_NAME).a
> ifneq ($(nosharedlibs),y)
> -LIB += lib$(LIB_FILE_NAME).so
> +TARGETS += lib$(LIB_FILE_NAME).so
> endif
>
> PKG_CONFIG ?= $(LIB_FILE_NAME).pc
> @@ -55,7 +55,7 @@ $(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
> $(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
>
> .PHONY: all
> -all: headers.chk $(LIB) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
> +all: headers.chk $(TARGETS) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
>
> ifneq ($(NO_HEADERS_CHK),y)
> headers.chk:
> @@ -124,7 +124,7 @@ TAGS:
>
> .PHONY: clean
> clean::
> - rm -rf $(LIB) *~ $(DEPS_RM) $(OBJS-y) $(PIC_OBJS)
> + rm -rf $(TARGETS) *~ $(DEPS_RM) $(OBJS-y) $(PIC_OBJS)
> rm -f lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR) lib$(LIB_FILE_NAME).so.$(MAJOR)
> rm -f headers.chk headers.lst
> rm -f $(PKG_CONFIG)
> --
> Anthony PERARD
>
>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST)
2022-06-24 16:04 ` [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST) Anthony PERARD
2022-06-29 10:22 ` Juergen Gross
@ 2022-07-05 13:27 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Bertrand Marquis @ 2022-07-05 13:27 UTC (permalink / raw)
To: Anthony PERARD; +Cc: Xen-devel, Wei Liu, Juergen Gross
Hi Anthony,
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> We can simply use $(PKG_CONFIG) to set the parameters, and add it to
> $(TARGETS) as necessary.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Cheers
Bertrand
> ---
> tools/libs/libs.mk | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
> index e02f91f95e..7aee449370 100644
> --- a/tools/libs/libs.mk
> +++ b/tools/libs/libs.mk
> @@ -37,10 +37,10 @@ PKG_CONFIG_LIB := $(LIB_FILE_NAME)
> PKG_CONFIG_REQPRIV := $(subst $(space),$(comma),$(strip $(foreach lib,$(patsubst ctrl,control,$(USELIBS_$(LIBNAME))),xen$(lib))))
>
> ifneq ($(CONFIG_LIBXC_MINIOS),y)
> -PKG_CONFIG_INST := $(PKG_CONFIG)
> -$(PKG_CONFIG_INST): PKG_CONFIG_PREFIX = $(prefix)
> -$(PKG_CONFIG_INST): PKG_CONFIG_INCDIR = $(includedir)
> -$(PKG_CONFIG_INST): PKG_CONFIG_LIBDIR = $(libdir)
> +TARGETS += $(PKG_CONFIG)
> +$(PKG_CONFIG): PKG_CONFIG_PREFIX = $(prefix)
> +$(PKG_CONFIG): PKG_CONFIG_INCDIR = $(includedir)
> +$(PKG_CONFIG): PKG_CONFIG_LIBDIR = $(libdir)
> endif
>
> PKG_CONFIG_LOCAL := $(PKG_CONFIG_DIR)/$(PKG_CONFIG)
> @@ -55,7 +55,7 @@ $(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
> $(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
>
> .PHONY: all
> -all: headers.chk $(TARGETS) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
> +all: headers.chk $(TARGETS) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
>
> ifneq ($(NO_HEADERS_CHK),y)
> headers.chk:
> @@ -127,7 +127,6 @@ clean::
> rm -rf $(TARGETS) *~ $(DEPS_RM) $(OBJS-y) $(PIC_OBJS)
> rm -f lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR) lib$(LIB_FILE_NAME).so.$(MAJOR)
> rm -f headers.chk headers.lst
> - rm -f $(PKG_CONFIG)
>
> .PHONY: distclean
> distclean: clean
> --
> Anthony PERARD
>
>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies
2022-06-24 16:04 ` [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies Anthony PERARD
2022-06-29 10:23 ` Juergen Gross
@ 2022-07-05 13:29 ` Bertrand Marquis
1 sibling, 0 replies; 73+ messages in thread
From: Bertrand Marquis @ 2022-07-05 13:29 UTC (permalink / raw)
To: Anthony PERARD; +Cc: Xen-devel, Wei Liu, Juergen Gross
Hi Anthony,
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> There is no need to call the "headers.chk" target when it isn't
> wanted, so it never need to be .PHONY.
>
> Also, there is no more reason to separate the prerequisites from the
> recipe.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Cheers
Bertrand
> ---
> tools/libs/libs.mk | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
> index 7aee449370..f778a7df82 100644
> --- a/tools/libs/libs.mk
> +++ b/tools/libs/libs.mk
> @@ -55,22 +55,20 @@ $(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
> $(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
>
> .PHONY: all
> -all: headers.chk $(TARGETS) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
> +all: $(TARGETS) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
>
> ifneq ($(NO_HEADERS_CHK),y)
> -headers.chk:
> +all: headers.chk
> +
> +headers.chk: $(LIBHEADERS) $(AUTOINCS)
> for i in $(filter %.h,$^); do \
> $(CC) -x c -ansi -Wall -Werror $(CFLAGS_xeninclude) \
> -S -o /dev/null $$i || exit 1; \
> echo $$i; \
> done >$@.new
> mv $@.new $@
> -else
> -.PHONY: headers.chk
> endif
>
> -headers.chk: $(LIBHEADERS) $(AUTOINCS)
> -
> headers.lst: FORCE
> @{ set -e; $(foreach h,$(LIBHEADERS),echo $(h);) } > $@.tmp
> @$(call move-if-changed,$@.tmp,$@)
> --
> Anthony PERARD
>
>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 01/25] tools/console: have one Makefile per program/directory
2022-06-24 16:03 ` [XEN PATCH v3 01/25] tools/console: have one Makefile per program/directory Anthony PERARD
@ 2022-07-08 15:08 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-08 15:08 UTC (permalink / raw)
To: Anthony PERARD
Cc: Xen-devel, Andrew Cooper, George Dunlap, Jan Beulich,
Julien Grall, Stefano Stabellini, Wei Liu
> On 24 Jun 2022, at 17:03, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Sources of both xenconsoled and xenconsole are already separated into
> different directory and don't share anything in common. Having two
> different Makefile means it's easier to deal with *FLAGS.
>
> Some common changes:
> Rename $(BIN) to $(TARGETS), this will be useful later.
> Stop removing *.so *.rpm *.a as they aren't created here.
> Use $(OBJS-y) to list objects.
> Update $(CFLAGS) for the directory rather than a single object.
>
> daemon:
> Remove the need for $(LDLIBS_xenconsoled), use $(LDLIBS) instead.
> Remove the need for $(CONSOLE_CFLAGS-y) and use $(CFLAGS-y)
> instead.
>
> client:
> Remove the unused $(LDLIBS_xenconsole)
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
It looks good to me.
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 02/25] tools/debugger/gdbsx: Fix and cleanup makefiles
2022-06-24 16:03 ` [XEN PATCH v3 02/25] tools/debugger/gdbsx: Fix and cleanup makefiles Anthony PERARD
@ 2022-07-08 15:23 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-08 15:23 UTC (permalink / raw)
To: Anthony PERARD; +Cc: Xen-devel, Elena Ufimtseva, Wei Liu
> On 24 Jun 2022, at 17:03, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> gdbsx/:
> - Make use of subdir facility for the "clean" target.
> - No need to remove the *.a, they aren't in this dir.
> - Avoid calling "distclean" in subdirs as "distclean" targets do only
> call "clean", and the "clean" also runs "clean" in subdirs.
> - Avoid the need to make "gx_all.a" and "xg_all.a" in the "all"
> recipe by forcing make to check for update of "xg/xg_all.a" and
> "gx/gx_all.a" by having "FORCE" as prerequisite. Now, when making
> "gdbsx", make will recurse even when both *.a already exist.
> - List target in $(TARGETS).
>
> gdbsx/*/:
> - Fix dependency on *.h.
> - Remove some dead code.
> - List targets in $(TARGETS).
> - Remove "build" target.
> - Cleanup "clean" targets.
> - remove comments about the choice of "ar" instead of "ld"
> - Use "$(AR)" instead of plain "ar".
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 03/25] tools/examples: cleanup Makefile
2022-06-24 16:04 ` [XEN PATCH v3 03/25] tools/examples: cleanup Makefile Anthony PERARD
@ 2022-07-08 15:31 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-08 15:31 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Don't check if a target exist before installing it. For directory,
> install doesn't complain, and for file it would prevent from updating
> them. Also remove the existing loop and instead install all files with
> a single call to $(INSTALL_DATA).
>
> Remove XEN_CONFIGS-y which isn't used.
>
> Remove "build" target.
>
> Add an empty line after the first comment. The comment isn't about
> $(XEN_READMES), it is about the makefile as a whole.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile
2022-06-24 16:04 ` [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile Anthony PERARD
@ 2022-07-08 15:39 ` Luca Fancellu
2022-07-11 13:38 ` Anthony PERARD
2022-07-11 13:41 ` Jan Beulich
2022-07-11 13:52 ` Jan Beulich
1 sibling, 2 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-08 15:39 UTC (permalink / raw)
To: Anthony PERARD
Cc: Xen-devel, Jan Beulich, Andrew Cooper, Roger Pau Monné, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Setup proper dependencies with libacpi so we don't need to run "make
> hvmloader" in the "all" target. ("build.o" new prerequisite isn't
> exactly proper but a side effect of building the $(DSDT_FILES) is to
> generate the "ssdt_*.h" needed by "build.o".)
>
> Make use if "-iquote" instead of a plain "-I".
>
> For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use
> full path to "mkhex" instead of a relative one. Lastly, add "-f" flag
> to "mv", in case the target already exist.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
> tools/firmware/hvmloader/Makefile | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
> index b754220839..fc20932110 100644
> --- a/tools/firmware/hvmloader/Makefile
> +++ b/tools/firmware/hvmloader/Makefile
> @@ -60,8 +60,7 @@ ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM)
> endif
>
> .PHONY: all
> -all: acpi
> - $(MAKE) hvmloader
> +all: hvmloader
>
> .PHONY: acpi
> acpi:
> @@ -73,12 +72,15 @@ smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
> ACPI_PATH = ../../libacpi
> DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
> ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o
> -$(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
> +$(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
> CFLAGS += -I$(ACPI_PATH)
> vpath build.c $(ACPI_PATH)
> vpath static_tables.c $(ACPI_PATH)
> OBJS += $(ACPI_OBJS)
>
> +$(DSDT_FILES): acpi
> +build.o: $(DSDT_FILES)
> +
> hvmloader: $(OBJS) hvmloader.lds
> $(LD) $(LDFLAGS_DIRECT) -N -T hvmloader.lds -o $@ $(OBJS)
>
> @@ -87,21 +89,21 @@ roms.inc: $(ROMS)
>
> ifneq ($(ROMBIOS_ROM),)
> echo "#ifdef ROM_INCLUDE_ROMBIOS" >> $@.new
> - sh ../../misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
> echo "#endif" >> $@.new
> endif
>
> ifneq ($(STDVGA_ROM),)
> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
> - sh ../../misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
> echo "#endif" >> $@.new
> endif
> ifneq ($(CIRRUSVGA_ROM),)
> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
> - sh ../../misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
> echo "#endif" >> $@.new
> endif
> - mv $@.new $@
> + mv -f $@.new $@
Here, instead of -f, is it safer -u? What’s your opinion on that? The patch looks good to me.
>
> .PHONY: clean
> clean:
> --
> Anthony PERARD
>
>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 05/25] tools/fuzz/libelf: rework makefile
2022-06-24 16:04 ` [XEN PATCH v3 05/25] tools/fuzz/libelf: rework makefile Anthony PERARD
@ 2022-07-11 11:23 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-11 11:23 UTC (permalink / raw)
To: Anthony PERARD
Cc: Xen development discussion, Andrew Cooper, George Dunlap,
Jan Beulich, Julien Grall, Stefano Stabellini, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Rename ELF_LIB_OBJS to LIBELF_OBJS as to have the same name as in
> libs/guest/.
>
> Replace "-I" by "-iquote".
>
> Remove the use of "vpath". It will not works when we will convert this
> makefile to subdirmk. Instead, we create symlinks to the source files.
>
> Since we are creating a new .gitignore for the links, also move the
> existing entry to it.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> —
Hi Antony,
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: rework makefile
2022-06-24 16:04 ` [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: " Anthony PERARD
@ 2022-07-11 13:16 ` Luca Fancellu
2022-07-11 14:08 ` Jan Beulich
1 sibling, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-11 13:16 UTC (permalink / raw)
To: Anthony PERARD
Cc: Xen development discussion, Andrew Cooper, George Dunlap,
Jan Beulich, Julien Grall, Stefano Stabellini, Wei Liu,
Roger Pau Monné
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Rework dependencies of all objects. We don't need to add dependencies
> for headers that $(CC) is capable of generating, we only need to
> include $(DEPS_INCLUDE). Some dependencies are still needed so make
> knows to generate symlinks for them.
>
> We remove the use of "vpath" for cpuid.c. While it works fine for now,
> when we will convert this makefile to subdirmk, vpath will not be
> usable. Also, "-iquote" is now needed to build "cpuid.o".
>
> Replace "-I." by "-iquote .", so it applies to double-quote includes
> only.
>
> Rather than checking if a symlink exist, always regenerate the
> symlink. So if the source tree changed location, the symlink is
> updated.
>
> Since we are creating a new .gitignore for the symlink, also move the
> entry to it.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> —
Hi Antony,
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile
2022-07-08 15:39 ` Luca Fancellu
@ 2022-07-11 13:38 ` Anthony PERARD
2022-07-11 13:40 ` Luca Fancellu
2022-07-11 13:41 ` Jan Beulich
1 sibling, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-07-11 13:38 UTC (permalink / raw)
To: Luca Fancellu
Cc: Xen-devel, Jan Beulich, Andrew Cooper, Roger Pau Monné, Wei Liu
On Fri, Jul 08, 2022 at 03:39:00PM +0000, Luca Fancellu wrote:
> > On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
[...]
> > For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use
> > full path to "mkhex" instead of a relative one. Lastly, add "-f" flag
> > to "mv", in case the target already exist.
> >
> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> > ---
> > diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
> > index b754220839..fc20932110 100644
> > --- a/tools/firmware/hvmloader/Makefile
> > +++ b/tools/firmware/hvmloader/Makefile
> > @@ -87,21 +89,21 @@ roms.inc: $(ROMS)
> >
> > ifneq ($(ROMBIOS_ROM),)
> > echo "#ifdef ROM_INCLUDE_ROMBIOS" >> $@.new
> > - sh ../../misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
> > + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
> > echo "#endif" >> $@.new
> > endif
> >
> > ifneq ($(STDVGA_ROM),)
> > echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
> > - sh ../../misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
> > + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
> > echo "#endif" >> $@.new
> > endif
> > ifneq ($(CIRRUSVGA_ROM),)
> > echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
> > - sh ../../misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
> > + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
> > echo "#endif" >> $@.new
> > endif
> > - mv $@.new $@
> > + mv -f $@.new $@
>
> Here, instead of -f, is it safer -u? What’s your opinion on that? The patch looks good to me.
make want to rebuild the target, so there is no reason to keep the
existing target. We do need to overwrite the existing target if it
exist.
Thanks for the reviews!
--
Anthony PERARD
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile
2022-07-11 13:38 ` Anthony PERARD
@ 2022-07-11 13:40 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-11 13:40 UTC (permalink / raw)
To: Anthony PERARD
Cc: Xen-devel, Jan Beulich, Andrew Cooper, Roger Pau Monné, Wei Liu
> On 11 Jul 2022, at 14:38, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> On Fri, Jul 08, 2022 at 03:39:00PM +0000, Luca Fancellu wrote:
>>> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
> [...]
>>> For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use
>>> full path to "mkhex" instead of a relative one. Lastly, add "-f" flag
>>> to "mv", in case the target already exist.
>>>
>>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>>> ---
>>> diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
>>> index b754220839..fc20932110 100644
>>> --- a/tools/firmware/hvmloader/Makefile
>>> +++ b/tools/firmware/hvmloader/Makefile
>>> @@ -87,21 +89,21 @@ roms.inc: $(ROMS)
>>>
>>> ifneq ($(ROMBIOS_ROM),)
>>> echo "#ifdef ROM_INCLUDE_ROMBIOS" >> $@.new
>>> - sh ../../misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
>>> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
>>> echo "#endif" >> $@.new
>>> endif
>>>
>>> ifneq ($(STDVGA_ROM),)
>>> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
>>> - sh ../../misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
>>> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
>>> echo "#endif" >> $@.new
>>> endif
>>> ifneq ($(CIRRUSVGA_ROM),)
>>> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
>>> - sh ../../misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
>>> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
>>> echo "#endif" >> $@.new
>>> endif
>>> - mv $@.new $@
>>> + mv -f $@.new $@
>>
>> Here, instead of -f, is it safer -u? What’s your opinion on that? The patch looks good to me.
>
> make want to rebuild the target, so there is no reason to keep the
> existing target. We do need to overwrite the existing target if it
> exist.
>
> Thanks for the reviews!
Ok thanks for the clarification, as I said the changes looks good to me:
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>
> --
> Anthony PERARD
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile
2022-07-08 15:39 ` Luca Fancellu
2022-07-11 13:38 ` Anthony PERARD
@ 2022-07-11 13:41 ` Jan Beulich
1 sibling, 0 replies; 73+ messages in thread
From: Jan Beulich @ 2022-07-11 13:41 UTC (permalink / raw)
To: Luca Fancellu
Cc: Xen-devel, Andrew Cooper, Roger Pau Monné, Wei Liu, Anthony PERARD
On 08.07.2022 17:39, Luca Fancellu wrote:
>> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>> @@ -87,21 +89,21 @@ roms.inc: $(ROMS)
>>
>> ifneq ($(ROMBIOS_ROM),)
>> echo "#ifdef ROM_INCLUDE_ROMBIOS" >> $@.new
>> - sh ../../misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
>> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
>> echo "#endif" >> $@.new
>> endif
>>
>> ifneq ($(STDVGA_ROM),)
>> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
>> - sh ../../misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
>> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
>> echo "#endif" >> $@.new
>> endif
>> ifneq ($(CIRRUSVGA_ROM),)
>> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
>> - sh ../../misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
>> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
>> echo "#endif" >> $@.new
>> endif
>> - mv $@.new $@
>> + mv -f $@.new $@
>
> Here, instead of -f, is it safer -u? What’s your opinion on that? The patch looks good to me.
Would -u be an option to use in the first place? It's not a standard
option to mv, afaict.
Jan
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile
2022-06-24 16:04 ` [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile Anthony PERARD
2022-07-08 15:39 ` Luca Fancellu
@ 2022-07-11 13:52 ` Jan Beulich
2022-07-11 17:01 ` Anthony PERARD
1 sibling, 1 reply; 73+ messages in thread
From: Jan Beulich @ 2022-07-11 13:52 UTC (permalink / raw)
To: Anthony PERARD; +Cc: Andrew Cooper, Roger Pau Monné, Wei Liu, xen-devel
On 24.06.2022 18:04, Anthony PERARD wrote:
> Setup proper dependencies with libacpi so we don't need to run "make
> hvmloader" in the "all" target. ("build.o" new prerequisite isn't
> exactly proper but a side effect of building the $(DSDT_FILES) is to
> generate the "ssdt_*.h" needed by "build.o".)
Maybe leave a brief comment there?
> Make use if "-iquote" instead of a plain "-I".
>
> For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use
> full path to "mkhex" instead of a relative one. Lastly, add "-f" flag
> to "mv", in case the target already exist.
Hmm - according to my understanding -f isn't needed just because the
file may already exist. It would be needed if a pre-existing file
isn't writable. (I don't mind the addition of the flag, but I think
what you say can end up misleading.)
Jan
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
> tools/firmware/hvmloader/Makefile | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
> index b754220839..fc20932110 100644
> --- a/tools/firmware/hvmloader/Makefile
> +++ b/tools/firmware/hvmloader/Makefile
> @@ -60,8 +60,7 @@ ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM)
> endif
>
> .PHONY: all
> -all: acpi
> - $(MAKE) hvmloader
> +all: hvmloader
>
> .PHONY: acpi
> acpi:
> @@ -73,12 +72,15 @@ smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
> ACPI_PATH = ../../libacpi
> DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
> ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o
> -$(ACPI_OBJS): CFLAGS += -I. -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
> +$(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
> CFLAGS += -I$(ACPI_PATH)
> vpath build.c $(ACPI_PATH)
> vpath static_tables.c $(ACPI_PATH)
> OBJS += $(ACPI_OBJS)
>
> +$(DSDT_FILES): acpi
> +build.o: $(DSDT_FILES)
> +
> hvmloader: $(OBJS) hvmloader.lds
> $(LD) $(LDFLAGS_DIRECT) -N -T hvmloader.lds -o $@ $(OBJS)
>
> @@ -87,21 +89,21 @@ roms.inc: $(ROMS)
>
> ifneq ($(ROMBIOS_ROM),)
> echo "#ifdef ROM_INCLUDE_ROMBIOS" >> $@.new
> - sh ../../misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex rombios $(ROMBIOS_ROM) >> $@.new
> echo "#endif" >> $@.new
> endif
>
> ifneq ($(STDVGA_ROM),)
> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
> - sh ../../misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_stdvga $(STDVGA_ROM) >> $@.new
> echo "#endif" >> $@.new
> endif
> ifneq ($(CIRRUSVGA_ROM),)
> echo "#ifdef ROM_INCLUDE_VGABIOS" >> $@.new
> - sh ../../misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
> + $(SHELL) $(XEN_ROOT)/tools/misc/mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
> echo "#endif" >> $@.new
> endif
> - mv $@.new $@
> + mv -f $@.new $@
>
> .PHONY: clean
> clean:
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: rework makefile
2022-06-24 16:04 ` [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: " Anthony PERARD
2022-07-11 13:16 ` Luca Fancellu
@ 2022-07-11 14:08 ` Jan Beulich
2022-08-02 17:09 ` Anthony PERARD
1 sibling, 1 reply; 73+ messages in thread
From: Jan Beulich @ 2022-07-11 14:08 UTC (permalink / raw)
To: Anthony PERARD
Cc: Andrew Cooper, George Dunlap, Julien Grall, Stefano Stabellini,
Wei Liu, Roger Pau Monné,
xen-devel
On 24.06.2022 18:04, Anthony PERARD wrote:
> --- a/tools/fuzz/x86_instruction_emulator/Makefile
> +++ b/tools/fuzz/x86_instruction_emulator/Makefile
> @@ -8,33 +8,27 @@ else
> x86-insn-fuzz-all:
> endif
>
> -# Add libx86 to the build
> -vpath %.c $(XEN_ROOT)/xen/lib/x86
> +cpuid.c: %: $(XEN_ROOT)/xen/lib/x86/% FORCE
> + ln -nsf $< $@
I guess the idea with the original construct was to allow using further
source files from libx86 with as little code churn as possible. Your
change now requires two more lines to be touched. As long as we avoid
name collisions in the various directories (wrapper.c and a few more
files come from yet somewhere else), couldn't this rule simply be
%.c: $(XEN_ROOT)/xen/lib/x86/%.c FORCE
ln -nsf $< $@
?
> -x86_emulate:
> - [ -L $@ ] || ln -sf $(XEN_ROOT)/xen/arch/x86/$@
> +x86_emulate: FORCE
> + ln -nsf $(XEN_ROOT)/xen/arch/x86/$@
>
> x86_emulate/%: x86_emulate ;
>
> -x86-emulate.c x86-emulate.h wrappers.c: %:
> - [ -L $* ] || ln -sf $(XEN_ROOT)/tools/tests/x86_emulator/$*
> +x86-emulate.c x86-emulate.h wrappers.c: %: $(XEN_ROOT)/tools/tests/x86_emulator/% FORCE
> + ln -nsf $< $@
And similarly
%.c: $(XEN_ROOT)/tools/tests/x86_emulator/%.c FORCE
ln -nsf $< $@
%.h: $(XEN_ROOT)/tools/tests/x86_emulator/%.h FORCE
ln -nsf $< $@
here? (I'm hesitant to suggest plain %, i.e. without the filename
suffixes, as that would likely be at least confusing for Makefile.)
> @@ -67,3 +61,5 @@ afl: afl-harness
>
> .PHONY: afl-cov
> afl-cov: afl-harness-cov
> +
> +-include $(DEPS_INCLUDE)
I would expect doing so was avoided for some reason. Albeit it may
well be that too much cloning of tests/x86_emulator was done here,
and it's all fine this way. Can you confirm things to work when
building locally in just this subdir, e.g. via
make -sC .../tools/fuzz/x86_instruction_emulator CC=/build/afl/2.52b-base/afl-gcc
?
Jan
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile
2022-07-11 13:52 ` Jan Beulich
@ 2022-07-11 17:01 ` Anthony PERARD
0 siblings, 0 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-07-11 17:01 UTC (permalink / raw)
To: Jan Beulich; +Cc: Andrew Cooper, Roger Pau Monné, Wei Liu, xen-devel
On Mon, Jul 11, 2022 at 03:52:52PM +0200, Jan Beulich wrote:
> On 24.06.2022 18:04, Anthony PERARD wrote:
> > Setup proper dependencies with libacpi so we don't need to run "make
> > hvmloader" in the "all" target. ("build.o" new prerequisite isn't
> > exactly proper but a side effect of building the $(DSDT_FILES) is to
> > generate the "ssdt_*.h" needed by "build.o".)
>
> Maybe leave a brief comment there?
Sounds good.
> > Make use if "-iquote" instead of a plain "-I".
> >
> > For "roms.inc" target, use "$(SHELL)" instead of plain "sh". And use
> > full path to "mkhex" instead of a relative one. Lastly, add "-f" flag
> > to "mv", in case the target already exist.
>
> Hmm - according to my understanding -f isn't needed just because the
> file may already exist. It would be needed if a pre-existing file
> isn't writable. (I don't mind the addition of the flag, but I think
> what you say can end up misleading.)
Yes. After reading the posix doc about `mv`, the following would be
better:
Lastly, add "-f" flag to "mv" to avoid a prompt in case the target
already exist and we don't have write permission.
Thanks,
--
Anthony PERARD
^ permalink raw reply [flat|nested] 73+ messages in thread
* RE: [XEN PATCH v3 14/25] tools/flask/utils: list build targets in $(TARGETS)
2022-06-24 16:04 ` [XEN PATCH v3 14/25] tools/flask/utils: list build targets in $(TARGETS) Anthony PERARD
@ 2022-07-12 1:30 ` Henry Wang
0 siblings, 0 replies; 73+ messages in thread
From: Henry Wang @ 2022-07-12 1:30 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Daniel De Graaf, Daniel P. Smith, Wei Liu
Hi Anthony,
> -----Original Message-----
> Subject: [XEN PATCH v3 14/25] tools/flask/utils: list build targets in
> $(TARGETS)
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Henry Wang <Henry.Wang@arm.com>
Kind regards,
Henry
> ---
> tools/flask/utils/Makefile | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread
* RE: [XEN PATCH v3 23/25] tools/helpers: Fix build of xen-init-dom0 with -Werror
2022-06-24 16:04 ` [XEN PATCH v3 23/25] tools/helpers: Fix build of xen-init-dom0 with -Werror Anthony PERARD
@ 2022-07-12 1:31 ` Henry Wang
0 siblings, 0 replies; 73+ messages in thread
From: Henry Wang @ 2022-07-12 1:31 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu
Hi Anthony,
> -----Original Message-----
> Subject: [XEN PATCH v3 23/25] tools/helpers: Fix build of xen-init-dom0 with
> -Werror
>
> Missing prototype of asprintf() without _GNU_SOURCE.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Henry Wang <Henry.Wang@arm.com>
Kind regards,
Henry
> ---
> tools/helpers/xen-init-dom0.c | 2 ++
> 1 file changed, 2 insertions(+)
^ permalink raw reply [flat|nested] 73+ messages in thread
* RE: [XEN PATCH v3 20/25] tools: Introduce $(xenlibs-ldflags, ) macro
2022-06-24 16:04 ` [XEN PATCH v3 20/25] tools: Introduce $(xenlibs-ldflags, " Anthony PERARD
@ 2022-07-12 1:40 ` Henry Wang
0 siblings, 0 replies; 73+ messages in thread
From: Henry Wang @ 2022-07-12 1:40 UTC (permalink / raw)
To: Anthony PERARD, xen-devel; +Cc: Wei Liu, Nick Rosbrook
Hi Anthony,
> -----Original Message-----
> Subject: [XEN PATCH v3 20/25] tools: Introduce $(xenlibs-ldflags, ) macro
>
> This avoid the need to open-coding the list of flags needed to link
> with an in-tree Xen library when using -lxen*.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Henry Wang <Henry.Wang@arm.com>
Kind regards,
Henry
> ---
> tools/golang/xenlight/Makefile | 2 +-
> tools/Rules.mk | 8 ++++++++
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 07/25] tools/hotplug: cleanup Makefiles
2022-06-24 16:04 ` [XEN PATCH v3 07/25] tools/hotplug: cleanup Makefiles Anthony PERARD
@ 2022-07-22 11:02 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 11:02 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Remove "build" targets.
>
> Use simply expanded variables when recursively expanded variable
> aren't needed. (Use ":=" instead of "=".)
>
> Don't check if a directory already exist when installing, just create
> it.
>
> Fix $(HOTPLUGPATH), it shouldn't have any double-quote.
>
> Some reindentation.
>
> FreeBSD, "hotplugpath.sh" is already installed by common/.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
> ---
> tools/hotplug/FreeBSD/Makefile | 11 +++--------
> tools/hotplug/Linux/Makefile | 16 ++++++----------
> tools/hotplug/Linux/systemd/Makefile | 16 +++++++---------
> tools/hotplug/NetBSD/Makefile | 9 +++------
> tools/hotplug/common/Makefile | 16 ++++++----------
> 5 files changed, 25 insertions(+), 43 deletions(-)
>
> diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile
> index de9928cd86..a6552c9884 100644
> --- a/tools/hotplug/FreeBSD/Makefile
> +++ b/tools/hotplug/FreeBSD/Makefile
> @@ -2,18 +2,15 @@ XEN_ROOT = $(CURDIR)/../../..
> include $(XEN_ROOT)/tools/Rules.mk
>
> # Xen script dir and scripts to go there.
> -XEN_SCRIPTS = vif-bridge block
> +XEN_SCRIPTS := vif-bridge block
>
> -XEN_SCRIPT_DATA =
> +XEN_SCRIPT_DATA :=
Here (and also in NetBSD) the variable is empty, why are we keeping them
and the related code? Is it to keep a certain structure?
However the changes works and looks good to me, so your choice if it needs
to be addressed or not
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 08/25] tools/libfsimage: Cleanup makefiles
2022-06-24 16:04 ` [XEN PATCH v3 08/25] tools/libfsimage: Cleanup makefiles Anthony PERARD
@ 2022-07-22 12:07 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 12:07 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Remove the need for "fs-*" targets by creating a "common.mk" which
> have flags that are common to libfsimage/common/ and the other
> libfsimages/*/ directories.
>
> In common.mk, make $(PIC_OBJS) a recursively expanded variable so it
> doesn't matter where $(LIB_SRCS-y) is defined, and remove the extra
> $(PIC_OBJS) from libfsimage/common/Makefile.
>
> Use a $(TARGETS) variable to list things to be built. And $(TARGETS)
> can be use in the clean target in common.mk.
>
> iso9660/:
> Remove the explicit dependency between fsys_iso9660.c and
> iso9660.h, this is handled automaticaly by the .*.d dependency files,
> and iso9660.h already exist.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
Looks good to me
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 09/25] tools/xenpaging: Rework makefile
2022-06-24 16:04 ` [XEN PATCH v3 09/25] tools/xenpaging: Rework makefile Anthony PERARD
@ 2022-07-22 12:17 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 12:17 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> - Rename $(SRCS) to $(OBJS-y), we don't need to collect sources.
> - Rename $(IBINS) to $(TARGETS)
> - Stop cleaning "xen" and non-set variable $(LIB).
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
Is it worth to mention also that POLICY now is now not recursively expanded?
In any case the patch works as before:
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 10/25] tools/xentop: rework makefile
2022-06-24 16:04 ` [XEN PATCH v3 10/25] tools/xentop: rework makefile Anthony PERARD
@ 2022-07-22 13:13 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 13:13 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Add "xentop" to "TARGETS" because this variable will be useful later.
>
> Always define all the targets, even when configured with
> --disable-monitor, instead don't visit the subdirectory.
> This mean xentop/ isn't visited anymore during "make clean" that's how
> most other subdirs in the tools/ works.
>
> Also add missing "xentop" rules. It only works without it because we
> still have make's built-ins rules and variables, but fix this to not
> have to rely on them.
>
> Use $(TARGETS) with $(INSTALL_PROG), and thus install into the
> directory rather than spelling the program name.
>
> In the "clean" rule, use $(RM) and remove all "*.o" instead of just
> one object.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> —
Hi Antony,
Nice, this does it with just one gcc invocation.
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 11/25] tools/xentrace: rework Makefile
2022-06-24 16:04 ` [XEN PATCH v3 11/25] tools/xentrace: rework Makefile Anthony PERARD
@ 2022-07-22 13:30 ` Luca Fancellu
2022-08-08 15:35 ` Anthony PERARD
0 siblings, 1 reply; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 13:30 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, George Dunlap, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Remove "build" targets.
>
> Use "$(TARGETS)" to list binary to be built.
>
> Cleanup "clean" rule.
>
> Also drop conditional install of $(BIN) and $(LIBBIN) as those two
> variables are now always populated.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
Would it make sense to use := instead of =, for BIN, SBIN, LIBBIN, SCRIPTS?
> ---
>
> Notes:
> v2:
> - fix typo in title
> - drop conditional install of $(BIN) and $(LIBBIN)
>
> tools/xentrace/Makefile | 19 +++++++------------
> 1 file changed, 7 insertions(+), 12 deletions(-)
>
> diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile
> index 9fb7fc96e7..0995fa9203 100644
> --- a/tools/xentrace/Makefile
> +++ b/tools/xentrace/Makefile
> @@ -14,36 +14,31 @@ SBIN = xentrace xentrace_setsize
> LIBBIN = xenctx
> SCRIPTS = xentrace_format
>
> -.PHONY: all
> -all: build
> +TARGETS := $(BIN) $(SBIN) $(LIBBIN)
>
> -.PHONY: build
> -build: $(BIN) $(SBIN) $(LIBBIN)
> +.PHONY: all
> +all: $(TARGETS)
>
> .PHONY: install
> -install: build
> +install: all
> $(INSTALL_DIR) $(DESTDIR)$(bindir)
> $(INSTALL_DIR) $(DESTDIR)$(sbindir)
> - [ -z "$(LIBBIN)" ] || $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
> -ifneq ($(BIN),)
> + $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
> $(INSTALL_PROG) $(BIN) $(DESTDIR)$(bindir)
> -endif
> $(INSTALL_PROG) $(SBIN) $(DESTDIR)$(sbindir)
> $(INSTALL_PYTHON_PROG) $(SCRIPTS) $(DESTDIR)$(bindir)
> - [ -z "$(LIBBIN)" ] || $(INSTALL_PROG) $(LIBBIN) $(DESTDIR)$(LIBEXEC_BIN)
> + $(INSTALL_PROG) $(LIBBIN) $(DESTDIR)$(LIBEXEC_BIN)
>
> .PHONY: uninstall
> uninstall:
> rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(LIBBIN))
> rm -f $(addprefix $(DESTDIR)$(bindir)/, $(SCRIPTS))
> rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(SBIN))
> -ifneq ($(BIN),)
> rm -f $(addprefix $(DESTDIR)$(bindir)/, $(BIN))
> -endif
Why here don’t we use $(RM) ?
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 21/25] tools/helper: Cleanup Makefile
2022-06-24 16:04 ` [XEN PATCH v3 21/25] tools/helper: Cleanup Makefile Anthony PERARD
@ 2022-07-22 14:06 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 14:06 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> Use $(TARGETS) to collect targets.
> Collect library to link against in $(LDLIBS).
> Remove extra "-f" flags that is already part of $(RM).
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>
> Notes:
> v3:
> - apply changes to the new "init-dom0less" helper.
> - make use of the new macro $(xenlibs-ldlibs,)
>
> tools/helpers/Makefile | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile
> index 8d78ab1e90..7c9d671b32 100644
> --- a/tools/helpers/Makefile
> +++ b/tools/helpers/Makefile
> @@ -5,13 +5,13 @@
> XEN_ROOT = $(CURDIR)/../..
> include $(XEN_ROOT)/tools/Rules.mk
>
> -PROGS += xen-init-dom0
> +TARGETS += xen-init-dom0
Can this be TARGETS :=
The rest looks good, so with this addressed
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
I’ve also built and run the tool stack with (up to) this patch on both fvp-base for arm and
qemu for x86_64 and the binaries are ok.
Tested-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 22/25] tools/console: Use $(xenlibs-ldlibs,)
2022-06-24 16:04 ` [XEN PATCH v3 22/25] tools/console: Use $(xenlibs-ldlibs,) Anthony PERARD
@ 2022-07-22 14:15 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 14:15 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
It wouldn’t hurt something as commit message :)
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
In any case the patch looks good:
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 24/25] tools: Add -Werror by default to all tools/
2022-06-24 16:04 ` [XEN PATCH v3 24/25] tools: Add -Werror by default to all tools/ Anthony PERARD
@ 2022-07-22 14:31 ` Luca Fancellu
0 siblings, 0 replies; 73+ messages in thread
From: Luca Fancellu @ 2022-07-22 14:31 UTC (permalink / raw)
To: Anthony PERARD; +Cc: xen-devel, Wei Liu
> On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
>
> And provide an option to ./configure to disable it.
>
> A follow-up patch will remove -Werror from every other Makefile in
> tools/. ("tools: Remove -Werror everywhere else")
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Hi Antony,
Looks good to me
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: rework makefile
2022-07-11 14:08 ` Jan Beulich
@ 2022-08-02 17:09 ` Anthony PERARD
2022-08-03 5:56 ` Jan Beulich
0 siblings, 1 reply; 73+ messages in thread
From: Anthony PERARD @ 2022-08-02 17:09 UTC (permalink / raw)
To: Jan Beulich
Cc: Andrew Cooper, George Dunlap, Julien Grall, Stefano Stabellini,
Wei Liu, Roger Pau Monné,
xen-devel
On Mon, Jul 11, 2022 at 04:08:55PM +0200, Jan Beulich wrote:
> On 24.06.2022 18:04, Anthony PERARD wrote:
> > --- a/tools/fuzz/x86_instruction_emulator/Makefile
> > +++ b/tools/fuzz/x86_instruction_emulator/Makefile
> > @@ -8,33 +8,27 @@ else
> > x86-insn-fuzz-all:
> > endif
> >
> > -# Add libx86 to the build
> > -vpath %.c $(XEN_ROOT)/xen/lib/x86
> > +cpuid.c: %: $(XEN_ROOT)/xen/lib/x86/% FORCE
> > + ln -nsf $< $@
>
> I guess the idea with the original construct was to allow using further
> source files from libx86 with as little code churn as possible. Your
> change now requires two more lines to be touched. As long as we avoid
> name collisions in the various directories (wrapper.c and a few more
> files come from yet somewhere else), couldn't this rule simply be
>
> %.c: $(XEN_ROOT)/xen/lib/x86/%.c FORCE
> ln -nsf $< $@
>
> ?
Sounds good.
> > -x86_emulate:
> > - [ -L $@ ] || ln -sf $(XEN_ROOT)/xen/arch/x86/$@
> > +x86_emulate: FORCE
> > + ln -nsf $(XEN_ROOT)/xen/arch/x86/$@
> >
> > x86_emulate/%: x86_emulate ;
> >
> > -x86-emulate.c x86-emulate.h wrappers.c: %:
> > - [ -L $* ] || ln -sf $(XEN_ROOT)/tools/tests/x86_emulator/$*
> > +x86-emulate.c x86-emulate.h wrappers.c: %: $(XEN_ROOT)/tools/tests/x86_emulator/% FORCE
> > + ln -nsf $< $@
>
> And similarly
>
> %.c: $(XEN_ROOT)/tools/tests/x86_emulator/%.c FORCE
> ln -nsf $< $@
>
> %.h: $(XEN_ROOT)/tools/tests/x86_emulator/%.h FORCE
> ln -nsf $< $@
>
> here? (I'm hesitant to suggest plain %, i.e. without the filename
> suffixes, as that would likely be at least confusing for Makefile.)
Will do.
> > @@ -67,3 +61,5 @@ afl: afl-harness
> >
> > .PHONY: afl-cov
> > afl-cov: afl-harness-cov
> > +
> > +-include $(DEPS_INCLUDE)
>
> I would expect doing so was avoided for some reason. Albeit it may
> well be that too much cloning of tests/x86_emulator was done here,
There's quite a few places in tools/ where "-include $(DEPS_INCLUDE)" is
missing, so I kind of expect it to be forgotten rather than avoided on
purpose.
> and it's all fine this way. Can you confirm things to work when
> building locally in just this subdir, e.g. via
>
> make -sC .../tools/fuzz/x86_instruction_emulator CC=/build/afl/2.52b-base/afl-gcc
>
> ?
Yes, that still works. But I'm not sure why you would ask since the
tools/ build system works this way, execution of make in a subdir
doesn't depends on the execution from the parent dir (it doesn't
depends on anything in the envvar).
Thanks,
--
Anthony PERARD
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: rework makefile
2022-08-02 17:09 ` Anthony PERARD
@ 2022-08-03 5:56 ` Jan Beulich
2022-08-03 10:15 ` Anthony PERARD
0 siblings, 1 reply; 73+ messages in thread
From: Jan Beulich @ 2022-08-03 5:56 UTC (permalink / raw)
To: Anthony PERARD
Cc: Andrew Cooper, George Dunlap, Julien Grall, Stefano Stabellini,
Wei Liu, Roger Pau Monné,
xen-devel
On 02.08.2022 19:09, Anthony PERARD wrote:
> On Mon, Jul 11, 2022 at 04:08:55PM +0200, Jan Beulich wrote:
>> Can you confirm things to work when
>> building locally in just this subdir, e.g. via
>>
>> make -sC .../tools/fuzz/x86_instruction_emulator CC=/build/afl/2.52b-base/afl-gcc
>>
>> ?
>
> Yes, that still works. But I'm not sure why you would ask since the
> tools/ build system works this way, execution of make in a subdir
> doesn't depends on the execution from the parent dir (it doesn't
> depends on anything in the envvar).
Oh, I wasn't even aware of this as a general feature in tools/. Is
this going to survive your rework to use non-recursive makefiles?
Jan
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: rework makefile
2022-08-03 5:56 ` Jan Beulich
@ 2022-08-03 10:15 ` Anthony PERARD
0 siblings, 0 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-08-03 10:15 UTC (permalink / raw)
To: Jan Beulich
Cc: Andrew Cooper, George Dunlap, Julien Grall, Stefano Stabellini,
Wei Liu, Roger Pau Monné,
xen-devel
On Wed, Aug 03, 2022 at 07:56:34AM +0200, Jan Beulich wrote:
> On 02.08.2022 19:09, Anthony PERARD wrote:
> > On Mon, Jul 11, 2022 at 04:08:55PM +0200, Jan Beulich wrote:
> >> Can you confirm things to work when
> >> building locally in just this subdir, e.g. via
> >>
> >> make -sC .../tools/fuzz/x86_instruction_emulator CC=/build/afl/2.52b-base/afl-gcc
> >>
> >> ?
> >
> > Yes, that still works. But I'm not sure why you would ask since the
> > tools/ build system works this way, execution of make in a subdir
> > doesn't depends on the execution from the parent dir (it doesn't
> > depends on anything in the envvar).
>
> Oh, I wasn't even aware of this as a general feature in tools/. Is
> this going to survive your rework to use non-recursive makefiles?
Yes. Executing `make` in any subdir will still works. It should be even
better than the current situation, even in a fresh clone, we could
simply run `./configure && make -C subdir` and make will make everything
needed, that is probably the "include/" dir and the "libs/" if they are
needed by anything in that subdir.
At the moment, one can run ./configure then `make -C tools/include` and
`make -C tools/libs` and probably run make in most subdir without having
to wait for a long run of `make build-tools`.
Cheers,
--
Anthony PERARD
^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: [XEN PATCH v3 11/25] tools/xentrace: rework Makefile
2022-07-22 13:30 ` Luca Fancellu
@ 2022-08-08 15:35 ` Anthony PERARD
0 siblings, 0 replies; 73+ messages in thread
From: Anthony PERARD @ 2022-08-08 15:35 UTC (permalink / raw)
To: Luca Fancellu; +Cc: xen-devel, George Dunlap, Wei Liu
On Fri, Jul 22, 2022 at 01:30:53PM +0000, Luca Fancellu wrote:
> > On 24 Jun 2022, at 17:04, Anthony PERARD <anthony.perard@citrix.com> wrote:
> > .PHONY: uninstall
> > uninstall:
> > rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(LIBBIN))
> > rm -f $(addprefix $(DESTDIR)$(bindir)/, $(SCRIPTS))
> > rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(SBIN))
> > -ifneq ($(BIN),)
> > rm -f $(addprefix $(DESTDIR)$(bindir)/, $(BIN))
> > -endif
>
> Why here don’t we use $(RM) ?
Well, I don't think it matters which is used between $(RM) and rm -f,
beside consistency maybe. So I don't think introducing changes on those
line would be useful. (Also, it seems that the use of $(RM) for
"uninstall" targets are exceptional so far.)
--
Anthony PERARD
^ permalink raw reply [flat|nested] 73+ messages in thread
end of thread, other threads:[~2022-08-08 15:35 UTC | newest]
Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-24 16:03 [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
2022-06-24 16:03 ` [XEN PATCH v3 01/25] tools/console: have one Makefile per program/directory Anthony PERARD
2022-07-08 15:08 ` Luca Fancellu
2022-06-24 16:03 ` [XEN PATCH v3 02/25] tools/debugger/gdbsx: Fix and cleanup makefiles Anthony PERARD
2022-07-08 15:23 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 03/25] tools/examples: cleanup Makefile Anthony PERARD
2022-07-08 15:31 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 04/25] tools/firmware/hvmloader: rework Makefile Anthony PERARD
2022-07-08 15:39 ` Luca Fancellu
2022-07-11 13:38 ` Anthony PERARD
2022-07-11 13:40 ` Luca Fancellu
2022-07-11 13:41 ` Jan Beulich
2022-07-11 13:52 ` Jan Beulich
2022-07-11 17:01 ` Anthony PERARD
2022-06-24 16:04 ` [XEN PATCH v3 05/25] tools/fuzz/libelf: rework makefile Anthony PERARD
2022-07-11 11:23 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 06/25] tools/fuzz/x86_instruction_emulator: " Anthony PERARD
2022-07-11 13:16 ` Luca Fancellu
2022-07-11 14:08 ` Jan Beulich
2022-08-02 17:09 ` Anthony PERARD
2022-08-03 5:56 ` Jan Beulich
2022-08-03 10:15 ` Anthony PERARD
2022-06-24 16:04 ` [XEN PATCH v3 07/25] tools/hotplug: cleanup Makefiles Anthony PERARD
2022-07-22 11:02 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 08/25] tools/libfsimage: Cleanup makefiles Anthony PERARD
2022-07-22 12:07 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 09/25] tools/xenpaging: Rework makefile Anthony PERARD
2022-07-22 12:17 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 10/25] tools/xentop: rework makefile Anthony PERARD
2022-07-22 13:13 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 11/25] tools/xentrace: rework Makefile Anthony PERARD
2022-07-22 13:30 ` Luca Fancellu
2022-08-08 15:35 ` Anthony PERARD
2022-06-24 16:04 ` [XEN PATCH v3 12/25] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc} Anthony PERARD
2022-06-29 10:15 ` Juergen Gross
2022-07-05 13:17 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 13/25] tools/libs/util: cleanup Makefile Anthony PERARD
2022-06-29 10:18 ` Juergen Gross
2022-07-05 13:20 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 14/25] tools/flask/utils: list build targets in $(TARGETS) Anthony PERARD
2022-07-12 1:30 ` Henry Wang
2022-06-24 16:04 ` [XEN PATCH v3 15/25] libs/libs.mk: Rename $(LIB) to $(TARGETS) Anthony PERARD
2022-06-29 10:19 ` Juergen Gross
2022-07-05 13:21 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 16/25] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST) Anthony PERARD
2022-06-29 10:22 ` Juergen Gross
2022-07-05 13:27 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 17/25] libs/libs.mk: Rework target headers.chk dependencies Anthony PERARD
2022-06-29 10:23 ` Juergen Gross
2022-07-05 13:29 ` Bertrand Marquis
2022-06-24 16:04 ` [XEN PATCH v3 18/25] tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*) Anthony PERARD
2022-06-29 10:26 ` Juergen Gross
2022-06-24 16:04 ` [XEN PATCH v3 19/25] tools: Introduce $(xenlibs-ldlibs, ) macro Anthony PERARD
2022-06-29 10:29 ` Juergen Gross
2022-06-24 16:04 ` [XEN PATCH v3 20/25] tools: Introduce $(xenlibs-ldflags, " Anthony PERARD
2022-07-12 1:40 ` Henry Wang
2022-06-24 16:04 ` [XEN PATCH v3 21/25] tools/helper: Cleanup Makefile Anthony PERARD
2022-07-22 14:06 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 22/25] tools/console: Use $(xenlibs-ldlibs,) Anthony PERARD
2022-07-22 14:15 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 23/25] tools/helpers: Fix build of xen-init-dom0 with -Werror Anthony PERARD
2022-07-12 1:31 ` Henry Wang
2022-06-24 16:04 ` [XEN PATCH v3 24/25] tools: Add -Werror by default to all tools/ Anthony PERARD
2022-07-22 14:31 ` Luca Fancellu
2022-06-24 16:04 ` [XEN PATCH v3 25/25] tools: Remove -Werror everywhere else Anthony PERARD
2022-06-29 8:59 ` Luca Fancellu
2022-06-29 17:22 ` Stefano Stabellini
2022-06-30 7:33 ` Bertrand Marquis
2022-06-30 21:03 ` Stefano Stabellini
2022-07-01 13:26 ` Bertrand Marquis
2022-07-01 17:47 ` Stefano Stabellini
2022-06-29 10:31 ` Juergen Gross
2022-06-27 7:25 ` [XEN PATCH v3 00/25] Toolstack build system improvement, toward non-recursive makefiles Christian Lindig
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.