blob: 384c76c98e7de8c934c8f3f2194b8830ea91fcf8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
ENTRY(_start);
/* nb: when proving we will rebuild the memory model based on the first
pass' usages, so there is no cost for a "suboptimal" layout here */
SECTIONS
{
__memory_top = 0x80400000;
. = 0x1000;
.text : ALIGN(4)
{
KEEP(*(.init));
. = ALIGN(4);
KEEP(*(.init.rust));
*(.text .text.*);
}
. = ALIGN(8);
.data : ALIGN(4)
{
/* Must be called __global_pointer$ for linker relaxations to work. */
__global_pointer$ = . + 0x800;
*(.srodata .srodata.*);
*(.rodata .rodata.*);
*(.sdata .sdata.* .sdata2 .sdata2.*);
*(.data .data.*);
/* this is used by the global allocator (see:src/lib.rs) */
. = ALIGN(4);
_heap = .;
LONG(_ebss);
}
.bss (NOLOAD) : ALIGN(4)
{
*(.sbss .sbss.* .bss .bss.*);
. = ALIGN(4);
_ebss = .;
_end = .;
}
/DISCARD/ :
{
*(.comment*)
*(.debug*)
}
/* Stack unwinding is not supported, but we will keep these for now */
.eh_frame (INFO) : { KEEP(*(.eh_frame)) }
.eh_frame_hdr (INFO) : { *(.eh_frame_hdr) }
}
ASSERT(. < __memory_top, "Program is too large for the VM memory.");
|