From dcbc297aea6a159f2f5fad5de84666f23c2d17ad Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 14 Sep 2011 11:38:13 +0100 Subject: tools: Revert seabios and upstream qemu build changes These have broken the build and it seems to be difficult to fix. So we will revert the whole lot for now, and await corrected patch(es). Revert "fix the build when CONFIG_QEMU is specified by the user" Revert "tools: fix permissions of git-checkout.sh" Revert "scripts/git-checkout.sh: Is not bash specific. Invoke with /bin/sh." Revert "Clone and build Seabios by default" Revert "Clone and build upstream Qemu by default" Revert "Rename ioemu-dir as qemu-xen-traditional-dir" Revert "Move the ioemu-dir-find shell script to an external file" Signed-off-by: Ian Jackson --- .hgignore | 8 ++--- Config.mk | 15 ++++---- Makefile | 17 ++++----- scripts/git-checkout.sh | 47 ------------------------- tools/Makefile | 64 ++++++++++++++++++++-------------- tools/firmware/Makefile | 12 ++----- tools/firmware/hvmloader/Makefile | 1 - tools/firmware/seabios-config | 73 --------------------------------------- 8 files changed, 59 insertions(+), 178 deletions(-) delete mode 100755 scripts/git-checkout.sh delete mode 100644 tools/firmware/seabios-config diff --git a/.hgignore b/.hgignore index 6464198d65..cdb6f36f96 100644 --- a/.hgignore +++ b/.hgignore @@ -291,12 +291,8 @@ ^tools/xm-test/lib/XmTestLib/config.py$ ^tools/xm-test/lib/XmTestReport/xmtest.py$ ^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/tools/firmware/seabios-dir-remote -^tools/tools/firmware/seabios-dir$ +^tools/ioemu-remote +^tools/ioemu-dir$ ^tools/ocaml/.*/.*\.annot$ ^tools/ocaml/.*/.*\.cmx?a$ ^tools/ocaml/.*/META$ diff --git a/Config.mk b/Config.mk index 34ce9cf0c0..6505697df1 100644 --- a/Config.mk +++ b/Config.mk @@ -192,12 +192,6 @@ else QEMU_REMOTE=git://xenbits.xensource.com/qemu-xen-unstable.git endif -# Only available through the git protocol at the moment -QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/people/sstabellini/qemu-dm.git -QEMU_UPSTREAM_TAG ?= origin/xen-stable-0.15 -SEABIOS_UPSTREAM_URL=git://git.qemu.org/seabios.git -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. # CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git @@ -210,6 +204,15 @@ QEMU_TAG ?= cd776ee9408ff127f934a707c1a339ee600bc127 # 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 --git a/Makefile b/Makefile index f977ef8f1d..31e87958f0 100644 --- a/Makefile +++ b/Makefile @@ -70,7 +70,7 @@ install-tools: $(MAKE) -C tools install ifeq ($(CONFIG_IOEMU),y) -install-tools: tools/qemu-xen-traditional-dir tools/qemu-xen-dir +install-tools: tools/ioemu-dir endif .PHONY: install-kernels @@ -78,21 +78,18 @@ install-kernels: for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done .PHONY: install-stubdom -install-stubdom: tools/qemu-xen-traditional-dir install-tools +install-stubdom: tools/ioemu-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/qemu-xen-traditional-dir: - $(MAKE) -C tools qemu-xen-traditional-dir-find +tools/ioemu-dir: + $(MAKE) -C tools ioemu-dir-find -.PHONY: tools/qemu-xen-traditional-dir-force-update -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: tools/ioemu-dir-force-update +tools/ioemu-dir-force-update: + $(MAKE) -C tools ioemu-dir-force-update .PHONY: install-docs install-docs: diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh deleted file mode 100755 index dd6c74efdd..0000000000 --- a/scripts/git-checkout.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -TREE=$1 -TAG=$2 -DIR=$3 - - -if test -d $TREE; then - mkdir -p $DIR - ROOT=$TREE -else - 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 - ROOT=. -fi - -set -e -cd $DIR -# is this qemu-xen-traditional? -if test -f $ROOT/xen-setup; then - QEMU_ROOT=$ROOT $ROOT/xen-setup $IOEMU_CONFIGURE_CROSS -# is this qemu-xen? -elif test -f $ROOT/configure; then - cd $ROOT - ./configure --enable-xen --target-list=i386-softmmu \ - --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=/usr/lib/xen/bin \ - --disable-kvm \ - $IOEMU_CONFIGURE_CROSS -fi - diff --git a/tools/Makefile b/tools/Makefile index ede96db9b0..df6270c352 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -30,8 +30,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 +SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir endif SUBDIRS-y += xenpmd @@ -71,8 +70,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 + rm -rf ioemu-dir ioemu-remote ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH)) IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \ @@ -80,35 +78,51 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \ --interp-prefix=$(CROSS_SYS_ROOT) endif -qemu-xen-traditional-dir-find: - $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir - -qemu-xen-dir-find: - $(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_UPSTREAM_URL) $(QEMU_UPSTREAM_TAG) qemu-xen-dir - -.PHONY: qemu-xen-traditional-dir-force-update -qemu-xen-traditional-dir-force-update: +QEMU_ROOT := $(shell if [ -d "$(CONFIG_QEMU)" ]; then echo "$(CONFIG_QEMU)"; else echo .; fi) +ifneq ($(QEMU_ROOT),.) +export QEMU_ROOT +endif + +ioemu-dir-find: + set -ex; \ + 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; \ + fi + set -e; \ + $(buildmakevars2shellvars); \ + cd ioemu-dir; \ + $(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS) + +.PHONY: ioemu-dir-force-update +ioemu-dir-force-update: set -ex; \ if [ "$(QEMU_TAG)" ]; then \ - cd qemu-xen-traditional-dir-remote; \ + cd ioemu-remote; \ $(GIT) fetch origin; \ $(GIT) reset --hard $(QEMU_TAG); \ fi -subdir-all-qemu-xen-traditional-dir subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find - -subdir-clean-qemu-xen-traditional-dir: - set -e; if test -d qemu-xen-traditional-dir/.; then \ - $(buildmakevars2shellvars); \ - $(MAKE) -C qemu-xen-traditional-dir clean; \ - fi - -subdir-all-qemu-xen-dir subdir-install-qemu-xen-dir: qemu-xen-dir-find +subdir-all-ioemu-dir subdir-install-ioemu-dir: ioemu-dir-find -subdir-clean-qemu-xen-dir: - set -e; if test -d qemu-xen-dir/.; then \ +subdir-clean-ioemu-dir: + set -e; if test -d ioemu-dir/.; then \ $(buildmakevars2shellvars); \ - $(MAKE) -C qemu-xen-dir clean; \ + $(MAKE) -C ioemu-dir clean; \ fi subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index 1e8a4db03a..4b6d144134 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -6,18 +6,13 @@ TARGET := hvmloader/hvmloader INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) SUBDIRS := -SUBDIRS += seabios-dir SUBDIRS += rombios SUBDIRS += vgabios SUBDIRS += etherboot SUBDIRS += hvmloader -seabios-dir: - $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_TAG) seabios-dir - cp seabios-config seabios-dir/.config; - .PHONY: all -all: seabios-dir +all: @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!"; \ @@ -40,7 +35,4 @@ clean: subdirs-clean distclean: subdirs-distclean subdir-distclean-etherboot: .phony - $(MAKE) -C etherboot distclean - -subdir-distclean-seabios-dir: .phony - rm -rf seabios-dir seabios-dir-remote + $(MAKE) -C etherboot distclean \ No newline at end of file diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index ae8a1e281f..11e8f1c316 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -44,7 +44,6 @@ 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 --git a/tools/firmware/seabios-config b/tools/firmware/seabios-config deleted file mode 100644 index 202d15fad5..0000000000 --- a/tools/firmware/seabios-config +++ /dev/null @@ -1,73 +0,0 @@ -# -# 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 -- cgit v1.2.3