Subversion Repositories HelenOS

Rev

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

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