All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
Cc: "Anthony PERARD" <anthony.perard@citrix.com>,
	"Luca Fancellu" <luca.fancellu@arm.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"George Dunlap" <george.dunlap@citrix.com>,
	"Jan Beulich" <jbeulich@suse.com>,
	"Julien Grall" <julien@xen.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Wei Liu" <wl@xen.org>, "Roger Pau Monné" <roger.pau@citrix.com>
Subject: [XEN PATCH v4 03/32] tools/fuzz/x86_instruction_emulator: rework makefile
Date: Thu, 11 Aug 2022 17:48:16 +0100	[thread overview]
Message-ID: <20220811164845.38083-4-anthony.perard@citrix.com> (raw)
In-Reply-To: <20220811164845.38083-1-anthony.perard@citrix.com>

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>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---

Notes:
    v4:
    - Use pattern rules to link sources from libx86 and from x86 emulator
      tests
    - fix rm of .*.d2 dependency files
    
    v2:
    - create a new per-directory .gitignore to add the new entry and existing ones

 tools/fuzz/x86_instruction_emulator/Makefile  | 35 +++++++++----------
 .gitignore                                    |  6 ----
 .../fuzz/x86_instruction_emulator/.gitignore  |  7 ++++
 3 files changed, 24 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..13aa238503 100644
--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -9,32 +9,29 @@ x86-insn-fuzz-all:
 endif
 
 # Add libx86 to the build
-vpath %.c $(XEN_ROOT)/xen/lib/x86
+%.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/$*
+%.c: $(XEN_ROOT)/tools/tests/x86_emulator/%.c FORCE
+	ln -nsf $< $@
+%.h: $(XEN_ROOT)/tools/tests/x86_emulator/%.h 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,11 +48,11 @@ 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:
-	rm -f *.a *.o .*.d afl-harness afl-harness-cov *.gcda *.gcno *.gcov
+	rm -f *.a *.o $(DEPS_RM) afl-harness afl-harness-cov *.gcda *.gcno *.gcov
 
 .PHONY: install
 install: all
@@ -67,3 +64,5 @@ afl: afl-harness
 
 .PHONY: afl-cov
 afl-cov: afl-harness-cov
+
+-include $(DEPS_INCLUDE)
diff --git a/.gitignore b/.gitignore
index ed7bd8bdc7..ff1d668489 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



  parent reply	other threads:[~2022-08-11 16:49 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-11 16:48 [XEN PATCH v4 00/32] Toolstack build system improvement, toward non-recursive makefiles Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 01/32] tools/debugger/gdbsx: Fix and cleanup makefiles Anthony PERARD
2022-08-19 12:57   ` Ping: " Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 02/32] tools/firmware/hvmloader: rework Makefile Anthony PERARD
2022-08-12 13:36   ` Jan Beulich
2022-08-12 14:28     ` Anthony PERARD
2022-08-11 16:48 ` Anthony PERARD [this message]
2022-08-12 13:41   ` [XEN PATCH v4 03/32] tools/fuzz/x86_instruction_emulator: rework makefile Jan Beulich
2022-08-11 16:48 ` [XEN PATCH v4 04/32] tools/hotplug: cleanup Makefiles Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 05/32] tools/libfsimage: Cleanup makefiles Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 06/32] tools/xenpaging: Rework makefile Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 07/32] tools/xentop: rework makefile Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 08/32] tools/xentrace: rework Makefile Anthony PERARD
2022-08-19 12:59   ` Ping: " Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 09/32] .gitignore: Cleanup ignores of tools/libs/*/{headers.chk,*.pc} Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 10/32] tools/libs/util: cleanup Makefile Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 11/32] tools/flask/utils: list build targets in $(TARGETS) Anthony PERARD
2022-08-15 11:31   ` Daniel P. Smith
2022-08-11 16:48 ` [XEN PATCH v4 12/32] libs/libs.mk: Rename $(LIB) to $(TARGETS) Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 13/32] libs/libs.mk: Remove the need for $(PKG_CONFIG_INST) Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 14/32] libs/libs.mk: Rework target headers.chk dependencies Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 15/32] tools: Introduce $(xenlibs-rpath,..) to replace $(SHDEPS_lib*) Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 16/32] tools: Introduce $(xenlibs-ldlibs, ) macro Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 17/32] tools: Introduce $(xenlibs-ldflags, " Anthony PERARD
2022-08-19 13:09   ` Ping: " Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 18/32] tools/helper: Cleanup Makefile Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 19/32] tools/console: Use $(xenlibs-ldlibs,) Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 20/32] tools: Add -Werror by default to all tools/ Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 21/32] tools: Remove -Werror everywhere else Anthony PERARD
2022-08-15 11:34   ` Daniel P. Smith
2022-08-19 13:25   ` Ping: " Anthony PERARD
2022-08-19 14:56   ` Jan Beulich
2022-08-19 15:18     ` Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 22/32] tools/hotplug: Generate "hotplugpath.sh" with configure Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 23/32] libs/light/gentypes.py: allow to generate headers in subdirectory Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 24/32] git-checkout.sh: handle running git-checkout from a different directory Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 25/32] libs: Avoid exposing -Wl,--version-script to other built library Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 26/32] libs: Fix auto-generation of version-script for unstable libs Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 27/32] tools/include: Rework Makefile Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 28/32] libs/light: Rework acpi table build targets Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 29/32] libs/light: Rework generation of include/_libxl_*.h Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 30/32] libs/light: Rework targets prerequisites Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 31/32] libs/light: Makefile cleanup Anthony PERARD
2022-08-11 16:48 ` [XEN PATCH v4 32/32] tools/golang/xenlight: Rework gengotypes.py and generation of *.gen.go Anthony PERARD
2022-10-13  8:43   ` Henry Wang
2022-08-12  7:53 ` [XEN PATCH v4 00/32] Toolstack build system improvement, toward non-recursive makefiles Christian Lindig
2022-08-15  7:01 ` Jan Beulich
2022-08-19 13:40   ` Anthony PERARD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220811164845.38083-4-anthony.perard@citrix.com \
    --to=anthony.perard@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=george.dunlap@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=luca.fancellu@arm.com \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.