Make __{e,g}p correctly start relative to the beginning of the section; Cleanup

This commit is contained in:
Michael Meissner 1996-12-13 20:37:35 +00:00
parent 21e45f8225
commit 93f8f531b0
2 changed files with 150 additions and 84 deletions

View File

@ -1,3 +1,15 @@
start-sanitize-v850
Fri Dec 13 14:08:50 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* scripttempl/v850.sc: Make sure __{e,g}p start relative to the
{s,t}data sections. Do not emit any linker generated symbols if
-r. Use {TEXT,{Z,S,T}DATA}_START_ADDR variables to initialize
where the different sections go. Change some whitespace.
* emulparams/v850.sh ({TEXT,{Z,S,T}DATA}_START_ADDR): Define
appropriately. Remove crud not used anymore.
end-sanitize-v850
Fri Dec 13 10:19:57 1996 Jeffrey A Law (law@cygnus.com)
* Makefile.in (emn10200.c): Add dependencies.
@ -31,8 +43,14 @@ Mon Dec 2 11:43:50 1996 Ian Lance Taylor <ian@cygnus.com>
Wed Nov 27 03:22:05 1996 Jason Merrill <jason@yorick.cygnus.com>
* scripttempl/elf.sc: Add the remaining DWARF sections.
* scripttempl/{elfd10v.sc,elfmips.sc,elfppc.sc,v850.sc}: Likewise.
* scripttempl/elf{,mips,ppc}.sc: Add the remaining DWARF sections.
start-sanitize-d10v
* scripttempl/elfd10v.sc: Likewise.
end-sanitize-d10v
start-sanitize-v850
* scripttempl/v850.sc: Likewise.
end-sanitize-v850
Tue Nov 26 16:58:33 1996 Ian Lance Taylor <ian@cygnus.com>

View File

@ -7,110 +7,158 @@ SEARCH_DIR(.);
/*/critters/slug/grossman/install/sun4/v850-elf/lib*/
SECTIONS
{
/* This saves a little space in the ELF file, since the zda starts
at a higher location that the ELF headers take up. */
.zdata ${ZDATA_START_ADDR} : {
*(.zdata)
*(.rozdata)
*(.zbss)
*(reszdata)
*(romzdata)
*(romzbss)
}
/* Read-only sections, merged into text segment: */
. = 0x160;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0
.plt : { *(.plt) }
.zdata : { *(.zdata) *(.zrodata) *(.zbss*) }
. = 0x100000;
.text :
{
. = ${TEXT_START_ADDR};
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0
.plt : { *(.plt) }
.text : {
*(.text)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
} =0
_etext = .;
PROVIDE (etext = .);
.fini : { *(.fini) } =0
.rodata : { *(.rodata) *(.gnu.linkonce.r*) }
.rodata1 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
.data :
{
${RELOCATING+_etext = .;}
${RELOCATING+PROVIDE (etext = .);}
.fini : { *(.fini) } =0
.rodata : { *(.rodata) *(.gnu.linkonce.r*) }
.rodata1 : { *(.rodata1) }
.data : {
*(.data)
*(.gnu.linkonce.d*)
CONSTRUCTORS
}
.data1 : { *(.data1) }
.ctors :
{
___ctors = .;
.data1 : { *(.data1) }
.ctors : {
${RELOCATING+___ctors = .;}
*(.ctors)
___ctors_end = .;
${RELOCATING+___ctors_end = .;}
}
.dtors :
{
___dtors = .;
.dtors : {
${RELOCATING+___dtors = .;}
*(.dtors)
___dtors_end = .;
${RELOCATING+___dtors_end = .;}
}
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
${RELOCATING+ __ep = ALIGN (4);}
.tdata : { *(.tdata) }
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
.tdata ${TDATA_START_ADDR} : {
${RELOCATING+PROVIDE (__ep = .);}
*(.tdata)
}
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
${RELOCATING+ __gp = ALIGN(4) + 0x8000;}
.sdata : { *(.rosdata) *(.sdata) }
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
.sbss : { *(.sbss) *(.scommon) }
.sdata ${SDATA_START_ADDR} : {
${RELOCATING+PROVIDE (__gp = . + 0x8000);}
*(.rosdata)
*(.sdata)
${RELOCATING+__sbss_start = .;}
*(.sbss)
*(.scommon)
}
${RELOCATING+_edata = DEFINED (__sbss_start) ? __sbss_start : . ;}
${RELOCATING+PROVIDE (edata = _edata);}
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
${RELOCATING+__bss_start = DEFINED (__sbss_start) ? __sbss_start : . ;}
*(.dynbss)
*(.bss)
*(COMMON)
}
_end = . ;
PROVIDE (end = .);
${RELOCATING+_end = . ;}
${RELOCATING+PROVIDE (end = .);}
/* 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) }
.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 .debug DWARF section are relative to the beginning of the
section so we begin .debug at 0. It's not clear yet what needs to happen
for the others. */
.debug 0 : { *(.debug) }
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_sfnames 0 : { *(.debug_sfnames) }
.line 0 : { *(.line) }
/* .stack 0xffffec00 : { _stack = .; *(.stack) }*/
.stack 0x200000 : { _stack = .; *(.stack) }
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) }
/* .stack 0xffffec00 : { _stack = .; *(.stack) }*/
.stack 0x200000 : {
${RELOCATING+_stack = .;}
*(.stack)
}
/* These must appear regardless of . */
}
EOF