File: LinkSegment_PS2.lcf

package info (click to toggle)
openmohaa 0.82.1%2Bdfsg-1
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 34,192 kB
  • sloc: cpp: 315,720; ansic: 275,789; sh: 312; xml: 246; asm: 141; makefile: 7
file content (161 lines) | stat: -rw-r--r-- 3,202 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#	===========================================================================
#		LinkSegment_PS2.lcf	1999-2000 Metrowerks Inc. All rights reserved.
#	===========================================================================
#		
#		linker command file for PS2
#		
#		06/09/2000	kashima,	put dummy nop after .text section
#		06/09/2000	kashima,	change default entry address
#		02/10/2000	kashima,	add ALIGNALL before each section
#		01/15/2000	kashima,	support overlay by lcf generator
#		11/03/1999	kashima,	for SDK 1.10
#		10/22/1999	kashima,	change file extention from txt to lcf
#		10/20/1999	kashima,	put all sections into main
#		10/12/1999	kashima,	separate each sections
#		09/14/1999	kashima,	
#		
#	===========================================================================

MEMORY
{
	main	(RWX)	: ORIGIN = 0x100000,	LENGTH = 0x0
	heap	(RW)	: ORIGIN = AFTER(main),	LENGTH = 0x0
}

#FORCE_ACTIVE
#{
#}

KEEP_SECTION
{
	.vutext,
	.vudata,
	.vubss
}

#REF_INCLUDE
#{

SECTIONS
{
		#	define for crt0
		_heap_size	= -1;
		_stack	= -1;
		_stack_size	= 0x00100000;
		#	define for lcf
		_align_segment	= 0x80;

	.main	:
	{
		#	text sections
		.	= ALIGN(0x80);
		crt0.s	(.text)
		.	= ALIGN(0x10);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.text)
		WRITEW	0x0;	# text section patch for EE pipeline
		WRITEW	0x0;	# text section patch for EE pipeline
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.vutext)

		#	.reginfo
		crt0.s	(.reginfo)

		#	data sections
		__data_start	= .;
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.data)
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.vudata)
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.rodata)
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.rdata)

		#	static initializers
		.	= ALIGN(0x10);
		ALIGNALL(0x4);
		GROUP(ROOT)	(.init)
		.	= ALIGN(0x10);
		ALIGNALL(0x4);
		__static_init	= .;
		GROUP(ROOT)	(.ctor)
		__static_init_end	= .;

		#	.vtables
		.	= ALIGN(0x10);
		ALIGNALL(0x4);
		*	(.vtables)

		#	exception table
		.	= ALIGN(0x10);
		__exception_table_start__	= .;
		__exception_table_end__	= .;

		#	addresses for each overlay module
		.	= ALIGN(0x10);
		_overlay_group_addresses	= .;
		WRITEW ADDR(.main);	#

		__data_end	= .;
		__data_size	= __data_end - __data_start;

		#	the address of gp register
		_gp	= ALIGN(128) + 0x7FF0;

		#	literal
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		LITERAL

		#	small data sections
		.	= ALIGN(0x80);
		ALIGNALL(0x4);
		*	(.sdata)
		.	= ALIGN(0x80);
		_fbss	= .;
		ALIGNALL(0x4);
		*	(.sbss)
		ALIGNALL(0x4);
		*	(.scommon)
		ALIGNALL(0x4);
		*	(SCOMMON)

		#	bss sections
		__bss_start	= .;
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.bss)
		ALIGNALL(0x8);
		GROUP(ROOT)	(.common)
		ALIGNALL(0x8);
		GROUP(ROOT)	(COMMON)
		.	= ALIGN(0x80);
		ALIGNALL(0x8);
		GROUP(ROOT)	(.vubss)
		ALIGNALL(0x8);
		__bss_end	= .;
		__bss_size	= __bss_end - __bss_start;

		.	= ALIGN(_align_segment);

	}	>	main

	.heap	:
	{
		#	to get the address for heap
		end	= .;
		_end	= .;
	}	>	heap


}

#	===========================================================================
#		end of lcf	(auto-generated by pre-linker for PS2)
#	===========================================================================