]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/bootstrap/server/src/ARCH-x86/bootstrap.ld.in
update
[l4.git] / l4 / pkg / bootstrap / server / src / ARCH-x86 / bootstrap.ld.in
1
2 #include "ldscript.inc"
3
4 ENTRY(_start)
5
6 PHDRS {
7   data PT_LOAD;
8 #ifdef IMAGE_MODE
9   mods PT_LOAD;
10 #endif
11 }
12
13 SECTIONS
14 {
15 #ifdef ARCH_amd64
16   . = LINKADDR + SIZEOF_HEADERS;
17 #else
18   . = LINKADDR;
19 #endif
20
21   /* Merge .text, .rodata, and .data in one segment to save space */
22   .data :
23   {
24     *(.init)
25     *(.text .text.* .gnu.linkonce.t*)
26     *(.rodata*)
27     . = ALIGN(8);
28     *(.data)
29     *(.data.*)
30
31     CTORS
32     PLATFORMS
33
34     _module_info_start = .;
35     *(.module_info)
36     _module_info_end = .;
37
38     . = ALIGN(4096);
39     _modules_start = .;
40     *(.module.data)
41     . = ALIGN(4096);
42     _modules_end = .;
43     
44   } : data
45   _edata  =  .;
46   PROVIDE (edata = .);
47   . = ALIGN(4096);
48   __bss_start = .;
49   .bss :
50   {
51    *(.bss)
52    *(COMMON)
53    *(.bss_memmap)
54   } : data
55   _end = . ;
56   PROVIDE (end = .);
57
58 /* Only move modules to modaddr if bootstrap is being loaded by an elf
59  * loader, and we do not need to copy images around at runtime (e.g. with
60  * compression) */
61 #ifdef IMAGE_MODE
62 #if defined(PLACE_MODULES_AT_MODADDR) && !defined(SINGLE_SECTION)
63   . = RAM_BASE + MODADDR;
64 #endif
65   _module_data_start = .;
66   .module_data : { *(.module_data) } : mods
67   _module_data_end = .;
68 #endif
69
70   /DISCARD/ : {
71     *(.interp)
72     *(.comment)
73     *(.note)
74     *(.eh_frame)
75     *(.stab)
76     *(.stabstr)
77     *(.fini)
78   }
79 }