Here are some details that I missed off my original post:
The GCC version is 3.3.2, and is hosted on Sun/Solaris (version 5.8).
My linker script is like this:
/*========================================================================
| armada linker command file
========================================================================
|
| Description:
| This is the linker command file for armada
|
| Revisions:
| 10/10'03 ICH initial armada setups
|
========================================================================*/
/* OUTPUT_FORMAT("elf32-bigmips", "elf-bigmips", "elf-littlemips") */
OUTPUT_ARCH(mips)
/**** Start point ****/
ENTRY(start)
SECTIONS
{
.text 0xA0100000 :
{
*(.text)
*(.gnu.linkonce.t*)
_ecode = ABSOLUTE(.) ; /* End of code */
*(.rodata)
*(.gnu.linkonce.r*)
. = ALIGN(8);
_etext = ABSOLUTE(.); /* End of code and read-only data */
}
/**** Initialised data ****/
.data :
{
_fdata = ABSOLUTE(.); /* Start of initialised data */
*(.data)
. = ALIGN(8);
_gp = ABSOLUTE(. + 0x7ff0); /* point at middle (32Kbytes) of 64Kbyte
initialized data */
*(.lit8)
*(.lit4)
*(.ctors)
*(.dtors)
*(.got.plt)
*(.got)
*(.dynamic)
*(.sdata)
*(.gnu.linkonce.s*)
. = ALIGN(8);
_edata = ABSOLUTE(.); /* End of initialised data */
}
/**** Uninitialised data ****/
_fbss = .; /* Start of unitialised data */
.sbss :
{
*(.sbss)
*(.scommon)
}
.bss :
{
*(.bss)
*(COMMON)
}
_end = . ; /* End of unitialised data */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
/DISCARD/ :
{
*(.reginfo)
}
PROVIDE(etext = _etext);
PROVIDE (edata = .);
PROVIDE (end = .);
PROVIDE (__stacktop = 0xa02fff00);
}
|