original files of m241
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
# Makefile - makefile for regenerating GNU linker scripts from common template
|
||||
#
|
||||
# modification history
|
||||
# --------------------
|
||||
# 01a,05dec01,tpw written
|
||||
#
|
||||
# DESCRIPTION
|
||||
# This file contains the makefile rules to regenerate cross-target linker
|
||||
# scripts using the template system in tool/common/ldscripts.
|
||||
#
|
||||
#*/
|
||||
|
||||
TGT_DIR=$(WIND_BASE)/target
|
||||
GEN_DIR=$(TGT_DIR)/h/tool/common/ldscripts
|
||||
REGEN_SH=$(GEN_DIR)/regen.sh
|
||||
TOOL=gnu
|
||||
|
||||
regen all:
|
||||
sh $(REGEN_SH) $(TOOL)
|
||||
|
||||
update:
|
||||
sh $(REGEN_SH) -update $(TOOL)
|
||||
@@ -0,0 +1,173 @@
|
||||
/* 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 */
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,173 @@
|
||||
/* link.AOUTROM - gnu linker command file for VxWorks: AOUT ROM */
|
||||
|
||||
/* 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 = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
|
||||
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 */
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
/* link.ARMARCH4ROM - gnu linker command file for VxWorks: ARMARCH4 ROM */
|
||||
|
||||
/* 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 = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
wrs_kernel_copy_text_start = .;
|
||||
*(.copy.text)
|
||||
wrs_kernel_copy_text_end = .;
|
||||
*(.inflate.text)
|
||||
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 */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
/* link.DOTBOOTRAM - gnu linker command file for VxWorks: DOTBOOT 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 = .;
|
||||
|
||||
.boot (wrs_kernel_text_start + wrs_kernel_rom_size - 0x800) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 0x800)
|
||||
{
|
||||
*(.boot)
|
||||
}
|
||||
.reset (wrs_kernel_text_start + wrs_kernel_rom_size - 4) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 4)
|
||||
{
|
||||
*(.reset)
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
/* link.DOTBOOTROM - gnu linker command file for VxWorks: DOTBOOT ROM */
|
||||
|
||||
/* 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 = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
|
||||
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 = .;
|
||||
|
||||
.boot (wrs_kernel_text_start + wrs_kernel_rom_size - 0x800) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 0x800)
|
||||
{
|
||||
*(.boot)
|
||||
}
|
||||
.reset (wrs_kernel_text_start + wrs_kernel_rom_size - 4) : AT(wrs_kernel_text_start + wrs_kernel_rom_size - 4)
|
||||
{
|
||||
*(.reset)
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
/* link.MIPSRAM - gnu linker command file for VxWorks: MIPS 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
|
||||
{
|
||||
|
||||
|
||||
wrs_kernel_text_wired_size = 0;
|
||||
.text :
|
||||
{
|
||||
wrs_kernel_text_wired_start = .;
|
||||
*(.text.romentry)
|
||||
*(.text.wired)
|
||||
wrs_kernel_text_wired_end = .;
|
||||
wrs_kernel_text_wired_size = SIZEOF(.text);
|
||||
}
|
||||
.text :
|
||||
{
|
||||
_VX_START_TEXT = wrs_kernel_text_wired_size == 0 ? . : wrs_kernel_text_wired_start;
|
||||
wrs_kernel_text_start = _VX_START_TEXT;
|
||||
_wrs_kernel_text_start = _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)
|
||||
*(.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(256);
|
||||
|
||||
/* add sizeof .kseg0bss to end and _end if it follows .bss section */
|
||||
endAdd = LMM_ENABLED == 0 ? SIZEOF(.kseg0bss) : 0x0;
|
||||
end = . + endAdd; _end = . + endAdd;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
/* if LMM_ENABLED == 0 then this GROUP is legacy mode.
|
||||
* legacy mode requires the .kseg0bss section be located at
|
||||
* (wrs_kernel_bss_end & 0xbfffffff). the other sections in this
|
||||
* group are not defined for legacy mode so they will not be included
|
||||
* in the image
|
||||
*
|
||||
* if LMM_ENABLED != 1 then the GROUP should be
|
||||
* located at the address specified by _VX_START_EXCPT_BASE. this
|
||||
* is a large memory model configuration
|
||||
*/
|
||||
|
||||
_VX_START_EXCPT_ADRS = LMM_ENABLED==0?wrs_kernel_bss_end & 0xbfffffff :_VX_START_EXCPT_BASE;
|
||||
|
||||
/* unmapped data and text sections */
|
||||
.vectors.text _VX_START_EXCPT_ADRS :
|
||||
{
|
||||
wrs_unmapped_text_start = .;
|
||||
*(.vectors.text)
|
||||
*(.unmapped.text)
|
||||
wrs_unmapped_text_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.unmapped.data :
|
||||
{
|
||||
wrs_unmapped_data_start = .;
|
||||
*(.unmapped.data)
|
||||
wrs_unmapped_data_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.kseg0bss :
|
||||
{
|
||||
wrs_unmapped_bss_start = .;
|
||||
*(.kseg0bss)
|
||||
. = ALIGN(32);
|
||||
wrs_unmapped_bss_end = .;
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
/* link.MIPSROM - gnu linker command file for VxWorks: MIPS ROM */
|
||||
|
||||
/* 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
|
||||
{
|
||||
LMM_ENABLED = 0;
|
||||
|
||||
.text :
|
||||
{
|
||||
wrs_kernel_text_start = ABSOLUTE(.); _wrs_kernel_text_start = ABSOLUTE(.);
|
||||
_VX_START_TEXT = .;
|
||||
*(.text.romentry)
|
||||
*(.text)
|
||||
*(.text.wired)
|
||||
|
||||
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 = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
wrs_kernel_copy_text_start = .;
|
||||
*(.copy.text)
|
||||
wrs_kernel_copy_text_end = .;
|
||||
*(.inflate.text)
|
||||
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(256);
|
||||
|
||||
/* add sizeof .kseg0bss to end and _end if it follows .bss section */
|
||||
endAdd = LMM_ENABLED == 0 ? SIZEOF(.kseg0bss) : 0x0;
|
||||
end = . + endAdd; _end = . + endAdd;
|
||||
wrs_kernel_bss_end = .; _wrs_kernel_bss_end = .;
|
||||
|
||||
_VX_START_EXCPT_ADRS = wrs_kernel_bss_end & 0xbfffffff;
|
||||
|
||||
/* unmapped data and text sections */
|
||||
.vectors.text _VX_START_EXCPT_ADRS :
|
||||
{
|
||||
wrs_unmapped_text_start = .;
|
||||
*(.vectors.text)
|
||||
*(.unmapped.text)
|
||||
wrs_unmapped_text_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.unmapped.data :
|
||||
{
|
||||
wrs_unmapped_data_start = .;
|
||||
*(.unmapped.data)
|
||||
wrs_unmapped_data_end = .;
|
||||
. = ALIGN(32);
|
||||
}
|
||||
|
||||
.kseg0bss :
|
||||
{
|
||||
wrs_unmapped_bss_start = .;
|
||||
*(.kseg0bss)
|
||||
. = ALIGN(32);
|
||||
wrs_unmapped_bss_end = .;
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
/* link.OUT - gnu linker command file for VxWorks: OUT */
|
||||
|
||||
/* 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 0 :
|
||||
{
|
||||
|
||||
_VX_START_TEXT = .;
|
||||
*(.text)
|
||||
|
||||
*(.text.fast)
|
||||
|
||||
*(.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 (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 0 : {
|
||||
*(.wrs_build_vars)
|
||||
|
||||
}
|
||||
.sdata2 0 : {
|
||||
_SDA2_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata2) *(.sbss2) /* for PPC */
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.data 0 :
|
||||
{
|
||||
|
||||
|
||||
_VX_START_DATA = .;
|
||||
*(.data)
|
||||
|
||||
*(.data.fast)
|
||||
|
||||
*(.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)
|
||||
|
||||
}
|
||||
|
||||
.tls_data 0 : {
|
||||
*(.tls_data)
|
||||
}
|
||||
|
||||
|
||||
. = ALIGN(8);
|
||||
|
||||
.tls_vars 0 : {
|
||||
*(.tls_vars)
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sdata 0 :
|
||||
{
|
||||
_SDA_BASE_ = . + 0x7ff0 ;
|
||||
*(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sbss 0 :
|
||||
{
|
||||
|
||||
*(.sbss) *(.sbss.*) *(.scommon)
|
||||
|
||||
}
|
||||
.bss 0 :
|
||||
{
|
||||
*(.dynbss) *(.bss) *(.bss.*) *(COMMON) *(.gnu.linkonce.b*)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.note) /* seen on Pentium ELF */
|
||||
*(.comment) /* seen on PPC & SH ELF */
|
||||
*(.pdr) /* seen on MIPS ELF */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
/* link.RAM - gnu linker command file for VxWorks: 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) *(.gnu.linkonce.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) *(.gnu.linkonce.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 */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
/* link.ROM - gnu linker command file for VxWorks: ROM */
|
||||
|
||||
/* 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 = .;
|
||||
|
||||
.data : AT(etext)
|
||||
{
|
||||
|
||||
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 */
|
||||
}
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
OUTPUT_FORMAT(pei-i386)
|
||||
ENTRY(_mainCRTStartup)
|
||||
SECTIONS
|
||||
{
|
||||
.text __image_base__ + __section_alignment__ :
|
||||
{
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(SORT(.text[0-9]*))
|
||||
*(SORT(.text$*))
|
||||
*(SORT(.text*))
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||
*(.fini)
|
||||
/* ??? Why is .gcc_exc here? */
|
||||
*(.gcc_exc)
|
||||
etext = .;
|
||||
*(.gcc_except_table)
|
||||
}
|
||||
/* Move .idata up here, just after .text, so that all text-like sections
|
||||
are grouped together. Unfortunately, we can't merge it into the .text
|
||||
section -- vxWorks.exe won't run in that case. Apparently, something
|
||||
about windows application loading depends on .idata being distinct. */
|
||||
.idata BLOCK(__section_alignment__) :
|
||||
{
|
||||
/* This cannot currently be handled with grouped sections.
|
||||
See pe.em:sort_sections. */
|
||||
SORT(*)(.idata$2)
|
||||
SORT(*)(.idata$3)
|
||||
/* These zeroes mark the end of the import list. */
|
||||
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
|
||||
SORT(*)(.idata$4)
|
||||
SORT(*)(.idata$5)
|
||||
SORT(*)(.idata$6)
|
||||
SORT(*)(.idata$7)
|
||||
}
|
||||
/* The Cygwin32 library uses a section to avoid copying certain data
|
||||
on fork. This used to be named ".data". The linker used
|
||||
to include this between __data_start__ and __data_end__, but that
|
||||
breaks building the cygwin32 dll. Instead, we name the section
|
||||
".data_cygwin_nocopy" and explictly include it after __data_end__. */
|
||||
.data BLOCK(__section_alignment__) :
|
||||
{
|
||||
__data_start__ = . ;
|
||||
*(.data)
|
||||
*(.data2)
|
||||
*(SORT(.data[0-9]*))
|
||||
*(SORT(.data$*))
|
||||
*(SORT(.data*))
|
||||
__data_end__ = . ;
|
||||
*(.data_cygwin_nocopy)
|
||||
|
||||
*(.rdata)
|
||||
*(SORT(.rdata[0-9]*))
|
||||
*(SORT(.rdata$*))
|
||||
*(SORT(.rdata*))
|
||||
*(.eh_frame)
|
||||
|
||||
*(.pdata)
|
||||
}
|
||||
.bss BLOCK(__section_alignment__) :
|
||||
{
|
||||
__bss_start__ = . ;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_end__ = . ;
|
||||
|
||||
*(.edata)
|
||||
}
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.debug$S)
|
||||
*(.debug$T)
|
||||
*(.debug$F)
|
||||
*(.drectve)
|
||||
}
|
||||
.CRT BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(SORT(.CRT$*))
|
||||
}
|
||||
.endjunk BLOCK(__section_alignment__) :
|
||||
{
|
||||
/* end is deprecated, don't use it */
|
||||
end = .;
|
||||
_end = .;
|
||||
__end__ = .;
|
||||
}
|
||||
.rsrc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.rsrc)
|
||||
*(SORT(.rsrc$*))
|
||||
}
|
||||
.reloc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.reloc)
|
||||
}
|
||||
.stab BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
.stabstr BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user