Subversion Repositories HelenOS

Rev

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