Subversion Repositories HelenOS

Rev

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

Rev 2996 Rev 3004
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
	}
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
	.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
37
	.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
33
		*(.plt);
38
		*(.plt);
34
	} :text
39
	} :text
35
 
40
 
36
	.interp : {
-
 
37
		*(.interp);
-
 
38
	} :text
-
 
39
 
41
 
40
	.dynamic ALIGN(0x1000) : {
42
	.dynamic ALIGN(0x1000) : {
41
		*(.dynamic);
43
		*(.dynamic);
42
	} :text
44
	} :text
43
 
45
 
44
	.dynsym ALIGN(0x1000) : {
46
	.dynsym ALIGN(0x1000) : {
45
		*(.dynsym);
47
		*(.dynsym);
46
	} :text
48
	} :text
47
 
49
 
48
	.dynstr ALIGN(0x1000) : {
50
	.dynstr ALIGN(0x1000) : {
49
		*(.dynstr);
51
		*(.dynstr);
50
	} :text
52
	} :text
51
 
53
 
52
	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
54
	.data ALIGN(0x1000) : SUBALIGN(0x1000) {
53
		*(.data);
55
		*(.data);
54
	} :data
56
	} :data
55
 
57
 
56
	.data.rel ALIGN(0x1000) : {
58
	.data.rel ALIGN(0x1000) : {
57
                *(.data.rel);
59
                *(.data.rel);
58
	} :data
60
	} :data
59
 
61
 
60
	.got ALIGN(0x1000) : SUBALIGN(0x1000) {
62
	.got ALIGN(0x1000) : SUBALIGN(0x1000) {
61
                *(.got);
63
                *(.got);
62
	} :data
64
	} :data
63
	.got.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
65
	.got.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
64
                *(.got.plt);
66
                *(.got.plt);
65
	} :data
67
	} :data
66
 
68
 
67
	.bss : {
69
	.bss : {
68
                *(COMMON);
70
                *(COMMON);
69
                *(.bss);
71
                *(.bss);
70
	} :data
72
	} :data
71
 
73
 
72
/*	.tdata : {
74
/*	.tdata : {
73
		_tdata_start = .;
75
		_tdata_start = .;
74
		*(.tdata);
76
		*(.tdata);
75
		_tdata_end = .;
77
		_tdata_end = .;
76
	} :data
78
	} :data
77
	.tbss : {
79
	.tbss : {
78
		_tbss_start = .;
80
		_tbss_start = .;
79
		*(.tbss);
81
		*(.tbss);
80
		_tbss_end = .;
82
		_tbss_end = .;
81
	} :data
83
	} :data
82
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
84
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
83
*/	
85
*/	
84
	. = ALIGN(0x1000);
86
	. = ALIGN(0x1000);
85
	_heap = .;
87
	_heap = .;
86
 
88
 
87
}
89
}
88
 
90