aboutsummaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-05-26 13:23:18 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-05-26 13:23:18 +0100
commit165bf6f0bdfb5ae16fd768822fc0f28517d2fa34 (patch)
treeb9ac53f608b2b03e4d1cb32a706cfb68425bfa4e /extras
parent1fa74a12d289d6300667217edf43ffb1c094ca5b (diff)
downloadxen-165bf6f0bdfb5ae16fd768822fc0f28517d2fa34.tar.gz
xen-165bf6f0bdfb5ae16fd768822fc0f28517d2fa34.tar.bz2
xen-165bf6f0bdfb5ae16fd768822fc0f28517d2fa34.zip
[MINIOS] Allows the use of a C library without modifying Mini-OS source files.
From: John Ramsdell Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'extras')
-rw-r--r--extras/mini-os/Makefile9
-rw-r--r--extras/mini-os/lib/printf.c4
-rw-r--r--extras/mini-os/lib/string.c4
3 files changed, 12 insertions, 5 deletions
diff --git a/extras/mini-os/Makefile b/extras/mini-os/Makefile
index 63cd9e8079..e92681c1ab 100644
--- a/extras/mini-os/Makefile
+++ b/extras/mini-os/Makefile
@@ -13,6 +13,7 @@ CFLAGS += -Wstrict-prototypes -Wnested-externs -Wpointer-arith -Winline
override CPPFLAGS := -Iinclude $(CPPFLAGS)
ASFLAGS = -D__ASSEMBLY__
+LDLIBS = -L. -lminios
LDFLAGS := -N -T minios-$(TARGET_ARCH).lds
ifeq ($(TARGET_ARCH),x86_32)
@@ -55,11 +56,11 @@ default: $(TARGET)
links:
[ -e include/xen ] || ln -sf ../../../xen/include/public include/xen
-libminios.a: $(OBJS) $(HEAD)
- ar r libminios.a $(HEAD) $(OBJS)
+libminios.a: links $(OBJS) $(HEAD)
+ $(AR) r libminios.a $(HEAD) $(OBJS)
-$(TARGET): links libminios.a $(HEAD)
- $(LD) $(LDFLAGS) $(HEAD) -L. -lminios -o $@.elf
+$(TARGET): libminios.a $(HEAD)
+ $(LD) $(LDFLAGS) $(HEAD) $(LDLIBS) -o $@.elf
gzip -f -9 -c $@.elf >$@.gz
.PHONY: clean
diff --git a/extras/mini-os/lib/printf.c b/extras/mini-os/lib/printf.c
index bb81c7b028..676f4e74a1 100644
--- a/extras/mini-os/lib/printf.c
+++ b/extras/mini-os/lib/printf.c
@@ -54,6 +54,8 @@
* $FreeBSD: src/sys/libkern/divdi3.c,v 1.6 1999/08/28 00:46:31 peter Exp $
*/
+#if !defined HAVE_LIBC
+
#include <os.h>
#include <types.h>
#include <hypervisor.h>
@@ -789,4 +791,4 @@ int sscanf(const char * buf, const char * fmt, ...)
return i;
}
-
+#endif
diff --git a/extras/mini-os/lib/string.c b/extras/mini-os/lib/string.c
index 82b91e15ae..1b99f43a46 100644
--- a/extras/mini-os/lib/string.c
+++ b/extras/mini-os/lib/string.c
@@ -18,6 +18,8 @@
****************************************************************************
*/
+#if !defined HAVE_LIBC
+
#include <os.h>
#include <types.h>
#include <lib.h>
@@ -153,3 +155,5 @@ char * strstr(const char * s1,const char * s2)
}
return NULL;
}
+
+#endif