diff options
-rw-r--r-- | Config.mk | 14 | ||||
-rw-r--r-- | config/ia64.mk | 4 | ||||
-rw-r--r-- | config/x86_32.mk | 9 | ||||
-rw-r--r-- | config/x86_64.mk | 9 | ||||
-rw-r--r-- | extras/mini-os/Makefile | 3 | ||||
-rw-r--r-- | tools/Makefile | 45 | ||||
-rw-r--r-- | tools/Rules.mk | 2 | ||||
-rw-r--r-- | tools/libxc/Makefile | 77 | ||||
-rw-r--r-- | tools/libxc/xc_core.c | 2 | ||||
-rw-r--r-- | tools/libxc/xc_hvm_build.c | 2 | ||||
-rw-r--r-- | tools/libxc/xc_linux_build.c | 8 | ||||
-rw-r--r-- | tools/libxc/xc_load_elf.c | 8 | ||||
-rw-r--r-- | tools/libxc/xg_private.c | 15 | ||||
-rw-r--r-- | tools/libxc/xg_private.h | 8 | ||||
-rw-r--r-- | tools/misc/Makefile | 2 | ||||
-rw-r--r-- | xen/tools/Makefile | 3 | ||||
-rw-r--r-- | xen/tools/figlet/Makefile | 3 |
17 files changed, 110 insertions, 104 deletions
@@ -39,19 +39,7 @@ else CFLAGS += -g endif -ifeq ($(XEN_TARGET_ARCH),x86_32) -CFLAGS += -m32 -march=i686 -endif - -ifeq ($(XEN_TARGET_ARCH),x86_64) -CFLAGS += -m64 -endif - -ifeq ($(XEN_TARGET_ARCH),x86_64) -LIBDIR = lib64 -else -LIBDIR = lib -endif +include $(XEN_ROOT)/config/$(XEN_TARGET_ARCH).mk ifneq ($(EXTRA_PREFIX),) EXTRA_INCLUDES += $(EXTRA_PREFIX)/include diff --git a/config/ia64.mk b/config/ia64.mk new file mode 100644 index 0000000000..a951514dae --- /dev/null +++ b/config/ia64.mk @@ -0,0 +1,4 @@ +CONFIG_IA64 := y +CONFIG_IOEMU := y + +LIBDIR := lib diff --git a/config/x86_32.mk b/config/x86_32.mk new file mode 100644 index 0000000000..b2afb68e7d --- /dev/null +++ b/config/x86_32.mk @@ -0,0 +1,9 @@ +CONFIG_X86 := y +CONFIG_PLAN9 := y +CONFIG_HVM := y +CONFIG_MIGRATE := y +CONFIG_IOEMU := y +CONFIG_MBOOTPACK := y + +CFLAGS += -m32 -march=i686 +LIBDIR := lib diff --git a/config/x86_64.mk b/config/x86_64.mk new file mode 100644 index 0000000000..1e81e9eb06 --- /dev/null +++ b/config/x86_64.mk @@ -0,0 +1,9 @@ +CONFIG_X86 := y +CONFIG_PLAN9 := y +CONFIG_HVM := y +CONFIG_MIGRATE := y +CONFIG_IOEMU := y +CONFIG_MBOOTPACK := y + +CFLAGS += -m64 +LIBDIR = lib64 diff --git a/extras/mini-os/Makefile b/extras/mini-os/Makefile index e92681c1ab..e53c281c0f 100644 --- a/extras/mini-os/Makefile +++ b/extras/mini-os/Makefile @@ -1,7 +1,8 @@ debug ?= y pae ?= n -include $(CURDIR)/../../Config.mk +XEN_ROOT = ../.. +include $(XEN_ROOT)/Config.mk # Set TARGET_ARCH override TARGET_ARCH := $(XEN_TARGET_ARCH) diff --git a/tools/Makefile b/tools/Makefile index 5be02fa8b4..54d738aa28 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,39 +1,38 @@ XEN_ROOT = ../ include $(XEN_ROOT)/tools/Rules.mk -SUBDIRS := -SUBDIRS += libxc -SUBDIRS += xenstore -SUBDIRS += misc -SUBDIRS += examples -SUBDIRS += xentrace -SUBDIRS += xcutils -SUBDIRS += firmware -SUBDIRS += security -SUBDIRS += console -SUBDIRS += xenmon -SUBDIRS += guest-headers -ifeq ($(VTPM_TOOLS),y) -SUBDIRS += vtpm_manager -SUBDIRS += vtpm -endif -SUBDIRS += xenstat +SUBDIRS-y := +SUBDIRS-y += libxc +SUBDIRS-y += xenstore +SUBDIRS-y += misc +SUBDIRS-y += examples +SUBDIRS-y += xentrace +SUBDIRS-$(CONFIG_X86) += xcutils +SUBDIRS-y += firmware +SUBDIRS-y += security +SUBDIRS-y += console +SUBDIRS-y += xenmon +SUBDIRS-y += guest-headers +SUBDIRS-$(VTPM_TOOLS) += vtpm_manager +SUBDIRS-$(VTPM_TOOLS) += vtpm +SUBDIRS-y += xenstat + # These don't cross-compile ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH)) -SUBDIRS += python -SUBDIRS += pygrub +SUBDIRS-y += python +SUBDIRS-y += pygrub endif .PHONY: all all: check - @set -e; for subdir in $(SUBDIRS); do \ + @set -e; for subdir in $(SUBDIRS-y); do \ $(MAKE) -C $$subdir $@; \ done $(MAKE) ioemu .PHONY: install install: check - @set -e; for subdir in $(SUBDIRS); do \ + @set -e; for subdir in $(SUBDIRS-y); do \ $(MAKE) -C $$subdir $@; \ done $(MAKE) ioemuinstall @@ -41,7 +40,7 @@ install: check .PHONY: clean clean: check_clean - @set -e; for subdir in $(SUBDIRS); do \ + @set -e; for subdir in $(SUBDIRS-y); do \ $(MAKE) -C $$subdir $@; \ done $(MAKE) ioemuclean @@ -55,7 +54,7 @@ check_clean: $(MAKE) -C check clean .PHONY: ioemu ioemuinstall ioemuclean -ifndef XEN_NO_IOEMU +ifdef CONFIG_IOEMU ioemu ioemuinstall ioemuclean: [ -f ioemu/config-host.h ] || \ (cd ioemu; sh ./configure --prefix=usr) diff --git a/tools/Rules.mk b/tools/Rules.mk index 0b83f77b2d..bb6cdaf286 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -5,6 +5,8 @@ all: include $(XEN_ROOT)/Config.mk +CONFIG_$(shell uname -s) := y + XEN_XC = $(XEN_ROOT)/tools/python/xen/lowlevel/xc XEN_LIBXC = $(XEN_ROOT)/tools/libxc XEN_XENSTORE = $(XEN_ROOT)/tools/xenstore diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index 43a8f4ab5d..2adbf61928 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -10,43 +10,30 @@ MINOR = 0 XEN_ROOT = ../.. include $(XEN_ROOT)/tools/Rules.mk -SRCS := -SRCS += xc_bvtsched.c -SRCS += xc_core.c -SRCS += xc_domain.c -SRCS += xc_evtchn.c -SRCS += xc_misc.c -SRCS += xc_acm.c -SRCS += xc_physdev.c -SRCS += xc_private.c -SRCS += xc_sedf.c -SRCS += xc_csched.c -SRCS += xc_tbuf.c - -ifeq ($(patsubst x86%,x86,$(XEN_TARGET_ARCH)),x86) -SRCS += xc_ptrace.c -SRCS += xc_ptrace_core.c -SRCS += xc_pagetab.c -endif - -SRCS_Linux += xc_linux.c - -SRCS += $(SRCS_Linux) - -BUILD_SRCS := -BUILD_SRCS += xc_linux_build.c -BUILD_SRCS += xc_load_bin.c -BUILD_SRCS += xc_load_elf.c -BUILD_SRCS += xg_private.c - -ifeq ($(XEN_TARGET_ARCH),ia64) -BUILD_SRCS += xc_ia64_stubs.c -else -BUILD_SRCS += xc_load_aout9.c -BUILD_SRCS += xc_linux_restore.c -BUILD_SRCS += xc_linux_save.c -BUILD_SRCS += xc_hvm_build.c -endif +CTRL_SRCS-y := +CTRL_SRCS-y += xc_bvtsched.c +CTRL_SRCS-y += xc_core.c +CTRL_SRCS-y += xc_domain.c +CTRL_SRCS-y += xc_evtchn.c +CTRL_SRCS-y += xc_misc.c +CTRL_SRCS-y += xc_acm.c +CTRL_SRCS-y += xc_physdev.c +CTRL_SRCS-y += xc_private.c +CTRL_SRCS-y += xc_sedf.c +CTRL_SRCS-y += xc_csched.c +CTRL_SRCS-y += xc_tbuf.c +CTRL_SRCS-$(CONFIG_X86) += xc_ptrace.c xc_ptrace_core.c xc_pagetab.c +CTRL_SRCS-$(CONFIG_Linux) += xc_linux.c + +GUEST_SRCS-y := +GUEST_SRCS-y += xc_linux_build.c +GUEST_SRCS-y += xc_load_bin.c +GUEST_SRCS-y += xc_load_elf.c +GUEST_SRCS-y += xg_private.c +GUEST_SRCS-$(CONFIG_IA64) += xc_ia64_stubs.c +GUEST_SRCS-$(CONFIG_PLAN9) += xc_load_aout9.c +GUEST_SRCS-$(CONFIG_MIGRATE) += xc_linux_restore.c xc_linux_save.c +GUEST_SRCS-$(CONFIG_HVM) += xc_hvm_build.c CFLAGS += -Werror CFLAGS += -fno-strict-aliasing @@ -61,11 +48,11 @@ CFLAGS += -Wp,-MD,.$(@F).d LDFLAGS += -L. DEPS = .*.d -LIB_OBJS := $(patsubst %.c,%.o,$(SRCS)) -PIC_OBJS := $(patsubst %.c,%.opic,$(SRCS)) +CTRL_LIB_OBJS := $(patsubst %.c,%.o,$(CTRL_SRCS-y)) +CTRL_PIC_OBJS := $(patsubst %.c,%.opic,$(CTRL_SRCS-y)) -LIB_BUILD_OBJS := $(patsubst %.c,%.o,$(BUILD_SRCS)) -PIC_BUILD_OBJS := $(patsubst %.c,%.opic,$(BUILD_SRCS)) +GUEST_LIB_OBJS := $(patsubst %.c,%.o,$(GUEST_SRCS-y)) +GUEST_PIC_OBJS := $(patsubst %.c,%.opic,$(GUEST_SRCS-y)) LIB := libxenctrl.a LIB += libxenctrl.so libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR).$(MINOR) @@ -125,7 +112,7 @@ rpm: build # libxenctrl -libxenctrl.a: $(LIB_OBJS) +libxenctrl.a: $(CTRL_LIB_OBJS) $(AR) rc $@ $^ libxenctrl.so: libxenctrl.so.$(MAJOR) @@ -133,12 +120,12 @@ libxenctrl.so: libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR): libxenctrl.so.$(MAJOR).$(MINOR) ln -sf $< $@ -libxenctrl.so.$(MAJOR).$(MINOR): $(PIC_OBJS) +libxenctrl.so.$(MAJOR).$(MINOR): $(CTRL_PIC_OBJS) $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenctrl.so.$(MAJOR) -shared -o $@ $^ # libxenguest -libxenguest.a: $(LIB_BUILD_OBJS) +libxenguest.a: $(GUEST_LIB_OBJS) $(AR) rc $@ $^ libxenguest.so: libxenguest.so.$(MAJOR) @@ -146,7 +133,7 @@ libxenguest.so: libxenguest.so.$(MAJOR) libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR) ln -sf $< $@ -libxenguest.so.$(MAJOR).$(MINOR): $(PIC_BUILD_OBJS) libxenctrl.so +libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenguest.so.$(MAJOR) -shared -o $@ $^ -lz -lxenctrl -include $(DEPS) diff --git a/tools/libxc/xc_core.c b/tools/libxc/xc_core.c index 04f1b7867b..c5ddeb37ec 100644 --- a/tools/libxc/xc_core.c +++ b/tools/libxc/xc_core.c @@ -1,6 +1,4 @@ #include "xg_private.h" -#define ELFSIZE 32 -#include "xc_elf.h" #include <stdlib.h> #include <unistd.h> diff --git a/tools/libxc/xc_hvm_build.c b/tools/libxc/xc_hvm_build.c index 3cf9d276cd..135b0f0736 100644 --- a/tools/libxc/xc_hvm_build.c +++ b/tools/libxc/xc_hvm_build.c @@ -2,9 +2,9 @@ * xc_hvm_build.c */ +#define ELFSIZE 32 #include <stddef.h> #include "xg_private.h" -#define ELFSIZE 32 #include "xc_elf.h" #include <stdlib.h> #include <unistd.h> diff --git a/tools/libxc/xc_linux_build.c b/tools/libxc/xc_linux_build.c index 260b03d33e..1db2d904d3 100644 --- a/tools/libxc/xc_linux_build.c +++ b/tools/libxc/xc_linux_build.c @@ -6,14 +6,6 @@ #include "xc_private.h" #include <xenctrl.h> -#if defined(__i386__) -#define ELFSIZE 32 -#endif - -#if defined(__x86_64__) || defined(__ia64__) -#define ELFSIZE 64 -#endif - #include "xc_elf.h" #include "xc_aout9.h" #include <stdlib.h> diff --git a/tools/libxc/xc_load_elf.c b/tools/libxc/xc_load_elf.c index 0c60f683cd..89396efd14 100644 --- a/tools/libxc/xc_load_elf.c +++ b/tools/libxc/xc_load_elf.c @@ -3,14 +3,6 @@ */ #include "xg_private.h" - -#if defined(__i386__) -#define ELFSIZE 32 -#endif -#if defined(__x86_64__) || defined(__ia64__) -#define ELFSIZE 64 -#endif - #include "xc_elf.h" #include <stdlib.h> diff --git a/tools/libxc/xg_private.c b/tools/libxc/xg_private.c index b94f74f273..083aafa7e6 100644 --- a/tools/libxc/xg_private.c +++ b/tools/libxc/xg_private.c @@ -145,3 +145,18 @@ unsigned long csum_page(void *page) return sum ^ (sum>>32); } + +__attribute__((weak)) int xc_hvm_build( + int xc_handle, + uint32_t domid, + int memsize, + const char *image_name, + unsigned int vcpus, + unsigned int pae, + unsigned int acpi, + unsigned int apic, + unsigned int store_evtchn, + unsigned long *store_mfn) +{ + return -ENOSYS; +} diff --git a/tools/libxc/xg_private.h b/tools/libxc/xg_private.h index 99c9d0ff7c..8fbf047d17 100644 --- a/tools/libxc/xg_private.h +++ b/tools/libxc/xg_private.h @@ -25,6 +25,14 @@ #define DECLARE_DOM0_OP dom0_op_t op #endif +#ifndef ELFSIZE +#include <limits.h> +#if UINT_MAX == ULONG_MAX +#define ELFSIZE 32 +#else +#define ELFSIZE 64 +#endif +#endif char *xc_read_image(const char *filename, unsigned long *size); char *xc_inflate_buffer(const char *in_buf, diff --git a/tools/misc/Makefile b/tools/misc/Makefile index eb110d7e2b..6d1944a37f 100644 --- a/tools/misc/Makefile +++ b/tools/misc/Makefile @@ -25,7 +25,7 @@ all: build build: $(TARGETS) $(MAKE) -C miniterm $(MAKE) -C cpuperf -ifneq ($(XEN_TARGET_ARCH),ia64) +ifeq ($(CONFIG_MBOOTPACK),y) $(MAKE) -C mbootpack endif $(MAKE) -C lomount diff --git a/xen/tools/Makefile b/xen/tools/Makefile index 70a37092db..1609289c47 100644 --- a/xen/tools/Makefile +++ b/xen/tools/Makefile @@ -1,5 +1,6 @@ -include $(BASEDIR)/../Config.mk +XEN_ROOT = $(BASEDIR)/.. +include $(XEN_ROOT)/Config.mk .PHONY: default default: diff --git a/xen/tools/figlet/Makefile b/xen/tools/figlet/Makefile index cc44294dad..8b649375cd 100644 --- a/xen/tools/figlet/Makefile +++ b/xen/tools/figlet/Makefile @@ -1,5 +1,6 @@ -include $(BASEDIR)/../Config.mk +XEN_ROOT = $(BASEDIR)/.. +include $(XEN_ROOT)/Config.mk figlet: figlet.c $(HOSTCC) -o $@ $< |