Subversion Repositories HelenOS

Rev

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

Rev 2996 Rev 3423
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
	interp PT_INTERP;
5
	text PT_LOAD FLAGS(5);
6
	text PT_LOAD FLAGS(5);
6
	data PT_LOAD FLAGS(6);
7
	data PT_LOAD FLAGS(6);
7
}
8
}
8
 
9
 
9
SECTIONS {
10
SECTIONS {
-
 
11
	.interp : {
-
 
12
		*(.interp);
-
 
13
	} :interp
-
 
14
 
10
	. = 0x1000;
15
	. = 0x1000;
11
 
16
 
12
	.init ALIGN(0x1000) : SUBALIGN(0x1000) {
17
	.init ALIGN(0x1000) : SUBALIGN(0x1000) {
13
		*(.init);
18
		*(.init);
14
	} :text
19
	} :text
15
	.text : {
20
	.text : {
16
		*(.text);
21
		*(.text);
17
		*(.text.*);
22
		*(.text.*);
18
		*(.rodata*);
23
		*(.rodata*);
19
	} :text
24
	} :text
20
 
25
 
21
	.rel.plt ALIGN(0x1000) : {
26
	.rel.plt ALIGN(0x1000) : {
22
		*(.rel.plt);
27
		*(.rel.plt);
23
	}
28
	} :text
24
	/* 
29
	/* 
25
	 *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt 
30
	 *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt 
26
	 * without alignment gap or DT_REL will be broken
31
	 * without alignment gap or DT_REL will be broken
27
	 */
32
	 */
28
	.rel.dyn : {
33
	.rel.dyn : {
29
		*(.rel.*);
34
		*(.rel.*);
30
	} :text
35
	} :text
31
 
36
 
32
	.interp : {
-
 
33
		*(.interp);
-
 
34
	}
-
 
35
 
-
 
36
	.dynamic ALIGN(0x1000) : {
37
	.dynamic ALIGN(0x1000) : {
37
		*(.dynamic);
38
		*(.dynamic);
38
	} :text
39
	} :text
39
 
40
 
40
	.dynsym ALIGN(0x1000) : {
41
	.dynsym ALIGN(0x1000) : {
41
		*(.dynsym);
42
		*(.dynsym);
42
	} :text
43
	} :text
43
 
44
 
44
	.dynstr ALIGN(0x1000) : {
45
	.dynstr ALIGN(0x1000) : {
45
		*(.dynstr);
46
		*(.dynstr);
46
	} :text
47
	} :text
47
 
48
 
48
	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
49
	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
49
		*(.data);
50
		*(.data);
50
		*(.sdata);
51
		*(.sdata);
51
	} :data
52
	} :data
52
 
53
 
53
	.data.rel ALIGN(0x1000) : {
54
	.data.rel ALIGN(0x1000) : {
54
                *(.data.rel);
55
                *(.data.rel);
55
	} :data
56
	} :data
56
 
57
 
57
	.got ALIGN(0x1000) : SUBALIGN(0x1000) {
58
	.got ALIGN(0x1000) : SUBALIGN(0x1000) {
58
                *(.got);
59
                *(.got);
59
	} :data
60
	} :data
60
	.got.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
61
	.got.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
61
                *(.got.plt);
62
                *(.got.plt);
62
	} :data
63
	} :data
63
 
64
 
64
/*	.tdata : {
65
/*	.tdata : {
65
		_tdata_start = .;
66
		_tdata_start = .;
66
		*(.tdata);
67
		*(.tdata);
67
		_tdata_end = .;
68
		_tdata_end = .;
68
	} :data
69
	} :data
69
	.tbss : {
70
	.tbss : {
70
		_tbss_start = .;
71
		_tbss_start = .;
71
		*(.tbss);
72
		*(.tbss);
72
		_tbss_end = .;
73
		_tbss_end = .;
73
	} :data
74
	} :data
74
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
75
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
75
*/
76
*/
76
	.bss : {
77
	.bss : {
77
		*(.sbss);
78
		*(.sbss);
78
		*(COMMON);
79
		*(COMMON);
79
		*(.bss);
80
		*(.bss);
80
	} :data
81
	} :data
81
 
82
 
82
	.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
83
	.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
83
		*(.plt);
84
		*(.plt);
84
	} :data
85
	} :data
85
 
86
 
86
	. = ALIGN(0x1000);
87
	. = ALIGN(0x1000);
87
	_heap = .;
88
	_heap = .;
88
}
89
}
89
 
90