libroot_debug: Merge guarded heap into libroot_debug.
[haiku.git] / src / system / ldscripts / arm / boot_loader_raspberrypi_arm.ld
blobea8f7aa1c367c937defa539fcfd9185e2db2de28
1 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
2 OUTPUT_ARCH(arm)
3 ENTRY(_entry)
5 C_STACK_SIZE    = 1048576;
6 IRQ_STACK_SIZE  = 0;
7 FIQ_STACK_SIZE  = 0;
8 SVC_STACK_SIZE  = 0;
9 ABT_STACK_SIZE  = 0;
10 UND_STACK_SIZE  = 0;
12 SECTIONS
14         /*
15          * Raspberry Pi boot logic:
16          * start.elf loads the kernel specified in config.txt
17          * if a dtb exists, it is loaded at 0x100 and the kernel at 0x8000
18          * else if disable_commandline_tags true, set kernel load address to 0x0
19          * else load kernel at 0x8000 and put atags at 0x100
20          */
22         . = BOARD_LOADER_BASE;
24         /* .init is a stub that jumps to code at .text */
25         .init : {
26                 *(.init)
27         }
29         .text 0x8000 : {
30                 CREATE_OBJECT_SYMBOLS
31                 *(.text .text.* .gnu.linkonce.t.*)
32                 *(.plt)
33                 *(.gnu.warning)
34         }
36         . = ALIGN(0x4);
37         .ctors : {
38                 __ctor_list = .;
39                 *(.init_array);
40                 *(.ctors);
41                 __ctor_end = .;
42         }
44         .dtors : {
45                 __dtor_list = .;
46                 *(.fini_array);
47                 *(.dtors);
48                 __dtor_end = .;
49         }
51         .rodata : { *(.rodata .rodata.*) }
53         /* writable data  */
54         . = ALIGN(0x1000);
55         __data_start = .;
56         .data : { *(.data .gnu.linkonce.d.*) }
58         /* exception unwinding - should really not be needed! */
59         __exidx_start = .;
60         .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
61         __exidx_end = .;
63         /* uninitialized data (in same segment as writable data) */
64         .bss : {
65                 __bss_start = .;
66                 *(.shbss)
67                 *(.bss .bss.* .gnu.linkonce.b.*)
68                 *(COMMON)
69                 . = ALIGN(0x4);
70                 __bss_end = .;
71         }
73         .stack : {
74                 __stack_start = .;
76                 . += IRQ_STACK_SIZE;
77                 . = ALIGN(0x4);
78                 __irq_stack_top = .;
80                 . += FIQ_STACK_SIZE;
81                 . = ALIGN(0x4);
82                 __fiq_stack_top = .;
84                 . += SVC_STACK_SIZE;
85                 . = ALIGN(0x4);
86                 __svc_stack_top = .;
88                 . += ABT_STACK_SIZE;
89                 . = ALIGN(0x4);
90                 __abt_stack_top = .;
92                 . += UND_STACK_SIZE;
93                 . = ALIGN(0x4);
94                 __und_stack_top = .;
96                 . += C_STACK_SIZE;
97                 . = ALIGN(0x4);
98                 __c_stack_top = .;
100                 __stack_end = .;
101         }
103         _end = . ;
105         /* Stabs debugging sections.  */
106         .stab 0 : { *(.stab) }
107         .stabstr 0 : { *(.stabstr) }
109         /* DWARF debug sections.
110                 Symbols in the DWARF debugging sections are relative to the beginning
111                 of the section so we begin them at 0.  */
112         /* DWARF 1 */
113         .debug          0 : { *(.debug) }
114         .line           0 : { *(.line) }
115         /* GNU DWARF 1 extensions */
116         .debug_srcinfo  0 : { *(.debug_srcinfo) }
117         .debug_sfnames  0 : { *(.debug_sfnames) }
118         /* DWARF 1.1 and DWARF 2 */
119         .debug_aranges  0 : { *(.debug_aranges) }
120         .debug_pubnames 0 : { *(.debug_pubnames) }
121         /* DWARF 2 */
122         .debug_info     0 : { *(.debug_info) }
123         .debug_abbrev   0 : { *(.debug_abbrev) }
124         .debug_line     0 : { *(.debug_line) }
125         .debug_frame    0 : { *(.debug_frame) }
126         .debug_str      0 : { *(.debug_str) }
127         .debug_loc      0 : { *(.debug_loc) }
128         .debug_macinfo  0 : { *(.debug_macinfo) }
129         /* SGI/MIPS DWARF 2 extensions */
130         .debug_weaknames 0 : { *(.debug_weaknames) }
131         .debug_funcnames 0 : { *(.debug_funcnames) }
132         .debug_typenames 0 : { *(.debug_typenames) }
133         .debug_varnames  0 : { *(.debug_varnames) }
134         /* These must appear regardless of  .  */