Subversion Repositories HelenOS

Rev

Rev 3681 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3681 Rev 3682
1
STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
1
STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
2
ENTRY(__entry)
2
ENTRY(__entry)
3
 
3
 
4
PHDRS {
4
PHDRS {
5
	text PT_LOAD FLAGS(5);
5
	text PT_LOAD FLAGS(5);
6
	data PT_LOAD FLAGS(6);
6
	data PT_LOAD FLAGS(6);
7
}
7
}
8
 
8
 
9
SECTIONS {
9
SECTIONS {
10
	. = 0x40001000;
10
	. = 0x60001000;
11
 
11
 
12
	.init : {
12
	.init : {
13
		*(.init);
13
		*(.init);
14
	} :text
14
	} :text
15
	.text : {
15
	.text : {
16
		*(.text);
16
		*(.text);
17
		*(.rodata*);
17
		*(.rodata*);
18
	} :text
18
	} :text
19
	
19
	
20
	.rel.plt : {
20
	.rel.plt : {
21
		*(.rel.plt);
21
		*(.rel.plt);
22
	}
22
	}
23
	/* 
23
	/* 
24
	 *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt 
24
	 *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt 
25
	 * without alignment gap or DT_REL will be broken
25
	 * without alignment gap or DT_REL will be broken
26
	 */
26
	 */
27
	.rel.dyn : {
27
	.rel.dyn : {
28
		*(.rel.*);
28
		*(.rel.*);
29
	} :text
29
	} :text
30
 
30
 
31
	.dynamic : {
31
	.dynamic : {
32
		*(.dynamic);
32
		*(.dynamic);
33
	} :text
33
	} :text
34
 
34
 
35
	.dynsym : {
35
	.dynsym : {
36
		*(.dynsym);
36
		*(.dynsym);
37
	} :text
37
	} :text
38
 
38
 
39
	.dynstr : {
39
	.dynstr : {
40
		*(.dynstr);
40
		*(.dynstr);
41
	} :text
41
	} :text
42
 
42
 
43
	/* data segment */
43
	/* data segment */
44
	. = ALIGN(0x1000);
44
	. = ALIGN(0x1000);
45
 
45
 
46
	.data : {
46
	.data : {
47
		*(.data);
47
		*(.data);
48
		*(.sdata);
48
		*(.sdata);
49
	} :data
49
	} :data
50
 
50
 
51
	.dynamic : {
51
	.dynamic : {
52
		*(.dynamic);
52
		*(.dynamic);
53
	} :text
53
	} :text
54
 
54
 
55
	.dynsym : {
55
	.dynsym : {
56
		*(.dynsym);
56
		*(.dynsym);
57
	} :text
57
	} :text
58
 
58
 
59
	.dynstr : {
59
	.dynstr : {
60
		*(.dynstr);
60
		*(.dynstr);
61
	} :text
61
	} :text
62
 
62
 
63
	.tdata : {
63
	.tdata : {
64
		_tdata_start = .;
64
		_tdata_start = .;
65
		*(.tdata);
65
		*(.tdata);
66
		_tdata_end = .;
66
		_tdata_end = .;
67
	} :data
67
	} :data
68
	.tbss : {
68
	.tbss : {
69
		_tbss_start = .;
69
		_tbss_start = .;
70
		*(.tbss);
70
		*(.tbss);
71
		_tbss_end = .;
71
		_tbss_end = .;
72
	} :data
72
	} :data
73
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
73
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
74
	.bss : {
74
	.bss : {
75
		*(.sbss);
75
		*(.sbss);
76
		*(COMMON);
76
		*(COMMON);
77
		*(.bss);
77
		*(.bss);
78
	} :data
78
	} :data
79
 
79
 
80
	/* On ppc32 the plt section is uninitialized and must be here! */
80
	/* On ppc32 the plt section is uninitialized and must be here! */
81
	.plt : {
81
	.plt : {
82
		*(.plt);
82
		*(.plt);
83
	} :data
83
	} :data
84
 
84
 
85
	. = ALIGN(0x1000);
85
	. = ALIGN(0x1000);
86
	_heap = .;
86
	_heap = .;
87
}
87
}
88
 
88