Rev 3425 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3425 | Rev 4377 | ||
---|---|---|---|
1 | /* |
1 | /* |
2 | * The only difference from _link.ld.in for regular statically-linked apps |
2 | * The only difference from _link.ld.in for regular statically-linked apps |
3 | * is the base address. |
3 | * is the base address. |
4 | */ |
4 | */ |
5 | STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o) |
5 | STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o) |
6 | ENTRY(__entry) |
6 | ENTRY(__entry) |
7 | 7 | ||
8 | PHDRS { |
8 | PHDRS { |
9 | interp PT_INTERP; |
9 | interp PT_INTERP; |
10 | text PT_LOAD FLAGS(5); |
10 | text PT_LOAD FLAGS(5); |
11 | data PT_LOAD FLAGS(6); |
11 | data PT_LOAD FLAGS(6); |
12 | } |
12 | } |
13 | 13 | ||
14 | SECTIONS { |
14 | SECTIONS { |
15 | .interp : { |
15 | .interp : { |
16 | *(.interp); |
16 | *(.interp); |
17 | } :interp |
17 | } :interp |
18 | 18 | ||
19 | . = 0x70004000; |
19 | . = 0x70004000; |
20 | 20 | ||
21 | .init ALIGN(0x4000) : SUBALIGN(0x4000) { |
21 | .init ALIGN(0x4000) : SUBALIGN(0x4000) { |
22 | *(.init); |
22 | *(.init); |
23 | } :text |
23 | } :text |
24 | .text : { |
24 | .text : { |
25 | *(.text); |
25 | *(.text); |
26 | *(.rodata*); |
26 | *(.rodata*); |
27 | } :text |
27 | } :text |
28 | 28 | ||
29 | .data : { |
29 | .data : { |
30 | *(.data); |
30 | *(.data); |
31 | *(.data.rel*); |
31 | *(.data.rel*); |
32 | } :data |
32 | } :data |
33 | 33 | ||
34 | .got : { |
34 | .got : { |
35 | _gp = .; |
35 | _gp = .; |
36 | *(.got); |
36 | *(.got); |
37 | } :data |
37 | } :data |
38 | 38 | ||
39 | .tdata : { |
39 | .tdata : { |
40 | _tdata_start = .; |
40 | _tdata_start = .; |
41 | *(.tdata); |
41 | *(.tdata); |
42 | _tdata_end = .; |
42 | _tdata_end = .; |
43 | } :data |
43 | } :data |
44 | .tbss : { |
44 | .tbss : { |
45 | _tbss_start = .; |
45 | _tbss_start = .; |
46 | *(.tbss); |
46 | *(.tbss); |
47 | _tbss_end = .; |
47 | _tbss_end = .; |
48 | } :data |
48 | } :data |
49 | _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)); |
49 | _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)); |
50 | 50 | ||
51 | .sbss : { |
51 | .sbss : { |
52 | *(.scommon); |
52 | *(.scommon); |
53 | *(.sbss); |
53 | *(.sbss); |
54 | } |
54 | } |
55 | .bss : { |
55 | .bss : { |
56 | *(.bss); |
56 | *(.bss); |
57 | *(COMMON); |
57 | *(COMMON); |
58 | } :data |
58 | } :data |
59 | 59 | ||
60 | . = ALIGN(0x4000); |
60 | . = ALIGN(0x4000); |
61 | _heap = .; |
61 | _heap = .; |
62 | 62 | ||
63 | /DISCARD/ : { |
63 | /DISCARD/ : { |
64 | *(*); |
64 | *(*); |
65 | } |
65 | } |
66 | } |
66 | } |
67 | 67 |