Subversion Repositories HelenOS

Rev

Rev 3425 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3425 Rev 4377
1
/* 
1
/*
2
 * The only difference from _link.ld.in for regular statically-linked apps
2
 * The only difference from _link.ld.in for regular statically-linked apps
3
 * is the base address.
3
 * is the base address.
4
 */
4
 */
5
STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
5
STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
6
ENTRY(__entry)
6
ENTRY(__entry)
7
 
7
 
8
PHDRS {
8
PHDRS {
9
	interp PT_INTERP;
9
	interp PT_INTERP;
10
	text PT_LOAD FLAGS(5);
10
	text PT_LOAD FLAGS(5);
11
	data PT_LOAD FLAGS(6);
11
	data PT_LOAD FLAGS(6);
12
}
12
}
13
 
13
 
14
SECTIONS {
14
SECTIONS {
15
	.interp : {
15
	.interp : {
16
		*(.interp);
16
		*(.interp);
17
	} :interp
17
	} :interp
18
 
18
 
19
	. = 0x70004000;
19
	. = 0x70004000;
20
	
20
	
21
	.init ALIGN(0x4000) : SUBALIGN(0x4000) {
21
	.init ALIGN(0x4000) : SUBALIGN(0x4000) {
22
		*(.init);
22
		*(.init);
23
	} :text
23
	} :text
24
	.text : {
24
	.text : {
25
	        *(.text);
25
	        *(.text);
26
		*(.rodata*);
26
		*(.rodata*);
27
	} :text
27
	} :text
28
 
28
 
29
	.data : {
29
	.data : {
30
		*(.data);
30
		*(.data);
31
		*(.data.rel*);
31
		*(.data.rel*);
32
	} :data
32
	} :data
33
 
33
 
34
	.got : {
34
	.got : {
35
		_gp = .;
35
		_gp = .;
36
		*(.got);
36
		*(.got);
37
	} :data
37
	} :data
38
 
38
 
39
	.tdata : {
39
	.tdata : {
40
		_tdata_start = .;
40
		_tdata_start = .;
41
		*(.tdata);
41
		*(.tdata);
42
		_tdata_end = .;
42
		_tdata_end = .;
43
	} :data
43
	} :data
44
	.tbss : {
44
	.tbss : {
45
		_tbss_start = .;
45
		_tbss_start = .;
46
		*(.tbss);
46
		*(.tbss);
47
		_tbss_end = .;
47
		_tbss_end = .;
48
	} :data
48
	} :data
49
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
49
	_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
50
 
50
 
51
	.sbss : {
51
	.sbss : {
52
		*(.scommon);
52
		*(.scommon);
53
		*(.sbss);
53
		*(.sbss);
54
	}	
54
	}	
55
	.bss : {
55
	.bss : {
56
		*(.bss);
56
		*(.bss);
57
		*(COMMON);
57
		*(COMMON);
58
	} :data
58
	} :data
59
 
59
 
60
	. = ALIGN(0x4000);
60
	. = ALIGN(0x4000);
61
	_heap = .;
61
	_heap = .;
62
 
62
 
63
	/DISCARD/ : {
63
	/DISCARD/ : {
64
		*(*);
64
		*(*);
65
	}
65
	}
66
}
66
}
67
 
67