Add support for .sdata2/.sbss2 and old 2.7.2 compiler; Make text start at 64k; make data follow on next 64k page after text
This commit is contained in:
parent
d9f4dec191
commit
4fe13b2bdd
3 changed files with 55 additions and 12 deletions
13
ld/ChangeLog
13
ld/ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
Fri Jan 12 13:29:55 1996 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
|
|
||||||
|
* scripttempl/elfppc.sc: Add support for .sdata2/.sbss2, etc. Add
|
||||||
|
in old support that 2.7.2 needs, but the current compiler does
|
||||||
|
not.
|
||||||
|
|
||||||
|
* Makefile.in (eelf32{,l}ppc.c): Fix up dependencies to use the
|
||||||
|
correct Linker script template.
|
||||||
|
|
||||||
|
* emulparams/elf32{,l}ppc.sh (TEXT_START_ADDR): Set to 0x40000,
|
||||||
|
not 0x400000.
|
||||||
|
(DATA_ADDR,NONPAGED_TEXT_START_ADDR): Delete.
|
||||||
|
|
||||||
Tue Jan 9 15:53:02 1996 Ian Lance Taylor <ian@cygnus.com>
|
Tue Jan 9 15:53:02 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
* scripttempl/alpha.sc: Put .rconst right after .rdata.
|
* scripttempl/alpha.sc: Put .rconst right after .rdata.
|
||||||
|
|
|
@ -203,7 +203,7 @@ ALL_EMULATIONS = ea29k.o ealpha.o earmaoutl.o earmaoutb.o \
|
||||||
eriscix.o esa29200.o eshl.o esh.o esparclynx.o esparcnbsd.o \
|
eriscix.o esa29200.o eshl.o esh.o esparclynx.o esparcnbsd.o \
|
||||||
est2000.o esun3.o esun4.o evanilla.o evax.o evsta.o \
|
est2000.o esun3.o esun4.o evanilla.o evax.o evsta.o \
|
||||||
ez8001.o ez8002.o ei386pe.o earmpe.o eelf32b4300.o eelf32l4300.o \
|
ez8001.o ez8002.o ei386pe.o earmpe.o eelf32b4300.o eelf32l4300.o \
|
||||||
eaixppc.o eaixrs6.o edelta68.o eppcpe.o
|
eaixppc.o eaixrs6.o eppcmacos.o edelta68.o eppcpe.o
|
||||||
|
|
||||||
CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
|
CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
|
||||||
ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
|
ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
|
||||||
|
@ -431,10 +431,10 @@ esparclynx.c: $(srcdir)/emulparams/sparclynx.sh \
|
||||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparclynx.sc ${GEN_DEPENDS}
|
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparclynx.sc ${GEN_DEPENDS}
|
||||||
${GENSCRIPTS} sparclynx
|
${GENSCRIPTS} sparclynx
|
||||||
eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \
|
eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \
|
||||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
|
||||||
${GENSCRIPTS} elf32ppc
|
${GENSCRIPTS} elf32ppc
|
||||||
eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \
|
eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \
|
||||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
|
||||||
${GENSCRIPTS} elf32lppc
|
${GENSCRIPTS} elf32lppc
|
||||||
eriscix.c: $(srcdir)/emulparams/riscix.sh \
|
eriscix.c: $(srcdir)/emulparams/riscix.sh \
|
||||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
|
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
|
||||||
|
@ -460,6 +460,10 @@ ew65.c: $(srcdir)/emulparams/w65.sh \
|
||||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS}
|
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS}
|
||||||
${GENSCRIPTS} w65
|
${GENSCRIPTS} w65
|
||||||
|
|
||||||
|
eppcmacos.c: $(srcdir)/emulparams/ppcmacos.sh \
|
||||||
|
$(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS}
|
||||||
|
${GENSCRIPTS} ppcmacos
|
||||||
|
|
||||||
ei386nw.c: $(srcdir)/emulparams/i386nw.sh \
|
ei386nw.c: $(srcdir)/emulparams/i386nw.sh \
|
||||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS}
|
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS}
|
||||||
${GENSCRIPTS} i386nw
|
${GENSCRIPTS} i386nw
|
||||||
|
|
|
@ -100,23 +100,50 @@ SECTIONS
|
||||||
.data1 ${RELOCATING-0} : { *(.data1) }
|
.data1 ${RELOCATING-0} : { *(.data1) }
|
||||||
${RELOCATING+${OTHER_READWRITE_SECTIONS}}
|
${RELOCATING+${OTHER_READWRITE_SECTIONS}}
|
||||||
|
|
||||||
|
.sdata2 ${RELOCATING-0} : { *(.sdata2) }
|
||||||
|
.sbss2 ${RELOCATING-0} : { *(.sbss2) }
|
||||||
.got1 ${RELOCATING-0} : { *(.got1) }
|
.got1 ${RELOCATING-0} : { *(.got1) }
|
||||||
.dynamic ${RELOCATING-0} : { *(.dynamic) }
|
.dynamic ${RELOCATING-0} : { *(.dynamic) }
|
||||||
|
|
||||||
/* Put .ctors and .dtors next to the .got2 section, so that the pointers
|
/* Put .ctors and .dtors next to the .got2 section, so that the pointers
|
||||||
get relocated with -mrelocatable. Also put in the .fixup pointers. */
|
get relocated with -mrelocatable. Also put in the .fixup pointers.
|
||||||
|
The current compiler no longer needs this, but keep it around for 2.7.2 */
|
||||||
|
|
||||||
|
${RELOCATING+_GOT2_START_ = .;}
|
||||||
.got2 ${RELOCATING-0} : { *(.got2) }
|
.got2 ${RELOCATING-0} : { *(.got2) }
|
||||||
.ctors ${RELOCATING-0} : { *(.ctors) }
|
|
||||||
.dtors ${RELOCATING-0} : { *(.dtors) }
|
|
||||||
.fixup ${RELOCATING-0} : { *(.fixup) }
|
|
||||||
|
|
||||||
.got ${RELOCATING-0} : { *(.got) *(.got.plt) }
|
${RELOCATING+__CTOR_LIST__ = .;}
|
||||||
|
.ctors ${RELOCATING-0} : { *(.ctors) }
|
||||||
|
${RELOCATING+__CTOR_END__ = .;}
|
||||||
|
|
||||||
|
${RELOCATING+__DTOR_LIST__ = .;}
|
||||||
|
.dtors ${RELOCATING-0} : { *(.dtors) }
|
||||||
|
${RELOCATING+__DTOR_END__ = .;}
|
||||||
|
|
||||||
|
${RELOCATING+_FIXUP_START_ = .;}
|
||||||
|
.fixup ${RELOCATING-0} : { *(.fixup) }
|
||||||
|
${RELOCATING+_FIXUP_END_ = .;}
|
||||||
|
${RELOCATING+_GOT2_END_ = .;}
|
||||||
|
|
||||||
|
/* .got.neg is for items that would normally go in the .got that are addressed
|
||||||
|
negative of _GLOBAL_OFFSET_TABLE. .got.blrl is to hold the blrl instruction
|
||||||
|
that is _GLOBAL_OFFSET_TABLE_-4 so that a function can easily get the
|
||||||
|
address of _GLOBAL_OFFSET_TABLE. */
|
||||||
|
|
||||||
|
.got.neg ${RELOCATING-0} : { *(.got.neg) }
|
||||||
|
.got.blrl ${RELOCATING-0} : { *(.got.blrl) }
|
||||||
|
${RELOCATING+_GOT_START_ = .;}
|
||||||
|
${RELOCATING+_GLOBAL_OFFSET_TABLE_ = .;}
|
||||||
|
.got ${RELOCATING-0} : { *(.got) }
|
||||||
|
.got.plt ${RELOCATING-0} : { *(.got.plt) }
|
||||||
|
${RELOCATING+_GOT_END_ = .;}
|
||||||
|
|
||||||
${DATA_PLT+${PLT}}
|
${DATA_PLT+${PLT}}
|
||||||
|
|
||||||
/* 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+_SDA_BASE_ = . + 32768;}
|
||||||
.sdata ${RELOCATING-0} : { *(.sdata) }
|
.sdata ${RELOCATING-0} : { *(.sdata) }
|
||||||
${RELOCATING+_edata = .;}
|
${RELOCATING+_edata = .;}
|
||||||
${RELOCATING+PROVIDE (edata = .);}
|
${RELOCATING+PROVIDE (edata = .);}
|
||||||
|
@ -127,7 +154,6 @@ SECTIONS
|
||||||
*(.scommon)
|
*(.scommon)
|
||||||
${RELOCATING+__sbss_end = .;}
|
${RELOCATING+__sbss_end = .;}
|
||||||
}
|
}
|
||||||
${RELOCATING+_GOT_END_ = .;}
|
|
||||||
.bss ${RELOCATING-0} :
|
.bss ${RELOCATING-0} :
|
||||||
{
|
{
|
||||||
${RELOCATING+${OTHER_BSS_SYMBOLS}}
|
${RELOCATING+${OTHER_BSS_SYMBOLS}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue