All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 0/5] build upstream qemu and seabios by default
@ 2011-09-30 14:18 Stefano Stabellini
  2011-09-30 14:20 ` [PATCH v7 1/5] Introduce git-checkout.sh stefano.stabellini
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Stefano Stabellini @ 2011-09-30 14:18 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Campbell, Keir Fraser, Stefano Stabellini

Hi all,
this is the sixth version of the patch series to introduce upstream qemu
and seabios in the xen-unstable build system.


Changes to v6:

- add "set -e" to git-checkout.sh;

- add argument count check to git-checkout.sh;

- remove spurious semicolons in git-checkout.sh.


Changes to v5:

- use $GIT in git-checkout.sh;

- add an http mirror for seabios;

- use $(LIBEXEC) to configure upstream qemu;

- append a patch for libxenlight to find the upstream qemu binary under
$(LIBEXEC).


Changes to v4:

- remove an obsolete comment;

- use /bin/sh to execute git-checkout.sh rathen than /bin/bash.


Changes to v3:

- reduce the scope of git-checkout.sh, now it only does what the name
says; calling "configure" is responsibility of the caller. As a result
of this change, the build still works when the user specifies a local
directory in the CONFIG_QEMU environmental variable;

- use a more official qemu repository hosted on xenbits;

- use a changeset as QEMU_UPSTREAM_TAG rather than a branch name.



Changes to v2:

- move tools/git-checkout.sh to scripts/git-checkout.sh;

- use git-checkout.sh for seabios;

- improve seabios integration with tools/firmware make system;

- add qemu-xen-traditional, qemu-xen and seabios dir entries to
.hgignore.



Changes to v1:

- always build upstream qemu and seabios, rather than introducing them
as an option.


Cheers,

Stefano

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

* [PATCH v7 1/5] Introduce git-checkout.sh
  2011-09-30 14:18 [PATCH v7 0/5] build upstream qemu and seabios by default Stefano Stabellini
@ 2011-09-30 14:20 ` stefano.stabellini
  2011-09-30 14:20 ` [PATCH v7 2/5] Rename ioemu-dir as qemu-xen-traditional-dir stefano.stabellini
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: stefano.stabellini @ 2011-09-30 14:20 UTC (permalink / raw)
  To: xen-devel
  Cc: Ian.Campbell, keir, Stefano Stabellini, Ian.Jackson, Stefano.Stabellini

Introduce a script to perform git checkout on an external git tree; use
git-checkout.sh in ioemu-dir-find.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -291,7 +291,7 @@
 ^tools/xm-test/lib/XmTestLib/config.py$
 ^tools/xm-test/lib/XmTestReport/xmtest.py$
 ^tools/xm-test/tests/.*\.test$
-^tools/ioemu-remote
+^tools/ioemu-dir-remote
 ^tools/ioemu-dir$
 ^tools/ocaml/.*/.*\.annot$
 ^tools/ocaml/.*/.*\.cmx?a$
diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh
new file mode 100755
--- /dev/null
+++ b/scripts/git-checkout.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+if test $# -lt 3; then
+	echo "Usage: $0 <tree> <tag> <dir>"
+	exit 1
+fi
+
+TREE=$1
+TAG=$2
+DIR=$3
+
+set -e
+
+if test \! -d $DIR-remote; then
+	rm -rf $DIR-remote $DIR-remote.tmp
+	mkdir $DIR-remote.tmp; rmdir $DIR-remote.tmp
+	$GIT clone $TREE $DIR-remote.tmp
+	if test "$TAG" ; then
+		cd $DIR-remote.tmp
+		$GIT branch -D dummy >/dev/null 2>&1 ||:
+		$GIT checkout -b dummy $TAG
+		cd ..
+	fi
+	mv $DIR-remote.tmp $DIR-remote
+fi
+rm -f $DIR
+ln -sf $DIR-remote $DIR
diff --git a/tools/Makefile b/tools/Makefile
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -70,7 +70,7 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: subdirs-distclean
-	rm -rf ioemu-dir ioemu-remote
+	rm -rf ioemu-dir ioemu-dir-remote
 
 ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
 IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -88,20 +88,8 @@ ioemu-dir-find:
 	if test -d $(CONFIG_QEMU); then \
 		mkdir -p ioemu-dir; \
 	else \
-		if [ ! -d ioemu-remote ]; then \
-			rm -rf ioemu-remote ioemu-remote.tmp; \
-			mkdir ioemu-remote.tmp; rmdir ioemu-remote.tmp; \
-			$(GIT) clone $(CONFIG_QEMU) ioemu-remote.tmp; \
-			if [ "$(QEMU_TAG)" ]; then			\
-				cd ioemu-remote.tmp;			\
-				$(GIT) branch -D dummy >/dev/null 2>&1 ||:; \
-				$(GIT) checkout -b dummy $(QEMU_TAG);	\
-				cd ..;					\
-			fi;						\
-			mv ioemu-remote.tmp ioemu-remote; \
-		fi; \
-		rm -f ioemu-dir; \
-		ln -sf ioemu-remote ioemu-dir; \
+		export GIT=$(GIT); \
+		$(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir; \
 	fi
 	set -e; \
 		$(buildmakevars2shellvars); \
@@ -112,7 +100,7 @@ ioemu-dir-find:
 ioemu-dir-force-update:
 	set -ex; \
 	if [ "$(QEMU_TAG)" ]; then \
-		cd ioemu-remote; \
+		cd ioemu-dir-remote; \
 		$(GIT) fetch origin; \
 		$(GIT) reset --hard $(QEMU_TAG); \
 	fi

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

* [PATCH v7 2/5] Rename ioemu-dir as qemu-xen-traditional-dir
  2011-09-30 14:18 [PATCH v7 0/5] build upstream qemu and seabios by default Stefano Stabellini
  2011-09-30 14:20 ` [PATCH v7 1/5] Introduce git-checkout.sh stefano.stabellini
@ 2011-09-30 14:20 ` stefano.stabellini
  2011-09-30 14:20 ` [PATCH v7 3/5] Clone and build upstream Qemu by default stefano.stabellini
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: stefano.stabellini @ 2011-09-30 14:20 UTC (permalink / raw)
  To: xen-devel
  Cc: Ian.Campbell, keir, Stefano Stabellini, Ian.Jackson, Stefano.Stabellini

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

diff -r 9d2f56b25845 .hgignore
--- a/.hgignore	Fri Sep 23 11:35:23 2011 +0000
+++ b/.hgignore	Fri Sep 23 11:36:44 2011 +0000
@@ -291,8 +291,8 @@
 ^tools/xm-test/lib/XmTestLib/config.py$
 ^tools/xm-test/lib/XmTestReport/xmtest.py$
 ^tools/xm-test/tests/.*\.test$
-^tools/ioemu-dir-remote
-^tools/ioemu-dir$
+^tools/qemu-xen-traditional-dir-remote
+^tools/qemu-xen-traditional-dir$
 ^tools/ocaml/.*/.*\.annot$
 ^tools/ocaml/.*/.*\.cmx?a$
 ^tools/ocaml/.*/META$
diff -r 9d2f56b25845 Makefile
--- a/Makefile	Fri Sep 23 11:35:23 2011 +0000
+++ b/Makefile	Fri Sep 23 11:36:44 2011 +0000
@@ -70,7 +70,7 @@ install-tools:
 	$(MAKE) -C tools install
 
 ifeq ($(CONFIG_IOEMU),y)
-install-tools: tools/ioemu-dir
+install-tools: tools/qemu-xen-traditional-dir
 endif
 
 .PHONY: install-kernels
@@ -78,18 +78,18 @@ install-kernels:
 	for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done
 
 .PHONY: install-stubdom
-install-stubdom: tools/ioemu-dir install-tools
+install-stubdom: tools/qemu-xen-traditional-dir install-tools
 	$(MAKE) -C stubdom install
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub
 endif
 
-tools/ioemu-dir:
-	$(MAKE) -C tools ioemu-dir-find
+tools/qemu-xen-traditional-dir:
+	$(MAKE) -C tools qemu-xen-traditional-dir-find
 
-.PHONY: tools/ioemu-dir-force-update
-tools/ioemu-dir-force-update:
-	$(MAKE) -C tools ioemu-dir-force-update
+.PHONY: tools/qemu-xen-traditional-dir-force-update
+tools/qemu-xen-traditional-dir-force-update:
+	$(MAKE) -C tools qemu-xen-traditional-dir-force-update
 
 .PHONY: install-docs
 install-docs:
diff -r 9d2f56b25845 stubdom/Makefile
--- a/stubdom/Makefile	Fri Sep 23 11:35:23 2011 +0000
+++ b/stubdom/Makefile	Fri Sep 23 11:36:44 2011 +0000
@@ -218,15 +218,15 @@ cross-ocaml: $(OCAML_STAMPFILE)
 QEMU_ROOT := $(shell if [ -d "$(CONFIG_QEMU)" ]; then echo "$(CONFIG_QEMU)"; else echo .; fi)
 
 ifeq ($(QEMU_ROOT),.)
-$(XEN_ROOT)/tools/ioemu-dir:
-	$(CROSS_MAKE) -C $(XEN_ROOT)/tools ioemu-dir-find
+$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
+	$(CROSS_MAKE) -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
 
-ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/ioemu-dir
+ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
 	mkdir -p ioemu
 	set -e;									\
 	$(buildmakevars2shellvars);						\
 	cd ioemu;								\
-	src="$$XEN_ROOT/tools/ioemu-dir"; export src;				\
+	src="$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src;		\
 	(cd $$src && find * -type d -print) | xargs mkdir -p;			\
 	(cd $$src && find *	! -type l  -type f  $(addprefix ! -name ,	\
 			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
diff -r 9d2f56b25845 tools/Makefile
--- a/tools/Makefile	Fri Sep 23 11:35:23 2011 +0000
+++ b/tools/Makefile	Fri Sep 23 11:36:44 2011 +0000
@@ -30,7 +30,7 @@ SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen
 
 # do not recurse in to a dir we are about to delete
 ifneq "$(MAKECMDGOALS)" "distclean"
-SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir
+SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-traditional-dir
 endif
 
 SUBDIRS-y += xenpmd
@@ -70,7 +70,7 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: subdirs-distclean
-	rm -rf ioemu-dir ioemu-dir-remote
+	rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
 
 ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
 IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -83,34 +83,34 @@ ifneq ($(QEMU_ROOT),.)
 export QEMU_ROOT
 endif
 
-ioemu-dir-find:
+qemu-xen-traditional-dir-find:
 	set -ex; \
 	if test -d $(CONFIG_QEMU); then \
-		mkdir -p ioemu-dir; \
+		mkdir -p qemu-xen-traditional-dir; \
 	else \
 		export GIT=$(GIT); \
