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) Fri Dec 13 10:19:57 1996 Jeffrey A Law (law@cygnus.com)
* Makefile.in (emn10200.c): Add dependencies. * 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> Wed Nov 27 03:22:05 1996 Jason Merrill <jason@yorick.cygnus.com>
* scripttempl/elf.sc: Add the remaining DWARF sections. * scripttempl/elf{,mips,ppc}.sc: Add the remaining DWARF sections.
* scripttempl/{elfd10v.sc,elfmips.sc,elfppc.sc,v850.sc}: Likewise.
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> 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*/ /*/critters/slug/grossman/install/sun4/v850-elf/lib*/
SECTIONS 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: */ /* Read-only sections, merged into text segment: */
. = 0x160; . = ${TEXT_START_ADDR};
.interp : { *(.interp) } .interp : { *(.interp) }
.hash : { *(.hash) } .hash : { *(.hash) }
.dynsym : { *(.dynsym) } .dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) } .dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) } .rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) } .rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) } .rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) } .rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) } .rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) } .rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) } .rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) } .rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) } .rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) } .rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) } .rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) } .rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) } .rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) } .rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) } .rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) } .rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) } .rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) } .rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) } .rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) } .rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0 .init : { *(.init) } =0
.plt : { *(.plt) } .plt : { *(.plt) }
.zdata : { *(.zdata) *(.zrodata) *(.zbss*) }
. = 0x100000; .text : {
.text :
{
*(.text) *(.text)
/* .gnu.warning sections are handled specially by elf32.em. */ /* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning) *(.gnu.warning)
*(.gnu.linkonce.t*) *(.gnu.linkonce.t*)
} =0 } =0
_etext = .;
PROVIDE (etext = .); ${RELOCATING+_etext = .;}
.fini : { *(.fini) } =0 ${RELOCATING+PROVIDE (etext = .);}
.rodata : { *(.rodata) *(.gnu.linkonce.r*) }
.rodata1 : { *(.rodata1) } .fini : { *(.fini) } =0
/* Adjust the address for the data segment. We want to adjust up to .rodata : { *(.rodata) *(.gnu.linkonce.r*) }
the same address within the page on the next page up. */ .rodata1 : { *(.rodata1) }
.data :
{ .data : {
*(.data) *(.data)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
CONSTRUCTORS CONSTRUCTORS
} }
.data1 : { *(.data1) } .data1 : { *(.data1) }
.ctors : .ctors : {
{ ${RELOCATING+___ctors = .;}
___ctors = .;
*(.ctors) *(.ctors)
___ctors_end = .; ${RELOCATING+___ctors_end = .;}
} }
.dtors :
{ .dtors : {
___dtors = .; ${RELOCATING+___dtors = .;}
*(.dtors) *(.dtors)
___dtors_end = .; ${RELOCATING+___dtors_end = .;}
} }
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.got) }
${RELOCATING+ __ep = ALIGN (4);} .dynamic : { *(.dynamic) }
.tdata : { *(.tdata) }
.tdata ${TDATA_START_ADDR} : {
${RELOCATING+PROVIDE (__ep = .);}
*(.tdata)
}
/* We want the small data sections together, so single-instruction offsets /* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */ we can shorten the on-disk segment size. */
${RELOCATING+ __gp = ALIGN(4) + 0x8000;} .sdata ${SDATA_START_ADDR} : {
.sdata : { *(.rosdata) *(.sdata) } ${RELOCATING+PROVIDE (__gp = . + 0x8000);}
_edata = .; *(.rosdata)
PROVIDE (edata = .); *(.sdata)
__bss_start = .; ${RELOCATING+__sbss_start = .;}
.sbss : { *(.sbss) *(.scommon) } *(.sbss)
*(.scommon)
}
${RELOCATING+_edata = DEFINED (__sbss_start) ? __sbss_start : . ;}
${RELOCATING+PROVIDE (edata = _edata);}
.bss : .bss :
{ {
*(.dynbss) ${RELOCATING+__bss_start = DEFINED (__sbss_start) ? __sbss_start : . ;}
*(.bss) *(.dynbss)
*(COMMON) *(.bss)
*(COMMON)
} }
_end = . ;
PROVIDE (end = .); ${RELOCATING+_end = . ;}
${RELOCATING+PROVIDE (end = .);}
/* Stabs debugging sections. */ /* Stabs debugging sections. */
.stab 0 : { *(.stab) } .stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) } .stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) } .stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) } .comment 0 : { *(.comment) }
/* DWARF debug sections. /* DWARF debug sections.
Symbols in the .debug DWARF section are relative to the beginning of the Symbols in the DWARF debugging sections are relative to the beginning
section so we begin .debug at 0. It's not clear yet what needs to happen of the section so we begin them at 0. */
for the others. */
.debug 0 : { *(.debug) } /* DWARF 1 */
.debug_srcinfo 0 : { *(.debug_srcinfo) } .debug 0 : { *(.debug) }
.debug_aranges 0 : { *(.debug_aranges) } .line 0 : { *(.line) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_sfnames 0 : { *(.debug_sfnames) } /* GNU DWARF 1 extensions */
.line 0 : { *(.line) } .debug_srcinfo 0 : { *(.debug_srcinfo) }
/* .stack 0xffffec00 : { _stack = .; *(.stack) }*/ .debug_sfnames 0 : { *(.debug_sfnames) }
.stack 0x200000 : { _stack = .; *(.stack) }
/* 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 . */ /* These must appear regardless of . */
} }
EOF EOF