aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-18 17:08:09 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-18 17:08:09 +0100
commit2db40abe9933c27ffbbc04d0fa9c9f38e795d973 (patch)
treef343d0ec6da209182f8d42a68c25a059af923db3
parentea847a59dc7db35e48d15faf01ca81ba982675c8 (diff)
downloadxen-2db40abe9933c27ffbbc04d0fa9c9f38e795d973.tar.gz
xen-2db40abe9933c27ffbbc04d0fa9c9f38e795d973.tar.bz2
xen-2db40abe9933c27ffbbc04d0fa9c9f38e795d973.zip
[OpenBSD] Various changes to get Xen building on OpenBSD.
Signed-off-by: Keir Fraser <keir@xensource.com>
-rw-r--r--config/Linux.mk33
-rw-r--r--config/OpenBSD.mk1
-rw-r--r--config/StdGNU.mk30
-rw-r--r--config/SunOS.mk2
-rw-r--r--config/x86_32.mk4
-rw-r--r--config/x86_64.mk4
-rw-r--r--xen/Rules.mk2
-rw-r--r--xen/common/vsprintf.c2
-rw-r--r--xen/drivers/char/console.c2
-rw-r--r--xen/include/xen/lib.h2
-rw-r--r--xen/include/xen/stdarg.h5
11 files changed, 49 insertions, 38 deletions
diff --git a/config/Linux.mk b/config/Linux.mk
index be9fab97df..52c2227996 100644
--- a/config/Linux.mk
+++ b/config/Linux.mk
@@ -1,35 +1,4 @@
-# -*- mode: Makefile; -*-
-
-AS = $(CROSS_COMPILE)as
-LD = $(CROSS_COMPILE)ld
-CC = $(CROSS_COMPILE)gcc
-CPP = $(CROSS_COMPILE)gcc -E
-AR = $(CROSS_COMPILE)ar
-RANLIB = $(CROSS_COMPILE)ranlib
-NM = $(CROSS_COMPILE)nm
-STRIP = $(CROSS_COMPILE)strip
-OBJCOPY = $(CROSS_COMPILE)objcopy
-OBJDUMP = $(CROSS_COMPILE)objdump
-
-INSTALL = install
-INSTALL_DIR = $(INSTALL) -d -m0755
-INSTALL_DATA = $(INSTALL) -m0644
-INSTALL_PROG = $(INSTALL) -m0755
-
-LIB64DIR = lib64
-
-SOCKET_LIBS =
-CURSES_LIBS = -lncurses
-SONAME_LDFLAG = -soname
-SHLIB_CFLAGS = -shared
-
-ifneq ($(debug),y)
-# Optimisation flags are overridable
-CFLAGS ?= -O2 -fomit-frame-pointer
-else
-# Less than -O1 produces bad code and large stack frames
-CFLAGS ?= -O1 -fno-omit-frame-pointer
-endif
+include $(XEN_ROOT)/config/StdGNU.mk
# You may use wildcards, e.g. KERNELS=*2.6*
KERNELS ?= linux-2.6-xen
diff --git a/config/OpenBSD.mk b/config/OpenBSD.mk
new file mode 100644
index 0000000000..b421a1c840
--- /dev/null
+++ b/config/OpenBSD.mk
@@ -0,0 +1 @@
+include $(XEN_ROOT)/config/StdGNU.mk
diff --git a/config/StdGNU.mk b/config/StdGNU.mk
new file mode 100644
index 0000000000..2b767517b8
--- /dev/null
+++ b/config/StdGNU.mk
@@ -0,0 +1,30 @@
+AS = $(CROSS_COMPILE)as
+LD = $(CROSS_COMPILE)ld
+CC = $(CROSS_COMPILE)gcc
+CPP = $(CROSS_COMPILE)gcc -E
+AR = $(CROSS_COMPILE)ar
+RANLIB = $(CROSS_COMPILE)ranlib
+NM = $(CROSS_COMPILE)nm
+STRIP = $(CROSS_COMPILE)strip
+OBJCOPY = $(CROSS_COMPILE)objcopy
+OBJDUMP = $(CROSS_COMPILE)objdump
+
+INSTALL = install
+INSTALL_DIR = $(INSTALL) -d -m0755
+INSTALL_DATA = $(INSTALL) -m0644
+INSTALL_PROG = $(INSTALL) -m0755
+
+LIB64DIR = lib64
+
+SOCKET_LIBS =
+CURSES_LIBS = -lncurses
+SONAME_LDFLAG = -soname
+SHLIB_CFLAGS = -shared
+
+ifneq ($(debug),y)
+# Optimisation flags are overridable
+CFLAGS ?= -O2 -fomit-frame-pointer
+else
+# Less than -O1 produces bad code and large stack frames
+CFLAGS ?= -O1 -fno-omit-frame-pointer
+endif
diff --git a/config/SunOS.mk b/config/SunOS.mk
index 638281a480..ca73d6f949 100644
--- a/config/SunOS.mk
+++ b/config/SunOS.mk
@@ -1,5 +1,3 @@
-# -*- mode: Makefile; -*-
-
AS = $(CROSS_COMPILE)gas
LD = $(CROSS_COMPILE)gld
CC = $(CROSS_COMPILE)gcc
diff --git a/config/x86_32.mk b/config/x86_32.mk
index 7e13463326..4a0490afa8 100644
--- a/config/x86_32.mk
+++ b/config/x86_32.mk
@@ -10,4 +10,8 @@ CFLAGS += -m32 -march=i686
LIBDIR := lib
# Use only if calling $(LD) directly.
+ifeq ($(XEN_OS),OpenBSD)
+LDFLAGS_DIRECT += -melf_i386_obsd
+else
LDFLAGS_DIRECT += -melf_i386
+endif
diff --git a/config/x86_64.mk b/config/x86_64.mk
index 3825caafd5..e85b37ff91 100644
--- a/config/x86_64.mk
+++ b/config/x86_64.mk
@@ -10,4 +10,8 @@ CFLAGS += -m64
LIBDIR = $(LIB64DIR)
# Use only if calling $(LD) directly.
+ifeq ($(XEN_OS),OpenBSD)
+LDFLAGS_DIRECT += -melf_x86_64_obsd
+else
LDFLAGS_DIRECT += -melf_x86_64
+endif
diff --git a/xen/Rules.mk b/xen/Rules.mk
index d333e563ce..08c26aca44 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -72,7 +72,7 @@ AFLAGS := $(strip $(AFLAGS) $(AFLAGS-y))
AFLAGS += $(patsubst -std=gnu%,,$(CFLAGS))
# LDFLAGS are only passed directly to $(LD)
-LDFLAGS += $(LDFLAGS_DIRECT)
+LDFLAGS := $(strip $(LDFLAGS) $(LDFLAGS_DIRECT))
include Makefile
diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c
index da82029195..7de43593fe 100644
--- a/xen/common/vsprintf.c
+++ b/xen/common/vsprintf.c
@@ -16,7 +16,7 @@
* - scnprintf and vscnprintf
*/
-#include <stdarg.h>
+#include <xen/stdarg.h>
#include <xen/ctype.h>
#include <xen/lib.h>
#include <asm/div64.h>
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index b43f8eafc7..78034b2753 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -6,7 +6,7 @@
* Copyright (c) 2002-2004, K A Fraser.
*/
-#include <stdarg.h>
+#include <xen/stdarg.h>
#include <xen/config.h>
#include <xen/version.h>
#include <xen/init.h>
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index 00bb0830e9..52509addd4 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -2,7 +2,7 @@
#define __LIB_H__
#include <xen/inttypes.h>
-#include <stdarg.h>
+#include <xen/stdarg.h>
#include <xen/config.h>
#include <xen/types.h>
#include <xen/xmalloc.h>
diff --git a/xen/include/xen/stdarg.h b/xen/include/xen/stdarg.h
new file mode 100644
index 0000000000..a9bdaca256
--- /dev/null
+++ b/xen/include/xen/stdarg.h
@@ -0,0 +1,5 @@
+#if defined(__OpenBSD__) || defined(__sun__)
+# include "/usr/include/stdarg.h"
+#else
+# include <stdarg.h>
+#endif