All of lore.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds
@ 2017-05-12 16:39 Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree Alex Bennée
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

Hi,

Here is v2 of the out-of-tree build. There have been a number of
changes following review and also inclusion of Thomas' ppc64 patch
which completes the set.

The biggest change is the way I deal with creating build directories.
There is now a make variable called OBJDIRS which sub-builds can add
to. I had originally tried to be clever by expanding OBJDIRS into a
bunch of templated mkdir's which could then be set as
order-on-prerequisites as suggested by Drew. However it turns out to
be very hard to add the directory of the target as a prerequisite even
using hacks like GNU's secondary expansion. In the end I just created
a directories target and made sure the all: target had it as the first
thing. This breaks if someone tries to build an individual file
without first building the tree but I assume most people don't build
like that. If anyone else can come up with a neater solution I'm all
ears ;-)

Finally I've added a .travis.yml recipe. This really only works for
github hosted repos but its better than nothing. Evidently the cross
compilers complain about:

  lib/report.c:38:17: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
  assert_msg(len < sizeof(prefixes), "%d >= %lu", len, sizeof(prefixes));

and:

  lib/report.c:38:2: error: format '%lu' expects argument of type 'long unsigned int', but argument 6 has type 'unsigned int' [-Werror=format=]
  assert_msg(len < sizeof(prefixes), "%d >= %lu", len, sizeof(prefixes));

But these can be addressed with separate patches.

Alex Bennée (8):
  configure: make it run-able from outside source tree
  Makefile: ensure build-head works out-of-src-tree
  Makefile: set VPATH based on SRCDIR
  Makefiles: use explicit path for including sub-Makefiles
  Makefile: add explicit directories target
  Makefiles: fix up the x86 build dirs and include/link paths
  Makefiles: fix up the arm build dirs and include/link paths
  .travis.yml: initial build matrix

Thomas Huth (1):
  Makefiles: Fix up the powerpc build dirs and include/link paths

 .travis.yml             | 43 +++++++++++++++++++++++++++++++++++++++++++
 Makefile                | 22 +++++++++++++++++-----
 arm/Makefile            |  2 +-
 arm/Makefile.arm        |  2 +-
 arm/Makefile.arm64      |  4 +++-
 arm/Makefile.common     | 14 ++++++++------
 configure               | 36 ++++++++++++++++++++++++++++--------
 powerpc/Makefile        |  2 +-
 powerpc/Makefile.common | 15 +++++++++------
 powerpc/Makefile.ppc64  |  4 +++-
 scripts/asm-offsets.mak |  4 +++-
 x86/Makefile            |  2 +-
 x86/Makefile.common     | 16 ++++++++++------
 x86/Makefile.i386       |  2 +-
 x86/Makefile.x86_64     |  2 +-
 15 files changed, 130 insertions(+), 40 deletions(-)
 create mode 100644 .travis.yml

-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
@ 2017-05-12 16:39 ` Alex Bennée
  2017-05-17 14:50   ` Radim Krčmář
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 2/9] Makefile: ensure build-head works out-of-src-tree Alex Bennée
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

This is a first step to enabling out-of-tree builds for
kvm-unit-tests. When you invoke configure like this:

  ../tree.git/configure [args]

It will detect we the case and:

  - link ../tree.git/Makefile to the build-dir
  - link ../tree.git/$(arch) and test scripts
  - link ../tree.git/run_tests.sh
  - ensure lib is created with a correct lib/asm
  - set SRCDIR in the config.mk

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - ln -sf more directory structure
  - quotes around places where $srcdir is used
  - dropped pointless {}s
---
 configure | 36 ++++++++++++++++++++++++++++--------
 1 file changed, 28 insertions(+), 8 deletions(-)

diff --git a/configure b/configure
index d152414..2586131 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,6 @@
 #!/usr/bin/env bash
 
+srcdir=$(cd "$(dirname "$0")"; pwd)
 prefix=/usr/local
 cc=gcc
 ld=ld
@@ -102,12 +103,12 @@ elif [ "$arch" = "ppc64" ]; then
 else
     testdir=$arch
 fi
-if [ ! -d $testdir ]; then
+if [ ! -d "$srcdir/$testdir" ]; then
     echo "$testdir does not exist!"
     exit 1
 fi
-if [ -f $testdir/run ]; then
-    ln -fs $testdir/run $testdir-run
+if [ -f "$srcdir/$testdir/run" ]; then
+    ln -fs "$srcdir/$testdir/run" $testdir-run
 fi
 
 # check if uint32_t needs a long format modifier
@@ -135,18 +136,37 @@ fi
 rm -f lib_test.c
 fi
 
+# Are we in a separate build tree? If so, link the Makefile
+# and shared stuff so that 'make' and run_tests.sh work.
+if test ! -e Makefile; then
+    echo "linking Makefile..."
+    ln -s "$srcdir/Makefile" .
+
+    echo "linking tests..."
+    mkdir -p $testdir
+    ln -sf "$srcdir/$testdir/run" $testdir/
+    ln -sf "$srcdir/$testdir/unittests.cfg" $testdir/
+    ln -sf "$srcdir/run_tests.sh"
+
+    echo "linking scripts..."
+    ln -sf "$srcdir/scripts"
+fi
+
 # link lib/asm for the architecture
 rm -f lib/asm
 asm=asm-generic
-if [ -d lib/$arch/asm ]; then
-	asm=$arch/asm
-elif [ -d lib/$testdir/asm ]; then
-	asm=$testdir/asm
+if [ -d "$srcdir/lib/$arch/asm" ]; then
+	asm="$srcdir/lib/$arch/asm"
+elif [ -d "$srcdir/lib/$testdir/asm" ]; then
+	asm="$srcdir/lib/$testdir/asm"
 fi
-ln -s $asm lib/asm
+mkdir -p lib
+ln -sf "$asm" lib/asm
+
 
 # create the config
 cat <<EOF > config.mak
+SRCDIR=$srcdir
 PREFIX=$prefix
 HOST=$host
 ARCH=$arch
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 2/9] Makefile: ensure build-head works out-of-src-tree
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree Alex Bennée
@ 2017-05-12 16:39 ` Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 3/9] Makefile: set VPATH based on SRCDIR Alex Bennée
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

Pass -C $(SRCDIR) to the git command that generates the build-head
stamp.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 2539f9a..5a0095a 100644
--- a/Makefile
+++ b/Makefile
@@ -80,7 +80,7 @@ $(LIBFDT_archive): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS))
 
 -include */.*.d */*/.*.d
 
-all: $(shell git rev-parse --verify --short=8 HEAD >build-head 2>/dev/null)
+all: $(shell git -C $(SRCDIR) rev-parse --verify --short=8 HEAD >build-head 2>/dev/null)
 
 standalone: all
 	@scripts/mkstandalone.sh
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 3/9] Makefile: set VPATH based on SRCDIR
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 2/9] Makefile: ensure build-head works out-of-src-tree Alex Bennée
@ 2017-05-12 16:39 ` Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 4/9] Makefiles: use explicit path for including sub-Makefiles Alex Bennée
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

Setting the VPATH prompts make to search VPATH for source files. There
are still some fix-ups needed for linking and including other Makefile
fragments for each architecture.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>

---
v2
  - minor whitespace fix
---
 Makefile | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Makefile b/Makefile
index 5a0095a..45097cd 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,9 @@ endif
 
 include config.mak
 
+# Set search path for all sources
+VPATH = $(SRCDIR)
+
 libdirs-get = $(shell [ -d "lib/$(1)" ] && echo "lib/$(1) lib/$(1)/asm")
 ARCH_LIBDIRS := $(call libdirs-get,$(ARCH)) $(call libdirs-get,$(TEST_DIR))
 
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 4/9] Makefiles: use explicit path for including sub-Makefiles
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
                   ` (2 preceding siblings ...)
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 3/9] Makefile: set VPATH based on SRCDIR Alex Bennée
@ 2017-05-12 16:39 ` Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 5/9] Makefile: add explicit directories target Alex Bennée
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

I would of thought VPATH took care of this but apparently not.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 Makefile               | 6 +++---
 arm/Makefile           | 2 +-
 arm/Makefile.arm       | 2 +-
 arm/Makefile.arm64     | 2 +-
 powerpc/Makefile       | 2 +-
 powerpc/Makefile.ppc64 | 2 +-
 x86/Makefile           | 2 +-
 x86/Makefile.i386      | 2 +-
 x86/Makefile.x86_64    | 2 +-
 9 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile
index 45097cd..a8e15b6 100644
--- a/Makefile
+++ b/Makefile
@@ -33,13 +33,13 @@ cflatobjs := \
 
 # libfdt paths
 LIBFDT_objdir = lib/libfdt
-LIBFDT_srcdir = lib/libfdt
+LIBFDT_srcdir = $(SRCDIR)/lib/libfdt
 LIBFDT_archive = $(LIBFDT_objdir)/libfdt.a
 LIBFDT_include = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_INCLUDES))
 LIBFDT_version = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_VERSION))
 
-#include architecure specific make rules
-include $(TEST_DIR)/Makefile
+#include architecture specific make rules
+include $(SRCDIR)/$(TEST_DIR)/Makefile
 
 # cc-option
 # Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0)
diff --git a/arm/Makefile b/arm/Makefile
index 369a38b..8a007ab 100644
--- a/arm/Makefile
+++ b/arm/Makefile
@@ -1 +1 @@
-include $(TEST_DIR)/Makefile.$(ARCH)
+include $(SRCDIR)/$(TEST_DIR)/Makefile.$(ARCH)
diff --git a/arm/Makefile.arm b/arm/Makefile.arm
index 92f3757..6b57284 100644
--- a/arm/Makefile.arm
+++ b/arm/Makefile.arm
@@ -22,6 +22,6 @@ cflatobjs += lib/arm/stack.o
 # arm specific tests
 tests =
 
-include $(TEST_DIR)/Makefile.common
+include $(SRCDIR)/$(TEST_DIR)/Makefile.common
 
 arch_clean: arm_clean
diff --git a/arm/Makefile.arm64 b/arm/Makefile.arm64
index 0b0761c..b5fc1ec 100644
--- a/arm/Makefile.arm64
+++ b/arm/Makefile.arm64
@@ -14,7 +14,7 @@ cflatobjs += lib/arm64/spinlock.o
 # arm64 specific tests
 tests =
 
-include $(TEST_DIR)/Makefile.common
+include $(SRCDIR)/$(TEST_DIR)/Makefile.common
 
 arch_clean: arm_clean
 	$(RM) lib/arm64/.*.d
diff --git a/powerpc/Makefile b/powerpc/Makefile
index 369a38b..8a007ab 100644
--- a/powerpc/Makefile
+++ b/powerpc/Makefile
@@ -1 +1 @@
-include $(TEST_DIR)/Makefile.$(ARCH)
+include $(SRCDIR)/$(TEST_DIR)/Makefile.$(ARCH)
diff --git a/powerpc/Makefile.ppc64 b/powerpc/Makefile.ppc64
index 3da3a83..3c0294a 100644
--- a/powerpc/Makefile.ppc64
+++ b/powerpc/Makefile.ppc64
@@ -20,7 +20,7 @@ cflatobjs += lib/ppc64/spinlock.o
 # ppc64 specific tests
 tests =
 
-include $(TEST_DIR)/Makefile.common
+include $(SRCDIR)/$(TEST_DIR)/Makefile.common
 
 arch_clean: powerpc_clean
 	$(RM) lib/ppc64/.*.d
diff --git a/x86/Makefile b/x86/Makefile
index 369a38b..8a007ab 100644
--- a/x86/Makefile
+++ b/x86/Makefile
@@ -1 +1 @@
-include $(TEST_DIR)/Makefile.$(ARCH)
+include $(SRCDIR)/$(TEST_DIR)/Makefile.$(ARCH)
diff --git a/x86/Makefile.i386 b/x86/Makefile.i386
index 284b9e5..d801b80 100644
--- a/x86/Makefile.i386
+++ b/x86/Makefile.i386
@@ -7,4 +7,4 @@ cflatobjs += lib/x86/setjmp32.o
 tests = $(TEST_DIR)/taskswitch.flat $(TEST_DIR)/taskswitch2.flat \
 	$(TEST_DIR)/cmpxchg8b.flat
 
-include $(TEST_DIR)/Makefile.common
+include $(SRCDIR)/$(TEST_DIR)/Makefile.common
diff --git a/x86/Makefile.x86_64 b/x86/Makefile.x86_64
index 3e2821e..30f82a6 100644
--- a/x86/Makefile.x86_64
+++ b/x86/Makefile.x86_64
@@ -17,7 +17,7 @@ tests += $(TEST_DIR)/vmx.flat
 tests += $(TEST_DIR)/tscdeadline_latency.flat
 tests += $(TEST_DIR)/intel-iommu.flat
 
-include $(TEST_DIR)/Makefile.common
+include $(SRCDIR)/$(TEST_DIR)/Makefile.common
 
 $(TEST_DIR)/hyperv_clock.elf: $(TEST_DIR)/hyperv_clock.o
 
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 5/9] Makefile: add explicit directories target
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
                   ` (3 preceding siblings ...)
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 4/9] Makefiles: use explicit path for including sub-Makefiles Alex Bennée
@ 2017-05-12 16:39 ` Alex Bennée
  2017-06-08 14:32   ` Paolo Bonzini
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 6/9] Makefiles: fix up the x86 build dirs and include/link paths Alex Bennée
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

This is slightly clumsy way to ensure the directory structure for the
out-of-tree build is made first. The PHONY target is depended on by
make all first which runs mkdir for all OBJDIRS.

If an architecture target needs deeper nesting it needs to add
directories to OBJDIRS so it can be picked up by the directories rule.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
 - use explicit PHONY directories target
 - use @mkdir
---
 Makefile | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index a8e15b6..881bc78 100644
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,7 @@ VPATH = $(SRCDIR)
 
 libdirs-get = $(shell [ -d "lib/$(1)" ] && echo "lib/$(1) lib/$(1)/asm")
 ARCH_LIBDIRS := $(call libdirs-get,$(ARCH)) $(call libdirs-get,$(TEST_DIR))
+OBJDIRS := $(ARCH_LIBDIRS)
 
 DESTDIR := $(PREFIX)/share/kvm-unit-tests/
 
@@ -38,6 +39,8 @@ LIBFDT_archive = $(LIBFDT_objdir)/libfdt.a
 LIBFDT_include = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_INCLUDES))
 LIBFDT_version = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_VERSION))
 
+OBJDIRS += $(LIBFDT_objdir)
+
 #include architecture specific make rules
 include $(SRCDIR)/$(TEST_DIR)/Makefile
 
@@ -78,12 +81,18 @@ $(LIBFDT_archive): CFLAGS += -ffreestanding -I lib -I lib/libfdt -Wno-sign-compa
 $(LIBFDT_archive): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS))
 	$(AR) rcs $@ $^
 
+
+# Build directory target
+.PHONY: directories
+directories:
+	@mkdir -p $(OBJDIRS)
+
 %.o: %.S
 	$(CC) $(CFLAGS) -c -nostdlib -o $@ $<
 
 -include */.*.d */*/.*.d
 
-all: $(shell git -C $(SRCDIR) rev-parse --verify --short=8 HEAD >build-head 2>/dev/null)
+all: directories $(shell git -C $(SRCDIR) rev-parse --verify --short=8 HEAD >build-head 2>/dev/null)
 
 standalone: all
 	@scripts/mkstandalone.sh
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 6/9] Makefiles: fix up the x86 build dirs and include/link paths
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
                   ` (4 preceding siblings ...)
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 5/9] Makefile: add explicit directories target Alex Bennée
@ 2017-05-12 16:39 ` Alex Bennée
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 7/9] Makefiles: fix up the arm " Alex Bennée
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

We still need to tell the compiler the correct search path for finding
headers and the like. This is slightly complicated by the "dynamic"
asm search path which is in our build tree but (may be) symlinked to
the right architectures headers.

Also we explicitly include SRCDIR for the linking scripts as VPATH
doesn't seem to find them well enough.

Also update OBJDIRS to include lib/x86.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - update OBJDIRS
---
 Makefile            |  2 +-
 x86/Makefile.common | 16 ++++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index 881bc78..af9695a 100644
--- a/Makefile
+++ b/Makefile
@@ -77,7 +77,7 @@ $(libcflat): $(cflatobjs)
 	$(AR) rcs $@ $^
 
 include $(LIBFDT_srcdir)/Makefile.libfdt
-$(LIBFDT_archive): CFLAGS += -ffreestanding -I lib -I lib/libfdt -Wno-sign-compare
+$(LIBFDT_archive): CFLAGS += -ffreestanding -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -Wno-sign-compare
 $(LIBFDT_archive): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS))
 	$(AR) rcs $@ $^
 
diff --git a/x86/Makefile.common b/x86/Makefile.common
index ec50926..57e8e45 100644
--- a/x86/Makefile.common
+++ b/x86/Makefile.common
@@ -1,6 +1,6 @@
 #This is a make file with common rules for both x86 & x86-64
 
-all: test_cases
+all: directories test_cases
 
 cflatobjs += lib/pci.o
 cflatobjs += lib/pci-edu.o
@@ -16,8 +16,10 @@ cflatobjs += lib/x86/isr.o
 cflatobjs += lib/x86/acpi.o
 cflatobjs += lib/x86/stack.o
 
+OBJDIRS += lib/x86
+
 $(libcflat): LDFLAGS += -nostdlib
-$(libcflat): CFLAGS += -ffreestanding -I lib
+$(libcflat): CFLAGS += -ffreestanding -I $(SRCDIR)/lib -I lib
 
 CFLAGS += -m$(bits)
 CFLAGS += -O1
@@ -31,8 +33,8 @@ libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name)
 .PRECIOUS: %.elf %.o
 
 FLATLIBS = lib/libcflat.a $(libgcc)
-%.elf: %.o $(FLATLIBS) x86/flat.lds $(cstart.o)
-	$(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,x86/flat.lds \
+%.elf: %.o $(FLATLIBS) $(SRCDIR)/x86/flat.lds $(cstart.o)
+	$(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,$(SRCDIR)/x86/flat.lds \
 		$(filter %.o, $^) $(FLATLIBS)
 
 %.flat: %.elf
@@ -52,14 +54,16 @@ ifdef API
 tests-common += api/api-sample
 tests-common += api/dirty-log
 tests-common += api/dirty-log-perf
+
+OBJDIRS += api
 endif
 
 test_cases: $(tests-common) $(tests)
 
-$(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I lib -I lib/x86
+$(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I $(SRCDIR)/lib -I $(SRCDIR)/lib/x86 -I lib
 
 $(TEST_DIR)/realmode.elf: $(TEST_DIR)/realmode.o
-	$(CC) -m32 -nostdlib -o $@ -Wl,-T,$(TEST_DIR)/realmode.lds $^
+	$(CC) -m32 -nostdlib -o $@ -Wl,-T,$(SRCDIR)/$(TEST_DIR)/realmode.lds $^
 
 $(TEST_DIR)/realmode.o: bits = 32
 
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 7/9] Makefiles: fix up the arm build dirs and include/link paths
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
                   ` (5 preceding siblings ...)
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 6/9] Makefiles: fix up the x86 build dirs and include/link paths Alex Bennée
@ 2017-05-12 16:39 ` Alex Bennée
  2017-05-12 16:40 ` [kvm-unit-tests PATCH v2 8/9] Makefiles: Fix up the powerpc " Alex Bennée
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:39 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

We still need to tell the compiler the correct search path for finding
headers and the like. This is slightly complicated by the "dynamic"
asm search path which is in our build tree but (may be) symlinked to
the right architectures headers.

Also we explicitly include SRCDIR for the linking scripts as VPATH
doesn't seem to find them well enough.

Also we set OBJDIRS for the lib/arm, lib/arm64 and generated
asm-offset files.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - Setup OBJDIRS
---
 arm/Makefile.arm64      |  2 ++
 arm/Makefile.common     | 14 ++++++++------
 scripts/asm-offsets.mak |  4 +++-
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/arm/Makefile.arm64 b/arm/Makefile.arm64
index b5fc1ec..24319d6 100644
--- a/arm/Makefile.arm64
+++ b/arm/Makefile.arm64
@@ -11,6 +11,8 @@ cstart.o = $(TEST_DIR)/cstart64.o
 cflatobjs += lib/arm64/processor.o
 cflatobjs += lib/arm64/spinlock.o
 
+OBJDIRS += lib/arm64
+
 # arm64 specific tests
 tests =
 
diff --git a/arm/Makefile.common b/arm/Makefile.common
index 74c7394..03b497b 100644
--- a/arm/Makefile.common
+++ b/arm/Makefile.common
@@ -17,7 +17,7 @@ tests-common += $(TEST_DIR)/gic.flat
 tests-common += $(TEST_DIR)/psci.flat
 
 tests-all = $(tests-common) $(tests)
-all: $(tests-all)
+all: directories $(tests-all)
 
 ##################################################################
 phys_base = $(LOADADDR)
@@ -26,13 +26,13 @@ CFLAGS += -std=gnu99
 CFLAGS += -ffreestanding
 CFLAGS += -Wextra
 CFLAGS += -O2
-CFLAGS += -I lib -I lib/libfdt
+CFLAGS += -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -I lib
 
 # We want to keep intermediate files
 .PRECIOUS: %.elf %.o
 
 asm-offsets = lib/$(ARCH)/asm-offsets.h
-include scripts/asm-offsets.mak
+include $(SRCDIR)/scripts/asm-offsets.mak
 
 cflatobjs += lib/util.o
 cflatobjs += lib/alloc.o
@@ -52,6 +52,8 @@ cflatobjs += lib/arm/smp.o
 cflatobjs += lib/arm/delay.o
 cflatobjs += lib/arm/gic.o lib/arm/gic-v2.o lib/arm/gic-v3.o
 
+OBJDIRS += lib/arm
+
 libeabi = lib/arm/libeabi.a
 eabiobjs = lib/arm/eabi_compat.o
 
@@ -60,11 +62,11 @@ start_addr := $(shell printf "%x\n" $$(( $(phys_base) + $(kernel_offset) )))
 
 FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libgcc) $(libeabi)
 %.elf: LDFLAGS = $(CFLAGS) -nostdlib
-%.elf: %.o $(FLATLIBS) arm/flat.lds $(cstart.o)
+%.elf: %.o $(FLATLIBS) $(SRCDIR)/arm/flat.lds $(cstart.o)
 	$(CC) $(LDFLAGS) -o $@ \
-		-Wl,-T,arm/flat.lds,--build-id=none,-Ttext=$(start_addr) \
+		-Wl,-T,$(SRCDIR)/arm/flat.lds,--build-id=none,-Ttext=$(start_addr) \
 		$(filter %.o, $^) $(FLATLIBS) \
-		lib/auxinfo.c -DPROGNAME=\"$(@:.elf=.flat)\"
+		$(SRCDIR)/lib/auxinfo.c -DPROGNAME=\"$(@:.elf=.flat)\"
 
 %.flat: %.elf
 	$(OBJCOPY) -O binary $^ $@
diff --git a/scripts/asm-offsets.mak b/scripts/asm-offsets.mak
index b2578a6..b35da09 100644
--- a/scripts/asm-offsets.mak
+++ b/scripts/asm-offsets.mak
@@ -33,7 +33,9 @@ $(asm-offsets:.h=.s): $(asm-offsets:.h=.c)
 
 $(asm-offsets): $(asm-offsets:.h=.s)
 	$(call make_asm_offsets)
