174 lines
6.3 KiB
Plaintext
174 lines
6.3 KiB
Plaintext
/* link.AOUTRAM - gnu linker command file for VxWorks: AOUT RAM */
|
|
|
|
/* Copyright 2001-2014 Wind River Systems, Inc. */
|
|
|
|
/* This file was automatically generated using tool/common/ldscripts. */
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
02k,16sep14,mcm Fix for NOTYPE symbols (TCGNU-76)
|
|
02j,22apr13,g_x Adding *(.gnu.linkonce.s.*) for gnu. (WIND00414091)
|
|
02i,02apr13,g_x Add *(text.romentry) in the text segment for MIPS
|
|
(WIND00408686)
|
|
02h,12mar13,gvm Fix for WIND00376986. Close alignment gap
|
|
between _wrs_kernel_tls_vars_start and .tls_vars
|
|
02g,05jan12,my_ Place .copy.text and inflate.text into the .data
|
|
section for ARMARCH4
|
|
02f,06may10,slk updates for large memory model support
|
|
02e,12jan11,pgh Place .copy.text and inflate.text into the .data section
|
|
02d,09jul10,mcm Adding .wrs_build_vars for GNU as well.
|
|
02c,10mar10,gvm updates for icc
|
|
02b,16feb10,mcm Update to allow the 'AT' directive introduced for .boot and
|
|
.reset to be present for gnu only.
|
|
02a,15feb10,mcm Updates for GCC 4.3.3
|
|
01z,24jul09,pee adding wrs_build_vars section.
|
|
01y,13nov08,mcm Fix for WIND00143294 - gnu.linkonce.b sections not handled
|
|
correctly. Also added .bss.* and .sbss.*
|
|
01x,06may08,mcm Changes for GNU Dwarf EH
|
|
01w,16oct07,sn WIND00107939:fixed LMAs of .sdata etc. for Diab
|
|
01v,11jul07,pes Update and rename generation of .kseg0data segment. (Renamed
|
|
to .kseg0bss.) Add .rodata.cst16 segment.
|
|
01u,07jul07,mcm Fixing position of .tls* sections and adding support for tls
|
|
for GCC.
|
|
01t,08jun07,r_s add support for Small Data Area segments.
|
|
01s,09nov06,gvm Support for .tls_data, .tls_vars, and associated absolute
|
|
symbols in the Diab linker script
|
|
01r,25aug05,dlk Support .text.init, .text.fast, .data.init, .data.fast.
|
|
01r,29jul05,slk SPR 104264: fix MIPS romResident images
|
|
01q,06may05,rlg changes for MIPS specific devices
|
|
01p,03jul04,f_b Improved support for data alignment
|
|
01o,12dec03,sn added more .rodata.str1.* handlers
|
|
01n,04dec03,sn Diab: .rodata.* is not handled correctly by Diab linker; instead
|
|
use specific names
|
|
01m,28oct03,sn Diab: collapse .rodata.cst* sections into .rodata
|
|
01l,29may02,tpw Diab: pad out sections, needed for MIPS byteswap. SPR 78076
|
|
01k,24apr02,sn GNU: SPR 75835 - added support for relocatable script link.OUT
|
|
01j,19apr02,tpw Diab: provide _etext for ColdFire. SPR 75122
|
|
01i,06feb02,sn Both: place .got2 to handle tramp.o (_x_gnu_tramp.o).
|
|
01h,25jan02,tpw GNU: give debug sections explicit 0 addresses.
|
|
01g,14jan02,tpw Diab: place .eh_frame data, in case of insistent GNU objects.
|
|
01f,14dec01,tpw Diab: provide both underscore options of wrs_kernel* here too.
|
|
01e,05dec01,tpw Both: Add .boot and .reset section support, for PPC 4xx series
|
|
and Book E.
|
|
01d,05dec01,tpw Diab: Add .frame_info section to text region.
|
|
01c,03dec01,jab Diab: replaced LOAD() with AT()
|
|
01b,14nov01,tpw ALL: Correct some more bootrom/kernel issues.
|
|
01b,06nov01,tpw GNU: Add /DISCARD/ directive to discard uninteresting sections
|
|
01a,01nov01,tpw gnu script written
|
|
01a,29oct01,jab diab script written
|
|
*/
|
|
|
|
ENTRY(_start)
|
|
SECTIONS
|
|
{
|
|
|
|
.text :
|
|
{
|
|
|
|
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
|
_VX_START_TEXT = .;
|
|
*(.text)
|
|
wrs_kernel_text_fast = ABSOLUTE(.); _wrs_kernel_text_fast = ABSOLUTE(.);
|
|
*(.text.fast)
|
|
wrs_kernel_text_init = ABSOLUTE(.); _wrs_kernel_text_init = ABSOLUTE(.);
|
|
*(.text.init)
|
|
*(.text.*) *(.stub) *(.gnu.warning) *(.gnu.linkonce.t*)
|
|
KEEP(*(.init)) KEEP(*(.fini))
|
|
*(.glue_7t) *(.glue_7) *(.rdata) /* for ARM */
|
|
*(.mips16.fn.*) *(.mips16.call.*) *(.reginfo) /* for MIPS */
|
|
*(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) *(.rodata1)
|
|
. = ALIGN(16);
|
|
. = ALIGN (8);
|
|
*(.eh_frame_hdr)
|
|
. = ALIGN (8);
|
|
__EH_FRAME_BEGIN__ = .;
|
|
KEEP (*(.eh_frame))
|
|
LONG (0)
|
|
. = ALIGN (8);
|
|
*(.gcc_except_table .gcc_except_table.*)
|
|
}
|
|
.wrs_build_vars : {
|
|
*(.wrs_build_vars)
|
|
. = ALIGN(16);
|
|
}
|
|
.sdata2 : {
|
|
_SDA2_BASE_ = . + 0x7ff0 ;
|
|
*(.sdata2) *(.sbss2) /* for PPC */
|
|
. = ALIGN(16);
|
|
}
|
|
. = ALIGN(16);
|
|
wrs_kernel_text_end = ABSOLUTE(.); _wrs_kernel_text_end = ABSOLUTE(.);
|
|
etext = .; _etext = .;
|
|
. = ALIGN(_VX_DATA_ALIGN);
|
|
.data :
|
|
{
|
|
|
|
wrs_kernel_data_start = .; _wrs_kernel_data_start = .;
|
|
_VX_START_DATA = .;
|
|
*(.data)
|
|
wrs_kernel_data_fast = .; _wrs_kernel_data_fast = .;
|
|
*(.data.fast)
|
|
wrs_kernel_data_init = .; _wrs_kernel_data_init = .;
|
|
*(.data.init)
|
|
*(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) *(.data1)
|
|
KEEP (*crtbegin.o(.ctors))
|
|
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
|
KEEP (*(SORT(.ctors.*)))
|
|
KEEP (*(.ctors))
|
|
KEEP (*crtbegin.o(.dtors))
|
|
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
|
KEEP (*(SORT(.dtors.*)))
|
|
KEEP (*(.dtors))
|
|
/* got*, dynamic, sdata*, lit[48], and sbss should follow _gp */
|
|
*(.got.plt) *(.got) *(.dynamic)
|
|
*(.got2)
|
|
*(.lit8) *(.lit4)
|
|
. = ALIGN(16);
|
|
}
|
|
wrs_kernel_tls_data_start = .; _wrs_kernel_tls_data_start = .;
|
|
.tls_data : {
|
|
*(.tls_data)
|
|
}
|
|
wrs_kernel_tls_data_size = . - wrs_kernel_tls_data_start; _wrs_kernel_tls_data_size = . - _wrs_kernel_tls_data_start;
|
|
wrs_kernel_tls_data_align = 16; _wrs_kernel_tls_data_align = 16;
|
|
. = ALIGN(8);
|
|
wrs_kernel_tls_vars_start = .; _wrs_kernel_tls_vars_start = .;
|
|
.tls_vars : {
|
|
*(.tls_vars)
|
|
}
|
|
wrs_kernel_tls_vars_size = SIZEOF(.tls_vars); _wrs_kernel_tls_vars_size = SIZEOF(.tls_vars);
|
|
. = ALIGN(16);
|
|
_gp = ALIGN(16) + 0x7ff0; /* set gp for MIPS startup code */
|
|
.sdata :
|
|
{
|
|
_SDA_BASE_ = . + 0x7ff0 ;
|
|
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
|
. = ALIGN(16);
|
|
}
|
|
. = ALIGN(16);
|
|
edata = .; _edata = .;
|
|
wrs_kernel_data_end = .; _wrs_kernel_data_end = .;
|
|
.sbss :
|
|
{
|
|
wrs_kernel_bss_start = .; _wrs_kernel_bss_start = .;
|
|
*(.sbss) *(.sbss.*) *(.scommon)
|
|
. = ALIGN(16);
|
|
}
|
|
.bss :
|
|
{
|
|
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
|
. = ALIGN(16);
|
|
}
|
|
. = ALIGN(16);
|
|
end = .; _end = .;
|
|
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
|
|
|
/DISCARD/ :
|
|
{
|
|
*(.note) /* seen on Pentium ELF */
|
|
*(.comment) /* seen on PPC & SH ELF */
|
|
*(.pdr) /* seen on MIPS ELF */
|
|
}
|
|
}
|