ia64/xen-unstable

diff extras/mini-os/arch/ia64/minios-ia64.lds @ 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 ac18d251df63
children 681cfd0eda78
line diff
     1.1 --- a/extras/mini-os/arch/ia64/minios-ia64.lds	Tue Feb 12 11:37:45 2008 +0000
     1.2 +++ b/extras/mini-os/arch/ia64/minios-ia64.lds	Tue Feb 12 14:35:39 2008 +0000
     1.3 @@ -40,6 +40,18 @@ SECTIONS
     1.4    .rodata.str1.8 : AT(ADDR(.rodata.str1.8) - (((5<<(61))+0x100000000) - (1 << 20)))
     1.5    { *(.rodata.str1.8) }
     1.6  
     1.7 +  /* newlib initialization functions */
     1.8 +  . = ALIGN(64 / 8);
     1.9 +  PROVIDE (__preinit_array_start = .);
    1.10 +  .preinit_array     : { *(.preinit_array) }
    1.11 +  PROVIDE (__preinit_array_end = .);
    1.12 +  PROVIDE (__init_array_start = .);
    1.13 +  .init_array     : { *(.init_array) }
    1.14 +  PROVIDE (__init_array_end = .);
    1.15 +  PROVIDE (__fini_array_start = .);
    1.16 +  .fini_array     : { *(.fini_array) }
    1.17 +  PROVIDE (__fini_array_end = .);
    1.18 +
    1.19    .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - (((5<<(61))+0x100000000) - (1 << 20)))
    1.20    { *(.IA_64.unwind_info) }
    1.21