ia64/xen-unstable

view extras/mini-os/arch/ia64/minios-ia64.lds @ 17471:681cfd0eda78

stubdom: sparse application's BSS by linking it separately first, put
markers at its beginning and end, and then link with mini-os.
That permits to stick a bit more to upstream qemu.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Wed Apr 16 10:05:57 2008 +0100 (2008-04-16)
parents a905c582a406
children e7eb66a4c5f7
line source
1 OUTPUT_FORMAT("elf64-ia64-little")
2 OUTPUT_ARCH(ia64)
4 ENTRY(phys_start)
6 PHDRS
7 {
8 code PT_LOAD;
9 data PT_LOAD;
10 }
12 SECTIONS
13 {
15 phys_start = _start - (((5<<(61))+0x100000000) - (1 << 20));
17 code : { } :code
18 . = ((5<<(61))+0x100000000);
20 _text = .;
22 .text : AT(ADDR(.text) - (((5<<(61))+0x100000000) - (1 << 20)))
23 {
24 *(.text)
25 }
27 _etext = .;
29 data : { } :data
30 .data : AT(ADDR(.data) - (((5<<(61))+0x100000000) - (1 << 20)))
31 { *(.data)
32 }
34 .sdata : AT(ADDR(.sdata) - (((5<<(61))+0x100000000) - (1 << 20)))
35 { *(.sdata) *(.sdata1) *(.srdata) }
37 .rodata : AT(ADDR(.rodata) - (((5<<(61))+0x100000000) - (1 << 20)))
38 { *(.rodata) }
40 .rodata.str1.8 : AT(ADDR(.rodata.str1.8) - (((5<<(61))+0x100000000) - (1 << 20)))
41 { *(.rodata.str1.8) }
43 /* newlib initialization functions */
44 . = ALIGN(64 / 8);
45 PROVIDE (__preinit_array_start = .);
46 .preinit_array : { *(.preinit_array) }
47 PROVIDE (__preinit_array_end = .);
48 PROVIDE (__init_array_start = .);
49 .init_array : { *(.init_array) }
50 PROVIDE (__init_array_end = .);
51 PROVIDE (__fini_array_start = .);
52 .fini_array : { *(.fini_array) }
53 PROVIDE (__fini_array_end = .);
55 .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - (((5<<(61))+0x100000000) - (1 << 20)))
56 { *(.IA_64.unwind_info) }
58 .IA_64.unwind : AT(ADDR(.IA_64.unwind) - (((5<<(61))+0x100000000) - (1 << 20)))
59 { *(.IA_64.unwind) }
61 .bss : AT(ADDR(.bss) - (((5<<(61))+0x100000000) - (1 << 20)))
62 {
63 *(.bss)
64 *(.app.bss)
65 }
67 _end = .;
69 }