-		$(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir; \
+		$(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir; \
 	fi
 	set -e; \
 		$(buildmakevars2shellvars); \
-		cd ioemu-dir; \
+		cd qemu-xen-traditional-dir; \
 		$(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS)
 
-.PHONY: ioemu-dir-force-update
-ioemu-dir-force-update:
+.PHONY: qemu-xen-traditional-dir-force-update
+qemu-xen-traditional-dir-force-update:
 	set -ex; \
 	if [ "$(QEMU_TAG)" ]; then \
-		cd ioemu-dir-remote; \
+		cd qemu-xen-traditional-dir-remote; \
 		$(GIT) fetch origin; \
 		$(GIT) reset --hard $(QEMU_TAG); \
 	fi
 
-subdir-all-ioemu-dir subdir-install-ioemu-dir: ioemu-dir-find
+subdir-all-qemu-xen-traditional-dir subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
 
-subdir-clean-ioemu-dir:
-	set -e; if test -d ioemu-dir/.; then \
+subdir-clean-qemu-xen-traditional-dir:
+	set -e; if test -d qemu-xen-traditional-dir/.; then \
 		$(buildmakevars2shellvars); \
-		$(MAKE) -C ioemu-dir clean; \
+		$(MAKE) -C qemu-xen-traditional-dir clean; \
 	fi
 
 subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony

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

* [PATCH v7 3/5] Clone and build upstream Qemu by default
  2011-09-30 14:18 [PATCH v7 0/5] build upstream qemu and seabios by default Stefano Stabellini
  2011-09-30 14:20 ` [PATCH v7 1/5] Introduce git-checkout.sh stefano.stabellini
  2011-09-30 14:20 ` [PATCH v7 2/5] Rename ioemu-dir as qemu-xen-traditional-dir stefano.stabellini
@ 2011-09-30 14:20 ` stefano.stabellini
  2011-09-30 14:20 ` [PATCH v7 4/5] Clone and build Seabios " stefano.stabellini
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: stefano.stabellini @ 2011-09-30 14:20 UTC (permalink / raw)
  To: xen-devel
  Cc: Ian.Campbell, keir, Stefano Stabellini, Ian.Jackson, Stefano.Stabellini

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

diff -r 5553e17faa80 .hgignore
--- a/.hgignore	Fri Sep 23 11:36:44 2011 +0000
+++ b/.hgignore	Fri Sep 23 11:37:08 2011 +0000
@@ -293,6 +293,8 @@
 ^tools/xm-test/tests/.*\.test$
 ^tools/qemu-xen-traditional-dir-remote
 ^tools/qemu-xen-traditional-dir$
+^tools/qemu-xen-dir-remote
+^tools/qemu-xen-dir$
 ^tools/ocaml/.*/.*\.annot$
 ^tools/ocaml/.*/.*\.cmx?a$
 ^tools/ocaml/.*/META$
diff -r 5553e17faa80 Config.mk
--- a/Config.mk	Fri Sep 23 11:36:44 2011 +0000
+++ b/Config.mk	Fri Sep 23 11:37:08 2011 +0000
@@ -192,6 +192,13 @@ else
 QEMU_REMOTE=git://xenbits.xensource.com/qemu-xen-unstable.git
 endif
 
+ifeq ($(GIT_HTTP),y)
+QEMU_UPSTREAM_URL ?= http://xenbits.xensource.com/git-http/qemu-upstream-unstable.git
+else
+QEMU_UPSTREAM_URL ?= git://xenbits.xensource.com/qemu-upstream-unstable.git
+endif
+QEMU_UPSTREAM_TAG ?= 6dd84c71dff047f9e492d67e7c99928d09202760
+
 # Specify which qemu-dm to use. This may be `ioemu' to use the old
 # Mercurial in-tree version, or a local directory, or a git URL.
 # CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
diff -r 5553e17faa80 Makefile
--- a/Makefile	Fri Sep 23 11:36:44 2011 +0000
+++ b/Makefile	Fri Sep 23 11:37:08 2011 +0000
@@ -70,7 +70,7 @@ install-tools:
 	$(MAKE) -C tools install
 
 ifeq ($(CONFIG_IOEMU),y)
-install-tools: tools/qemu-xen-traditional-dir
+install-tools: tools/qemu-xen-traditional-dir tools/qemu-xen-dir
 endif
 
 .PHONY: install-kernels
@@ -91,6 +91,9 @@ tools/qemu-xen-traditional-dir:
 tools/qemu-xen-traditional-dir-force-update:
 	$(MAKE) -C tools qemu-xen-traditional-dir-force-update
 
+tools/qemu-xen-dir:
+	$(MAKE) -C tools qemu-xen-dir-find
+
 .PHONY: install-docs
 install-docs:
 	sh ./docs/check_pkgs && $(MAKE) -C docs install || true
diff -r 5553e17faa80 tools/Makefile
--- a/tools/Makefile	Fri Sep 23 11:36:44 2011 +0000
+++ b/tools/Makefile	Fri Sep 23 11:37:08 2011 +0000
@@ -31,6 +31,7 @@ SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen
 # do not recurse in to a dir we are about to delete
 ifneq "$(MAKECMDGOALS)" "distclean"
 SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-traditional-dir
+SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-dir
 endif
 
 SUBDIRS-y += xenpmd
@@ -71,6 +72,7 @@ clean: subdirs-clean
 .PHONY: distclean
 distclean: subdirs-distclean
 	rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
+	rm -rf qemu-xen-dir qemu-xen-dir-remote
 
 ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
 IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -96,6 +98,25 @@ qemu-xen-traditional-dir-find:
 		cd qemu-xen-traditional-dir; \
 		$(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS)
 
+qemu-xen-dir-find:
+	if test -d $(QEMU_UPSTREAM_URL) ; then \
+		ln -sf $(QEMU_UPSTREAM_URL) qemu-xen-dir; \
+	else \
+		export GIT=$(GIT); \
+		$(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_UPSTREAM_URL) $(QEMU_UPSTREAM_TAG) qemu-xen-dir ; \
+	fi
+	cd qemu-xen-dir; \
+	./configure --enable-xen --target-list=i386-softmmu \
+		--source-path=$$ROOT \
+		--extra-cflags="-I$(XEN_ROOT)/tools/include \
+		-I$(XEN_ROOT)/tools/libxc \
+		-I$(XEN_ROOT)/tools/xenstore" \
+		--extra-ldflags="-L$(XEN_ROOT)/tools/libxc \
+		-L$(XEN_ROOT)/tools/libxenstore" \
+		--bindir=$(LIBEXEC) \
+		--disable-kvm \
+		$(IOEMU_CONFIGURE_CROSS)
+
 .PHONY: qemu-xen-traditional-dir-force-update
 qemu-xen-traditional-dir-force-update:
 	set -ex; \
@@ -113,6 +134,14 @@ subdir-clean-qemu-xen-traditional-dir:
 		$(MAKE) -C qemu-xen-traditional-dir clean; \
 	fi
 
+subdir-all-qemu-xen-dir subdir-install-qemu-xen-dir: qemu-xen-dir-find
+
+subdir-clean-qemu-xen-dir:
+	set -e; if test -d qemu-xen-dir/.; then \
+		$(buildmakevars2shellvars); \
+		$(MAKE) -C qemu-xen-dir clean; \
+	fi
+
 subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony
 	$(MAKE) -C debugger/gdbsx clean

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

* [PATCH v7 4/5] Clone and build Seabios by default
  2011-09-30 14:18 [PATCH v7 0/5] build upstream qemu and seabios by default Stefano Stabellini
                   ` (2 preceding siblings ...)
  2011-09-30 14:20 ` [PATCH v7 3/5] Clone and build upstream Qemu by default stefano.stabellini
@ 2011-09-30 14:20 ` stefano.stabellini
  2011-09-30 14:20 ` [PATCH v7 5/5] libxl: use new qemu at the location where xen-unstable installs it stefano.stabellini
  2011-10-10 16:23 ` [PATCH v7 0/5] build upstream qemu and seabios by default Ian Jackson
  5 siblings, 0 replies; 9+ messages in thread
From: stefano.stabellini @ 2011-09-30 14:20 UTC (permalink / raw)
  To: xen-devel
  Cc: Ian.Campbell, keir, Stefano Stabellini, Ian.Jackson, Stefano.Stabellini

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

diff -r 294b63f68602 .hgignore
--- a/.hgignore	Fri Sep 23 11:37:09 2011 +0000
+++ b/.hgignore	Fri Sep 23 11:51:06 2011 +0000
@@ -295,6 +295,8 @@
 ^tools/qemu-xen-traditional-dir$
 ^tools/qemu-xen-dir-remote
 ^tools/qemu-xen-dir$
+^tools/tools/firmware/seabios-dir-remote
+^tools/tools/firmware/seabios-dir$
 ^tools/ocaml/.*/.*\.annot$
 ^tools/ocaml/.*/.*\.cmx?a$
 ^tools/ocaml/.*/META$
diff -r 294b63f68602 Config.mk
--- a/Config.mk	Fri Sep 23 11:37:09 2011 +0000
+++ b/Config.mk	Fri Sep 23 11:51:06 2011 +0000
@@ -194,10 +194,13 @@ endif
 
 ifeq ($(GIT_HTTP),y)
 QEMU_UPSTREAM_URL ?= http://xenbits.xensource.com/git-http/qemu-upstream-unstable.git
+SEABIOS_UPSTREAM_URL ?= http://git.qemu.org/git/seabios.git
 else
 QEMU_UPSTREAM_URL ?= git://xenbits.xensource.com/qemu-upstream-unstable.git
+SEABIOS_UPSTREAM_URL ?= git://git.qemu.org/seabios.git
 endif
 QEMU_UPSTREAM_TAG ?= 6dd84c71dff047f9e492d67e7c99928d09202760
+SEABIOS_UPSTREAM_TAG ?= 7fc039e9c262b4199fab497f3e12f4e425c37560
 
 # Specify which qemu-dm to use. This may be `ioemu' to use the old
 # Mercurial in-tree version, or a local directory, or a git URL.
@@ -211,15 +214,6 @@ QEMU_TAG ?= cd776ee9408ff127f934a707c1a3
 # Short answer -- do not enable this unless you know what you are
 # doing and are prepared for some pain.
 
-# SeaBIOS integration is a work in progress. Before enabling this
-# option you must clone git://git.qemu.org/seabios.git/, possibly add
-# some development patches and then build it yourself before pointing
-# this variable to it (using an absolute path).
-#
-# Note that using SeaBIOS requires the use the upstream qemu as the
-# device model.
-SEABIOS_DIR ?= 
-
 # Optional components
 XENSTAT_XENTOP     ?= y
 VTPM_TOOLS         ?= n
diff -r 294b63f68602 tools/firmware/Makefile
--- a/tools/firmware/Makefile	Fri Sep 23 11:37:09 2011 +0000
+++ b/tools/firmware/Makefile	Fri Sep 23 11:51:06 2011 +0000
@@ -6,13 +6,18 @@ TARGET      := hvmloader/hvmloader
 INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
 
 SUBDIRS :=
+SUBDIRS += seabios-dir
 SUBDIRS += rombios
 SUBDIRS += vgabios
 SUBDIRS += etherboot
 SUBDIRS += hvmloader
 
+seabios-dir:
+	GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_TAG) seabios-dir
+	cp seabios-config seabios-dir/.config;
+
 .PHONY: all
-all:
+all: seabios-dir
 	@set -e; if [ $$((`( bcc -v 2>&1 | grep version || echo 0.0.0 ) | cut -d' ' -f 3 | awk -F. '{ printf "0x%02x%02x%02x", $$1, $$2, $$3}'`)) -lt $$((0x00100e)) ] ; then \
 	echo "==========================================================================="; \
 	echo "Require dev86 rpm or bin86 & bcc debs version >= 0.16.14 to build firmware!"; \
@@ -35,4 +40,7 @@ clean: subdirs-clean
 distclean: subdirs-distclean
 
 subdir-distclean-etherboot: .phony
-	$(MAKE) -C etherboot distclean
\ No newline at end of file
+	$(MAKE) -C etherboot distclean
+
+subdir-distclean-seabios-dir: .phony
+	rm -rf seabios-dir seabios-dir-remote
diff -r 294b63f68602 tools/firmware/hvmloader/Makefile
--- a/tools/firmware/hvmloader/Makefile	Fri Sep 23 11:37:09 2011 +0000
+++ b/tools/firmware/hvmloader/Makefile	Fri Sep 23 11:51:06 2011 +0000
@@ -44,6 +44,7 @@ CFLAGS += -DENABLE_ROMBIOS
 ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest
 endif
 
+SEABIOS_DIR := ../seabios-dir
 ifneq ($(SEABIOS_DIR),)
 OBJS += seabios.o
 CFLAGS += -DENABLE_SEABIOS
diff -r 294b63f68602 tools/firmware/seabios-config
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/firmware/seabios-config	Fri Sep 23 11:51:06 2011 +0000
@@ -0,0 +1,73 @@
+#
+# Automatically generated make config: don't edit
+# SeaBIOS Configuration
+# Wed Sep  7 13:03:21 2011
+#
+
+#
+# General Features
+#
+# CONFIG_COREBOOT is not set
+CONFIG_XEN=y
+CONFIG_THREADS=y
+# CONFIG_THREAD_OPTIONROMS is not set
+CONFIG_RELOCATE_INIT=y
+CONFIG_BOOTMENU=y
+# CONFIG_BOOTSPLASH is not set
+CONFIG_BOOTORDER=y
+
+#
+# Hardware support
+#
+CONFIG_ATA=y
+CONFIG_ATA_DMA=y
+CONFIG_ATA_PIO32=y
+CONFIG_AHCI=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_FLOPPY=y
+CONFIG_PS2PORT=y
+CONFIG_USB=y
+CONFIG_USB_UHCI=y
+CONFIG_USB_OHCI=y
+CONFIG_USB_EHCI=y
+CONFIG_USB_MSC=y
+CONFIG_USB_HUB=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_MOUSE=y
+CONFIG_SERIAL=y
+CONFIG_LPT=y
+# CONFIG_USE_SMM is not set
+CONFIG_MTRR_INIT=y
+
+#
+# BIOS interfaces
+#
+CONFIG_DRIVES=y
+CONFIG_CDROM_BOOT=y
+CONFIG_CDROM_EMU=y
+CONFIG_PCIBIOS=y
+CONFIG_APMBIOS=y
+CONFIG_PNPBIOS=y
+CONFIG_OPTIONROMS=y
+# CONFIG_OPTIONROMS_DEPLOYED is not set
+CONFIG_PMM=y
+CONFIG_BOOT=y
+CONFIG_KEYBOARD=y
+CONFIG_KBD_CALL_INT15_4F=y
+CONFIG_MOUSE=y
+CONFIG_S3_RESUME=y
+# CONFIG_DISABLE_A20 is not set
+
+#
+# BIOS Tables
+#
+CONFIG_PIRTABLE=y
+CONFIG_MPTABLE=y
+CONFIG_SMBIOS=y
+CONFIG_ACPI=y
+
+#
+# Debugging
+#
+CONFIG_DEBUG_LEVEL=1
+# CONFIG_DEBUG_SERIAL is not set

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

* [PATCH v7 5/5] libxl: use new qemu at the location where xen-unstable installs it
  2011-09-30 14:18 [PATCH v7 0/5] build upstream qemu and seabios by default Stefano Stabellini
                   ` (3 preceding siblings ...)
  2011-09-30 14:20 ` [PATCH v7 4/5] Clone and build Seabios " stefano.stabellini
@ 2011-09-30 14:20 ` stefano.stabellini
  2011-09-30 14:25   ` Christoph Egger
  2011-10-10 16:23 ` [PATCH v7 0/5] build upstream qemu and seabios by default Ian Jackson
  5 siblings, 1 reply; 9+ messages in thread
From: stefano.stabellini @ 2011-09-30 14:20 UTC (permalink / raw)
  To: xen-devel
  Cc: Ian.Campbell, keir, Ian.Jackson, Ian Campbell, Stefano.Stabellini

From: Ian Campbell <ian.campbell@citrix.com>

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>

diff -r 75f27929ad92 tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c	Fri Sep 23 11:22:23 2011 +0000
+++ b/tools/libxl/libxl_dm.c	Fri Sep 23 11:22:39 2011 +0000
@@ -55,7 +55,7 @@ const char *libxl__domain_device_model(l
             dm = libxl__abs_path(gc, "qemu-dm", libxl_libexec_path());
             break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
-            dm = libxl__strdup(gc, "/usr/bin/qemu");
+            dm = libxl__abs_path(gc, "qemu", libxl_libexec_path());
             break;
         default:
             LIBXL__LOG(ctx, LIBXL__LOG_ERROR,

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

* Re: [PATCH v7 5/5] libxl: use new qemu at the location where xen-unstable installs it
  2011-09-30 14:20 ` [PATCH v7 5/5] libxl: use new qemu at the location where xen-unstable installs it stefano.stabellini
@ 2011-09-30 14:25   ` Christoph Egger
  0 siblings, 0 replies; 9+ messages in thread
From: Christoph Egger @ 2011-09-30 14:25 UTC (permalink / raw)
  To: stefano.stabellini; +Cc: xen-devel, keir, Campbell, Ian.Jackson, Ian.Campbell

On 09/30/11 16:20, stefano.stabellini@eu.citrix.com wrote:
> From: Ian Campbell<ian.campbell@citrix.com>
>
> Signed-off-by: Ian Campbell<ian.campbell@citrix.com>

Acked-by: Christoph Egger <Christoph.Egger@amd.com>

>
> diff -r 75f27929ad92 tools/libxl/libxl_dm.c
> --- a/tools/libxl/libxl_dm.c	Fri Sep 23 11:22:23 2011 +0000
> +++ b/tools/libxl/libxl_dm.c	Fri Sep 23 11:22:39 2011 +0000
> @@ -55,7 +55,7 @@ const char *libxl__domain_device_model(l
>               dm = libxl__abs_path(gc, "qemu-dm", libxl_libexec_path());
>               break;
>           case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
> -            dm = libxl__strdup(gc, "/usr/bin/qemu");
> +            dm = libxl__abs_path(gc, "qemu", libxl_libexec_path());
>               break;
>           default:
>               LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>


-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

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

* Re: [PATCH v7 0/5] build upstream qemu and seabios by default
  2011-09-30 14:18 [PATCH v7 0/5] build upstream qemu and seabios by default Stefano Stabellini
                   ` (4 preceding siblings ...)
  2011-09-30 14:20 ` [PATCH v7 5/5] libxl: use new qemu at the location where xen-unstable installs it stefano.stabellini
@ 2011-10-10 16:23 ` Ian Jackson
  2011-10-13 17:54   ` Stefano Stabellini
  5 siblings, 1 reply; 9+ messages in thread
From: Ian Jackson @ 2011-10-10 16:23 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: Ian, Campbell, xen-devel, Keir Fraser

Stefano Stabellini writes ("[Xen-devel] [PATCH v7 0/5] build upstream qemu and seabios by default"):
> this is the sixth version of the patch series to introduce upstream qemu
> and seabios in the xen-unstable build system.

I did this (on my workstation, running Debian squeeze i386):

 * hg clean --all
 * Apply this series (it applied cleanly)
 * cp ../.config .  (see below)
 * in the referenced qemu-iwj.git dir, git-clean -xdf
 * (make -j4 && echo ok.) 2>&1 | tee ../log

My ../.config contains only
 
CONFIG_QEMU=/u/iwj/work/1/qemu-iwj.git

and the referenced directory is at git changeset
25378e0a76b282127e9ab8933a4defbc91db3862.

The result was the error you see below.

After this, the directory "tools/qemu-xen-dir-remote" is at
6dd84c71dff047f9e492d67e7c99928d09202760.

IIRC this is the same problem that v5 and v6 had.  Please come back
when you've actually fixed it.

Ian.


make[1]: Leaving directory `/u/iwj/work/xen-unstable-tools.hg/xen'
Switched to a new branch 'dummy'
cd qemu-xen-dir; \
        ./configure --enable-xen --target-list=i386-softmmu \
                --source-path=$ROOT \
                --extra-cflags="-I/u/iwj/work/xen-unstable-tools.hg/tools/../tools/include \
                -I/u/iwj/work/xen-unstable-tools.hg/tools/../tools/libxc \
                -I/u/iwj/work/xen-unstable-tools.hg/tools/../tools/xenstore" \
                --extra-ldflags="-L/u/iwj/work/xen-unstable-tools.hg/tools/../tools/libxc \
                -L/u/iwj/work/xen-unstable-tools.hg/tools/../tools/libxenstore" \
                --bindir=/usr/lib/xen/bin \
                --disable-kvm \

ERROR
ERROR: User requested feature xen
ERROR: configure was not able to find it
ERROR
make[1]: *** [qemu-xen-dir-find] Error 1
make[1]: Leaving directory `/u/iwj/work/xen-unstable-tools.hg/tools'
make: *** [tools/qemu-xen-dir] Error 2

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

* Re: [PATCH v7 0/5] build upstream qemu and seabios by default
  2011-10-10 16:23 ` [PATCH v7 0/5] build upstream qemu and seabios by default Ian Jackson
@ 2011-10-13 17:54   ` Stefano Stabellini
  0 siblings, 0 replies; 9+ messages in thread
From: Stefano Stabellini @ 2011-10-13 17:54 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel, Keir (Xen.org), Ian Campbell, Stefano Stabellini

On Mon, 10 Oct 2011, Ian Jackson wrote:
> Stefano Stabellini writes ("[Xen-devel] [PATCH v7 0/5] build upstream qemu and seabios by default"):
> > this is the sixth version of the patch series to introduce upstream qemu
> > and seabios in the xen-unstable build system.
> 
> I did this (on my workstation, running Debian squeeze i386):
> 
>  * hg clean --all
>  * Apply this series (it applied cleanly)
>  * cp ../.config .  (see below)
>  * in the referenced qemu-iwj.git dir, git-clean -xdf
>  * (make -j4 && echo ok.) 2>&1 | tee ../log
> 
> My ../.config contains only
>  
> CONFIG_QEMU=/u/iwj/work/1/qemu-iwj.git
> 
> and the referenced directory is at git changeset
> 25378e0a76b282127e9ab8933a4defbc91db3862.
> 
> The result was the error you see below.
> 
> After this, the directory "tools/qemu-xen-dir-remote" is at
> 6dd84c71dff047f9e492d67e7c99928d09202760.
> 
> IIRC this is the same problem that v5 and v6 had.  Please come back
> when you've actually fixed it.
> 
> Ian.
> 
> 
> make[1]: Leaving directory `/u/iwj/work/xen-unstable-tools.hg/xen'
> Switched to a new branch 'dummy'
> cd qemu-xen-dir; \
>         ./configure --enable-xen --target-list=i386-softmmu \
>                 --source-path=$ROOT \
>                 --extra-cflags="-I/u/iwj/work/xen-unstable-tools.hg/tools/../tools/include \
>                 -I/u/iwj/work/xen-unstable-tools.hg/tools/../tools/libxc \
>                 -I/u/iwj/work/xen-unstable-tools.hg/tools/../tools/xenstore" \
>                 --extra-ldflags="-L/u/iwj/work/xen-unstable-tools.hg/tools/../tools/libxc \
>                 -L/u/iwj/work/xen-unstable-tools.hg/tools/../tools/libxenstore" \
>                 --bindir=/usr/lib/xen/bin \
>                 --disable-kvm \
> 
> ERROR
> ERROR: User requested feature xen
> ERROR: configure was not able to find it
> ERROR
> make[1]: *** [qemu-xen-dir-find] Error 1
> make[1]: Leaving directory `/u/iwj/work/xen-unstable-tools.hg/tools'
> make: *** [tools/qemu-xen-dir] Error 2
> 

I have just realized that I did all my tests on a box that has xen
properly installed under /usr so it doesn't need all the --extra-cflags
and --extra-ldflags runes.
Changing dev box made me uncover two bugs:

- a typo in tools/Makefile (libxenstore instead of xenstore);

- a dependency problem: qemu's configure script needs libxc and xenstore
to be already built but we are calling it before building them. The
solution is to move the call to configure after we build libxc and xenstore.

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

end of thread, other threads:[~2011-10-13 17:54 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-30 14:18 [PATCH v7 0/5] build upstream qemu and seabios by default Stefano Stabellini
2011-09-30 14:20 ` [PATCH v7 1/5] Introduce git-checkout.sh stefano.stabellini
2011-09-30 14:20 ` [PATCH v7 2/5] Rename ioemu-dir as qemu-xen-traditional-dir stefano.stabellini
2011-09-30 14:20 ` [PATCH v7 3/5] Clone and build upstream Qemu by default stefano.stabellini
2011-09-30 14:20 ` [PATCH v7 4/5] Clone and build Seabios " stefano.stabellini
2011-09-30 14:20 ` [PATCH v7 5/5] libxl: use new qemu at the location where xen-unstable installs it stefano.stabellini
2011-09-30 14:25   ` Christoph Egger
2011-10-10 16:23 ` [PATCH v7 0/5] build upstream qemu and seabios by default Ian Jackson
2011-10-13 17:54   ` Stefano Stabellini

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.