-	cp -f $(asm-offsets) lib/generated
+	cp -f $(asm-offsets) lib/generated/
+
+OBJDIRS += lib/generated
 
 asm_offsets_clean:
 	$(RM) $(asm-offsets) $(asm-offsets:.h=.s) \
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 8/9] Makefiles: Fix up the powerpc build dirs and include/link paths
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
                   ` (6 preceding siblings ...)
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 7/9] Makefiles: fix up the arm " Alex Bennée
@ 2017-05-12 16:40 ` Alex Bennée
  2017-05-12 16:40 ` [kvm-unit-tests PATCH v2 9/9] .travis.yml: initial build matrix Alex Bennée
  2017-05-19 16:20 ` [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Radim Krčmář
  9 siblings, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:40 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Thomas Huth, Alex Bennée

From: Thomas Huth <thuth@redhat.com>

The changes for out-of-tree builds are here pretty much the same
as for the ARM Makefile.common.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - OBJDIRS
---
 powerpc/Makefile.common | 15 +++++++++------
 powerpc/Makefile.ppc64  |  2 ++
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common
index e536ffe..db5ba62 100644
--- a/powerpc/Makefile.common
+++ b/powerpc/Makefile.common
@@ -13,7 +13,7 @@ tests-common = \
 	$(TEST_DIR)/sprs.elf
 
 tests-all = $(tests-common) $(tests)
-all: $(TEST_DIR)/boot_rom.bin $(tests-all)
+all: directories $(TEST_DIR)/boot_rom.bin $(tests-all)
 
 ##################################################################
 
@@ -21,14 +21,14 @@ CFLAGS += -std=gnu99
 CFLAGS += -ffreestanding
 CFLAGS += -Wextra
 CFLAGS += -O2
-CFLAGS += -I lib -I lib/libfdt
+CFLAGS += -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -I lib
 CFLAGS += -Wa,-mregnames
 
 # We want to keep intermediate files
 .PRECIOUS: %.o
 
 asm-offsets = lib/$(ARCH)/asm-offsets.h
-include scripts/asm-offsets.mak
+include $(SRCDIR)/scripts/asm-offsets.mak
 
 cflatobjs += lib/util.o
 cflatobjs += lib/alloc.o
@@ -41,13 +41,16 @@ cflatobjs += lib/powerpc/processor.o
 cflatobjs += lib/powerpc/handlers.o
 cflatobjs += lib/powerpc/smp.o
 
+OBJDIRS += lib/powerpc
+
 FLATLIBS = $(libcflat) $(LIBFDT_archive)
 %.elf: CFLAGS += $(arch_CFLAGS)
 %.elf: LDFLAGS = $(arch_LDFLAGS) -nostdlib -pie -n
-%.elf: %.o $(FLATLIBS) powerpc/flat.lds $(cstart.o) $(reloc.o)
-	$(CC) $(CFLAGS) -c -o $(@:.elf=.aux.o) lib/auxinfo.c -DPROGNAME=\"$@\"
+%.elf: %.o $(FLATLIBS) $(SRCDIR)/powerpc/flat.lds $(cstart.o) $(reloc.o)
+	$(CC) $(CFLAGS) -c -o $(@:.elf=.aux.o) $(SRCDIR)/lib/auxinfo.c \
+		-DPROGNAME=\"$@\"
 	$(LD) $(LDFLAGS) -o $@ \
-		-T powerpc/flat.lds --build-id=none \
+		-T $(SRCDIR)/powerpc/flat.lds --build-id=none \
 		$(filter %.o, $^) $(FLATLIBS) $(@:.elf=.aux.o)
 	$(RM) $(@:.elf=.aux.o)
 	@echo -n Checking $@ for unsupported reloc types...
diff --git a/powerpc/Makefile.ppc64 b/powerpc/Makefile.ppc64
index 3c0294a..dc4e088 100644
--- a/powerpc/Makefile.ppc64
+++ b/powerpc/Makefile.ppc64
@@ -17,6 +17,8 @@ cstart.o = $(TEST_DIR)/cstart64.o
 reloc.o  = $(TEST_DIR)/reloc64.o
 cflatobjs += lib/ppc64/spinlock.o
 
+OBJDIRS += lib/ppc64
+
 # ppc64 specific tests
 tests =
 
-- 
2.11.0

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

* [kvm-unit-tests PATCH v2 9/9] .travis.yml: initial build matrix
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
                   ` (7 preceding siblings ...)
  2017-05-12 16:40 ` [kvm-unit-tests PATCH v2 8/9] Makefiles: Fix up the powerpc " Alex Bennée
@ 2017-05-12 16:40 ` Alex Bennée
  2017-05-19 16:20 ` [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Radim Krčmář
  9 siblings, 0 replies; 14+ messages in thread
From: Alex Bennée @ 2017-05-12 16:40 UTC (permalink / raw)
  To: pbonzini; +Cc: drjones, kvm, Alex Bennée

This adds a TravisCI build matrix to test all the various build
combinations of architecture and with/without out-of-tree builds. It
currently fails because the Trusty compilers have some issues with
various format strings and unsigned/signed comparisions but these can
be fixed up later.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .travis.yml | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 .travis.yml

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..edccfe0
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,43 @@
+sudo: false
+dist: trusty
+language: c
+compiler:
+  - gcc
+cache: ccache
+addons:
+  apt:
+    packages:
+      # Cross Toolchains
+      - gcc-arm-linux-gnueabihf
+      - gcc-aarch64-linux-gnu
+      - gcc-powerpc64le-linux-gnu
+      # Run dependencies
+      - qemu-system
+git:
+  submodules: false
+env:
+  matrix:
+    - CONFIG=""
+      BUILD_DIR="."
+    - CONFIG=""
+      BUILD_DIR="x86-builddir"
+    - CONFIG="--arch=arm --cross-prefix=arm-linux-gnueabihf-"
+      BUILD_DIR="."
+    - CONFIG="--arch=arm --cross-prefix=arm-linux-gnueabihf-"
+      BUILD_DIR="arm-buildir"
+    - CONFIG="--arch=arm64 --cross-prefix=aarch64-linux-gnu-"
+      BUILD_DIR="."
+    - CONFIG="--arch=arm64 --cross-prefix=aarch64-linux-gnu-"
+      BUILD_DIR="arm64-buildir"
+    - CONFIG="--arch=ppc64 --endian=little --cross-prefix=powerpc64le-linux-gnu-"
+      BUILD_DIR="."
+    - CONFIG="--arch=ppc64 --endian=little --cross-prefix=powerpc64le-linux-gnu-"
+      BUILD_DIR="ppc64le-buildir"
+
+before_script:
+  - mkdir -p $BUILD_DIR && cd $BUILD_DIR
+  - if [ -e ./configure ]; then ./configure $CONFIG ; fi
+  - if [ -e ../configure ]; then ../configure $CONFIG ; fi
+script:
+  - make -j3
+  - ./run_tests.sh || true
-- 
2.11.0

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

* Re: [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree Alex Bennée
@ 2017-05-17 14:50   ` Radim Krčmář
  2017-06-08 14:13     ` Paolo Bonzini
  0 siblings, 1 reply; 14+ messages in thread
From: Radim Krčmář @ 2017-05-17 14:50 UTC (permalink / raw)
  To: Alex Bennée; +Cc: pbonzini, drjones, kvm

2017-05-12 17:39+0100, Alex Bennée:
> This is a first step to enabling out-of-tree builds for
> kvm-unit-tests. When you invoke configure like this:
> 
>   ../tree.git/configure [args]
> 
> It will detect we the case and:
> 
>   - link ../tree.git/Makefile to the build-dir
>   - link ../tree.git/$(arch) and test scripts
>   - link ../tree.git/run_tests.sh
>   - ensure lib is created with a correct lib/asm
>   - set SRCDIR in the config.mk
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> ---
> v2
>   - ln -sf more directory structure
>   - quotes around places where $srcdir is used
>   - dropped pointless {}s
> ---
> diff --git a/configure b/configure
> +srcdir=$(cd "$(dirname "$0")"; pwd)
> +# Are we in a separate build tree? If so, link the Makefile
> +# and shared stuff so that 'make' and run_tests.sh work.
> +if test ! -e Makefile; then
> +    echo "linking Makefile..."
> +    ln -s "$srcdir/Makefile" .
> +
> +    echo "linking tests..."
> +    mkdir -p $testdir
> +    ln -sf "$srcdir/$testdir/run" $testdir/
> +    ln -sf "$srcdir/$testdir/unittests.cfg" $testdir/
> +    ln -sf "$srcdir/run_tests.sh"
> +
> +    echo "linking scripts..."
> +    ln -sf "$srcdir/scripts"
> +fi
> +
>  
>  # create the config
>  cat <<EOF > config.mak
> +SRCDIR=$srcdir

Whitespace in $srcdir is going to break the build.  I think that we
cannot prevent that by escaping as `make` is notoriously bad in that
regard.  Aborting sounds better and maybe something like this could
work:

  ln -sf "$srcdir" srcdir
  srcdir=srcdir

I'm ok with this version if the solution would not be simple. :)

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

* Re: [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds
  2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
                   ` (8 preceding siblings ...)
  2017-05-12 16:40 ` [kvm-unit-tests PATCH v2 9/9] .travis.yml: initial build matrix Alex Bennée
@ 2017-05-19 16:20 ` Radim Krčmář
  9 siblings, 0 replies; 14+ messages in thread
From: Radim Krčmář @ 2017-05-19 16:20 UTC (permalink / raw)
  To: Alex Bennée; +Cc: pbonzini, drjones, kvm

2017-05-12 17:39+0100, Alex Bennée:
> Hi,
> 
> Here is v2 of the out-of-tree build. There have been a number of
> changes following review and also inclusion of Thomas' ppc64 patch
> which completes the set.
> 
> The biggest change is the way I deal with creating build directories.
> There is now a make variable called OBJDIRS which sub-builds can add
> to. I had originally tried to be clever by expanding OBJDIRS into a
> bunch of templated mkdir's which could then be set as
> order-on-prerequisites as suggested by Drew. However it turns out to
> be very hard to add the directory of the target as a prerequisite even
> using hacks like GNU's secondary expansion. In the end I just created
> a directories target and made sure the all: target had it as the first
> thing. This breaks if someone tries to build an individual file
> without first building the tree but I assume most people don't build
> like that. If anyone else can come up with a neater solution I'm all
> ears ;-)

I noticed few cases that don't work:
 - SRC_DIR path contains whitespace
 - SRC_DIR was `./configure`d for another arch
 - SRC_DIR isn't clean (up-to-date results won't be rebuilt out-of-tree)
 - reconfiguring --arch in a out-of-tree directory

The in-tree build still works, out-of-tree in decent cases, Makefile
changes are reasonable, and reviewers seem content in front of a
first-grade bikeshedding material ...

Applied, thanks.

> Finally I've added a .travis.yml recipe. This really only works for
> github hosted repos but its better than nothing. Evidently the cross
> compilers complain about:
> 
>   lib/report.c:38:17: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>   assert_msg(len < sizeof(prefixes), "%d >= %lu", len, sizeof(prefixes));
> 
> and:
> 
>   lib/report.c:38:2: error: format '%lu' expects argument of type 'long unsigned int', but argument 6 has type 'unsigned int' [-Werror=format=]
>   assert_msg(len < sizeof(prefixes), "%d >= %lu", len, sizeof(prefixes));
> 
> But these can be addressed with separate patches.

(Should be fixed now.)

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

* Re: [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree
  2017-05-17 14:50   ` Radim Krčmář
@ 2017-06-08 14:13     ` Paolo Bonzini
  0 siblings, 0 replies; 14+ messages in thread
From: Paolo Bonzini @ 2017-06-08 14:13 UTC (permalink / raw)
  To: Radim Krčmář, Alex Bennée; +Cc: drjones, kvm



On 17/05/2017 16:50, Radim Krčmář wrote:
>>  # create the config
>>  cat <<EOF > config.mak
>> +SRCDIR=$srcdir
> Whitespace in $srcdir is going to break the build.

I think it's pretty common to have things break horribly if there's
whitespace in $srcdir.

Just don't call your srcdir "little bobby tables; rm -rf /".

Paolo

  I think that we
> cannot prevent that by escaping as `make` is notoriously bad in that
> regard.  Aborting sounds better and maybe something like this could
> work:
> 
>   ln -sf "$srcdir" srcdir
>   srcdir=srcdir
> 
> I'm ok with this version if the solution would not be simple. :)

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

* Re: [kvm-unit-tests PATCH v2 5/9] Makefile: add explicit directories target
  2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 5/9] Makefile: add explicit directories target Alex Bennée
@ 2017-06-08 14:32   ` Paolo Bonzini
  0 siblings, 0 replies; 14+ messages in thread
From: Paolo Bonzini @ 2017-06-08 14:32 UTC (permalink / raw)
  To: Alex Bennée; +Cc: drjones, kvm



On 12/05/2017 18:39, Alex Bennée wrote:
> This is slightly clumsy way to ensure the directory structure for the
> out-of-tree build is made first. The PHONY target is depended on by
> make all first which runs mkdir for all OBJDIRS.
> 
> If an architecture target needs deeper nesting it needs to add
> directories to OBJDIRS so it can be picked up by the directories rule.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> ---
> v2
>  - use explicit PHONY directories target
>  - use @mkdir
> ---
>  Makefile | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/Makefile b/Makefile
> index a8e15b6..881bc78 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -12,6 +12,7 @@ VPATH = $(SRCDIR)
>  
>  libdirs-get = $(shell [ -d "lib/$(1)" ] && echo "lib/$(1) lib/$(1)/asm")
>  ARCH_LIBDIRS := $(call libdirs-get,$(ARCH)) $(call libdirs-get,$(TEST_DIR))
> +OBJDIRS := $(ARCH_LIBDIRS)
>  
>  DESTDIR := $(PREFIX)/share/kvm-unit-tests/
>  
> @@ -38,6 +39,8 @@ LIBFDT_archive = $(LIBFDT_objdir)/libfdt.a
>  LIBFDT_include = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_INCLUDES))
>  LIBFDT_version = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_VERSION))
>  
> +OBJDIRS += $(LIBFDT_objdir)
> +
>  #include architecture specific make rules
>  include $(SRCDIR)/$(TEST_DIR)/Makefile
>  
> @@ -78,12 +81,18 @@ $(LIBFDT_archive): CFLAGS += -ffreestanding -I lib -I lib/libfdt -Wno-sign-compa
>  $(LIBFDT_archive): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS))
>  	$(AR) rcs $@ $^
>  
> +
> +# Build directory target
> +.PHONY: directories
> +directories:
> +	@mkdir -p $(OBJDIRS)
> +
>  %.o: %.S
>  	$(CC) $(CFLAGS) -c -nostdlib -o $@ $<

