Subversion Repositories HelenOS

Rev

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

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