mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-30 14:47:57 +03:00
162 lines
3.1 KiB
Text
162 lines
3.1 KiB
Text
![]() |
# ===========================================================================
|
|||
|
# LinkSegment_PS2.lcf <09>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)
|
|||
|
# ===========================================================================
|