ia64/xen-unstable

view extras/mini-os/arch/ia64/Makefile @ 17042:a905c582a406

Add stubdomain support. See stubdom/README for usage details.

- Move PAGE_SIZE and STACK_SIZE into __PAGE_SIZE and __STACK_SIZE in
arch_limits.h so as to permit getting them from there without
pulling all the internal Mini-OS defines.
- Setup a xen-elf cross-compilation environment in stubdom/cross-root
- Add a POSIX layer on top of Mini-OS by linking against the newlib C
library and lwIP, and implementing the Unixish part in mini-os/lib/sys.c
- Cross-compile zlib and libpci too.
- Add an xs.h-compatible layer on top of Mini-OS' xenbus.
- Cross-compile libxc with an additional xc_minios.c and a few things
disabled.
- Cross-compile ioemu with an additional block-vbd, but without sound,
tpm and other details. A few hacks are needed:
- Align ide and scsi buffers at least on sector size to permit
direct transmission to the block backend. While we are at it, just
page-align it to possibly save a segment. Also, limit the scsi
buffer size because of limitations of the block paravirtualization
protocol.
- Allocate big tables dynamically rather that letting them go to
bss: when Mini-OS gets installed in memory, bss is not lazily
allocated, and doing so during Mini-OS is unnecessarily trick while
we can simply use malloc.
- Had to change the Mini-OS compilation somehow, so as to export
Mini-OS compilation flags to the Makefiles of libxc and ioemu.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Feb 12 14:35:39 2008 +0000 (2008-02-12)
parents 01e178f7ec6d
children 7e00ebe2b7fd
line source
1 #
2 # Special makefile for ia64.
3 #
5 XEN_ROOT = ../../../..
6 include $(XEN_ROOT)/Config.mk
8 include ../../Config.mk
10 include arch.mk
11 include ../../minios.mk
13 ARCH_SRCS := sal.c
14 ARCH_SRCS += efi.c
15 ARCH_SRCS += time.c
16 ARCH_SRCS += ivt.S
17 ARCH_SRCS += fw.S
18 ARCH_SRCS += common.c
19 ARCH_SRCS += time.c
20 ARCH_SRCS += mm.c
21 ARCH_SRCS += debug.c
22 ARCH_SRCS += sched.c
23 ARCH_SRCS += xencomm.c
24 ARCH_SRCS += __umoddi3.S
25 ARCH_SRCS += __udivdi3.S
26 ARCH_SRCS += __divdi3.S
28 ARCH_OBJS := sal.o
29 ARCH_OBJS += efi.o
30 ARCH_OBJS += time.o
31 ARCH_OBJS += ivt.o
32 ARCH_OBJS += fw.o
33 ARCH_OBJS += common.o
34 ARCH_OBJS += time.o
35 ARCH_OBJS += mm.o
36 ARCH_OBJS += debug.o
37 ARCH_OBJS += sched.o
38 ARCH_OBJS += xencomm.o
39 ARCH_OBJS += __umoddi3.o
40 ARCH_OBJS += __udivdi3.o
41 ARCH_OBJS += __udivsi3.o
42 ARCH_OBJS += __divdi3.o
44 GEN_OFF_SRC := gen_off.c
45 GEN_OFF_ASM := gen_off.s
46 GEN_OFF_H := $(MINI-OS_ROOT)/include/$(ARCH_INC)/offsets.h
48 all: $(ARCH_LIB)
50 $(GEN_OFF_ASM): $(GEN_OFF_SRC)
51 $(CC) -S -o $@ $(CPPFLAGS) $<
53 $(GEN_OFF_H): $(GEN_OFF_ASM)
54 sed -ne "/^->/ {s/->/#define /; p}" < $< > $@
56 $(ARCH_LIB): $(GEN_OFF_H) $(ARCH_OBJS) $(HEAD_ARCH_OBJ)
57 $(AR) rv $(ARCH_LIB) $(ARCH_OBJS)
59 clean:
60 rm -f $(ARCH_LIB) $(ARCH_OBJS) $(HEAD_ARCH_OBJ)
61 rm -f $(GEN_OFF_ASM)
62 rm -f $(GEN_OFF_H)