Could you add a $(shell $(mkdir -p $(@D)) here instead, and a $(shell
$(mkdir $(LIBFDT_objdir)) to cater for the nested libfdt makefile?

Sorry if I have asked this already.

Paolo

>  
>  -include */.*.d */*/.*.d
>  
> -all: $(shell git -C $(SRCDIR) rev-parse --verify --short=8 HEAD >build-head 2>/dev/null)
> +all: directories $(shell git -C $(SRCDIR) rev-parse --verify --short=8 HEAD >build-head 2>/dev/null)
>  
>  standalone: all
>  	@scripts/mkstandalone.sh
> 

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

end of thread, other threads:[~2017-06-08 14:32 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-12 16:39 [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Alex Bennée
2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 1/9] configure: make it run-able from outside source tree Alex Bennée
2017-05-17 14:50   ` Radim Krčmář
2017-06-08 14:13     ` Paolo Bonzini
2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 2/9] Makefile: ensure build-head works out-of-src-tree Alex Bennée
2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 3/9] Makefile: set VPATH based on SRCDIR Alex Bennée
2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 4/9] Makefiles: use explicit path for including sub-Makefiles Alex Bennée
2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 5/9] Makefile: add explicit directories target Alex Bennée
2017-06-08 14:32   ` Paolo Bonzini
2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 6/9] Makefiles: fix up the x86 build dirs and include/link paths Alex Bennée
2017-05-12 16:39 ` [kvm-unit-tests PATCH v2 7/9] Makefiles: fix up the arm " Alex Bennée
2017-05-12 16:40 ` [kvm-unit-tests PATCH v2 8/9] Makefiles: Fix up the powerpc " Alex Bennée
2017-05-12 16:40 ` [kvm-unit-tests PATCH v2 9/9] .travis.yml: initial build matrix Alex Bennée
2017-05-19 16:20 ` [kvm-unit-tests PATCH v2 0/9] Support for out-of-tree builds Radim Krčmář

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.