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