* Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,

ecrislinux.o.
	(ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
	Regenerate dependencies.
	* Makefile.in: Rebuild.
	* configure.tgt (cris-*-*): New target.
	* emulparams/crisaout.sh, emulparams/criself.sh,
	emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
	* po/POTFILES.in, po/ld.pot: Regenerate.
This commit is contained in:
Hans-Peter Nilsson 2000-07-20 17:16:06 +00:00
parent 041ff4dd56
commit 9d06555c53
10 changed files with 592 additions and 281 deletions

View File

@ -1,3 +1,15 @@
2000-07-20 Hans-Peter Nilsson <hp@axis.com>
* Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,
ecrislinux.o.
(ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
Regenerate dependencies.
* Makefile.in: Rebuild.
* configure.tgt (cris-*-*): New target.
* emulparams/crisaout.sh, emulparams/criself.sh,
emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
* po/POTFILES.in, po/ld.pot: Regenerate.
2000-07-20 H.J. Lu <hjl@gnu.org>
* emultempl/elf32.em (gld_${EMULATION_NAME}_list_options):

View File

@ -123,6 +123,9 @@ ALL_EMULATIONS = \
eavrmega161.o \
eavrmega603.o \
ecoff_sparc.o \
ecrisaout.o \
ecriself.o \
ecrislinux.o \
ed10velf.o \
ed30v_e.o \
ed30v_o.o \
@ -378,6 +381,15 @@ eavrmega161.c: $(srcdir)/emulparams/avrmega161.sh \
ecoff_sparc.c: $(srcdir)/emulparams/coff_sparc.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparccoff.sc ${GEN_DEPENDS}
${GENSCRIPTS} coff_sparc "$(tdir_coff_sparc)"
ecrisaout.c: $(srcdir)/emulparams/crisaout.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/crisaout.sc ${GEN_DEPENDS}
${GENSCRIPTS} crisaout "$(tdir_cris)"
ecriself.c: $(srcdir)/emulparams/criself.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} criself "$(tdir_cris)"
ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} crislinux "$(tdir_cris)"
ed10velf.c: $(srcdir)/emulparams/d10velf.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS}
${GENSCRIPTS} d10velf "$(tdir_d10v)"
@ -946,7 +958,7 @@ ldctor.o: ldctor.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
ldgram.h ldmain.h ldctor.h
ldemul.o: ldemul.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
ldemul.h ldmisc.h ldexp.h ldlang.h ldfile.h ldmain.h \
ldmisc.h ldexp.h ldlang.h ldfile.h ldemul.h ldmain.h \
ldemul-list.h
ldexp.o: ldexp.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
@ -959,13 +971,13 @@ ldfile.o: ldfile.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
ldlang.o: ldlang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
$(INCDIR)/obstack.h $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h \
ldmain.h ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h \
ldmisc.h ldctor.h ldfile.h $(INCDIR)/fnmatch.h $(INCDIR)/demangle.h
ldmain.h ldgram.h ldexp.h ldlang.h ldlex.h ldmisc.h \
ldctor.h ldfile.h ldemul.h $(INCDIR)/fnmatch.h $(INCDIR)/demangle.h
ldmain.o: ldmain.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
$(INCDIR)/progress.h $(INCDIR)/bfdlink.h $(INCDIR)/filenames.h \
ld.h $(INCDIR)/bin-bugs.h ldmain.h ldmisc.h ldwrite.h \
ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h ldfile.h \
ldgram.h ldexp.h ldlang.h ldlex.h ldfile.h ldemul.h \
ldctor.h
ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
@ -973,16 +985,16 @@ ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
ldexp.h ldlang.h ldgram.h ldlex.h ldmain.h ldfile.h
ldver.o: ldver.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
ldver.h ldemul.h ldmain.h
ldver.h ldexp.h ldlang.h ldfile.h ldemul.h ldmain.h
ldwrite.o: ldwrite.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
$(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h
lexsup.o: lexsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
$(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h ldmain.h \
ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h ldfile.h \
ldver.h ldemul.h
$(INCDIR)/getopt.h $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h \
ldmain.h ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h \
ldfile.h ldver.h ldemul.h
mri.o: mri.c ../bfd/bfd.h $(INCDIR)/ansidecl.h sysdep.h \
config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
ldexp.h ldlang.h ldmisc.h mri.h ldgram.h $(INCDIR)/libiberty.h
@ -993,13 +1005,13 @@ ldcref.o: ldcref.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
pe-dll.o: pe-dll.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
$(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h ldemul.h \
$(INCDIR)/coff/internal.h ../bfd/libcoff.h deffile.h \
pe-dll.h
ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h ldfile.h \
ldemul.h $(INCDIR)/coff/internal.h ../bfd/libcoff.h \
deffile.h pe-dll.h
ldgram.o: ldgram.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
ld.h $(INCDIR)/bin-bugs.h ldexp.h ldver.h ldlang.h \
ldemul.h ldfile.h ldmisc.h ldmain.h mri.h ldctor.h \
ldfile.h ldemul.h ldmisc.h ldmain.h mri.h ldctor.h \
ldlex.h
ldlex.o: ldlex.c ../bfd/bfd.h sysdep.h config.h $(INCDIR)/fopen-same.h \
ld.h $(INCDIR)/bin-bugs.h ldgram.h ldmisc.h ldexp.h \

View File

@ -226,6 +226,9 @@ ALL_EMULATIONS = \
eavrmega161.o \
eavrmega603.o \
ecoff_sparc.o \
ecrisaout.o \
ecriself.o \
ecrislinux.o \
ed10velf.o \
ed30v_e.o \
ed30v_o.o \
@ -1079,6 +1082,15 @@ eavrmega161.c: $(srcdir)/emulparams/avrmega161.sh \
ecoff_sparc.c: $(srcdir)/emulparams/coff_sparc.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparccoff.sc ${GEN_DEPENDS}
${GENSCRIPTS} coff_sparc "$(tdir_coff_sparc)"
ecrisaout.c: $(srcdir)/emulparams/crisaout.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/crisaout.sc ${GEN_DEPENDS}
${GENSCRIPTS} crisaout "$(tdir_cris)"
ecriself.c: $(srcdir)/emulparams/criself.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} criself "$(tdir_cris)"
ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} crislinux "$(tdir_cris)"
ed10velf.c: $(srcdir)/emulparams/d10velf.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS}
${GENSCRIPTS} d10velf "$(tdir_d10v)"
@ -1624,7 +1636,7 @@ ldctor.o: ldctor.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
ldgram.h ldmain.h ldctor.h
ldemul.o: ldemul.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
ldemul.h ldmisc.h ldexp.h ldlang.h ldfile.h ldmain.h \
ldmisc.h ldexp.h ldlang.h ldfile.h ldemul.h ldmain.h \
ldemul-list.h
ldexp.o: ldexp.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
@ -1637,13 +1649,13 @@ ldfile.o: ldfile.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
ldlang.o: ldlang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
$(INCDIR)/obstack.h $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h \
ldmain.h ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h \
ldmisc.h ldctor.h ldfile.h $(INCDIR)/fnmatch.h $(INCDIR)/demangle.h
ldmain.h ldgram.h ldexp.h ldlang.h ldlex.h ldmisc.h \
ldctor.h ldfile.h ldemul.h $(INCDIR)/fnmatch.h $(INCDIR)/demangle.h
ldmain.o: ldmain.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
$(INCDIR)/progress.h $(INCDIR)/bfdlink.h $(INCDIR)/filenames.h \
ld.h $(INCDIR)/bin-bugs.h ldmain.h ldmisc.h ldwrite.h \
ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h ldfile.h \
ldgram.h ldexp.h ldlang.h ldlex.h ldfile.h ldemul.h \
ldctor.h
ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
@ -1651,16 +1663,16 @@ ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
ldexp.h ldlang.h ldgram.h ldlex.h ldmain.h ldfile.h
ldver.o: ldver.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
ldver.h ldemul.h ldmain.h
ldver.h ldexp.h ldlang.h ldfile.h ldemul.h ldmain.h
ldwrite.o: ldwrite.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
$(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h
lexsup.o: lexsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
$(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h ldmain.h \
ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h ldfile.h \
ldver.h ldemul.h
$(INCDIR)/getopt.h $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h \
ldmain.h ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h \
ldfile.h ldver.h ldemul.h
mri.o: mri.c ../bfd/bfd.h $(INCDIR)/ansidecl.h sysdep.h \
config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
ldexp.h ldlang.h ldmisc.h mri.h ldgram.h $(INCDIR)/libiberty.h
@ -1671,13 +1683,13 @@ ldcref.o: ldcref.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
pe-dll.o: pe-dll.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
$(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h ldemul.h \
$(INCDIR)/coff/internal.h ../bfd/libcoff.h deffile.h \
pe-dll.h
ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h ldfile.h \
ldemul.h $(INCDIR)/coff/internal.h ../bfd/libcoff.h \
deffile.h pe-dll.h
ldgram.o: ldgram.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
ld.h $(INCDIR)/bin-bugs.h ldexp.h ldver.h ldlang.h \
ldemul.h ldfile.h ldmisc.h ldmain.h mri.h ldctor.h \
ldfile.h ldemul.h ldmisc.h ldmain.h mri.h ldctor.h \
ldlex.h
ldlex.o: ldlex.c ../bfd/bfd.h sysdep.h config.h $(INCDIR)/fopen-same.h \
ld.h $(INCDIR)/bin-bugs.h ldgram.h ldmisc.h ldexp.h \

View File

@ -23,6 +23,9 @@ arm-*-pe) targ_emul=armpe ;
arc-*-elf*) targ_emul=arcelf ;;
avr-*-*) targ_emul=avr85xx
targ_extra_emuls="avr1200 avr23xx avr44x4 avr4433 avrmega603 avrmega103 avrmega161" ;;
cris-*-*) targ_emul=crisaout
targ_extra_emuls="criself crislinux"
targ_extra_libpath=$targ_extra_emuls ;;
d10v-*-*) targ_emul=d10velf ;;
d30v-*-*ext*) targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
d30v-*-*onchip*) targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;

View File

@ -0,0 +1,7 @@
# This is for embedded products and elinux (no MMU) with a.out.
SCRIPT_NAME=crisaout
OUTPUT_FORMAT="a.out-cris"
TARGET_PAGE_SIZE=2
TEXT_START_ADDR=0
NONPAGED_TEXT_START_ADDR=0
ARCH=cris

92
ld/emulparams/criself.sh Normal file
View File

@ -0,0 +1,92 @@
# This is for embedded products (no MMU) with ELF.
MACHINE=
SCRIPT_NAME=elf
TEMPLATE_NAME=elf32
OUTPUT_FORMAT="elf32-cris"
ARCH=cris
MAXPAGESIZE=32
ENTRY=_start
EMBEDDED=yes
ALIGNMENT=32
TEXT_START_ADDR=0
# Put crt0 for flash/eprom etc. in this section.
INITIAL_READONLY_SECTIONS='.startup : { *(.startup) }'
# TEXT_START_SYMBOLS doesn't get what we want which is the start of
# all read-only sections; there's at least .init and .fini before it.
# We have to resort to trickery.
EXECUTABLE_SYMBOLS='PROVIDE (__Stext = .);'
# Smuggle an "OTHER_TEXT_END_SYMBOLS" here.
OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);'
DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
# Smuggle an "OTHER_DATA_END_SYMBOLS" here.
OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);'
# If .bss does not immediately follow .data but has its own start
# address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we
# use ADDR(.bss) there. Instead, we use the symbol support for the
# end symbol.
OTHER_BSS_END_SYMBOLS='
PROVIDE (__Ebss = .);
PROVIDE (__end = .);
__Sbss = SIZEOF (.sbss) != 0 ? ADDR (.sbss) : ADDR (.bss);
PROVIDE (_bss_start = __Sbss);
'
INIT_START='
. = ALIGN(2);
___init__start = .;
PROVIDE (___do_global_ctors = .);
SHORT (0xe1fc); /* push srp */
SHORT (0xbe7e);
'
INIT_END='
SHORT (0x0d3e); /* jump [sp+] */
PROVIDE (__init__end = .);
PROVIDE (___init__end = .);
'
FINI_START='
. = ALIGN (2);
___fini__start = .;
PROVIDE (___do_global_dtors = .);
SHORT (0xe1fc); /* push srp */
SHORT (0xbe7e);
'
FINI_END='
SHORT (0x0d3e); /* jump [sp+] */
PROVIDE (__fini__end = .);
___fini__end = .;
'
CTOR_START='
PROVIDE (___ctors = .);
___elf_ctors_dtors_begin = .;
'
CTOR_END='
PROVIDE (___ctors_end = .);
'
DTOR_START='
PROVIDE (___dtors = .);
'
CTOR_END='
PROVIDE (___dtors_end = .);
___elf_ctors_dtors_end = .;
'
# Smuggle an "OTHER_ALL_END_SYMBOLS" here.
# Also add the other symbols provided for rsim/xsim and elinux.
OTHER_RELOCATING_SECTIONS='
PROVIDE (__Eall = .);
PROVIDE (__Endmem = 0x10000000);
PROVIDE (__Stacksize = 0);
'

View File

@ -0,0 +1,35 @@
# This is an approximation of what we want for a real linux system (with MMU and ELF).
MACHINE=
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-cris"
ARCH=cris
TEMPLATE_NAME=elf32
ENTRY=_start
# Needed? Perhaps should be page-size alignment.
ALIGNMENT=32
GENERATE_SHLIB_SCRIPT=yes
# Is this high enough and low enough?
TEXT_START_ADDR=0x80000
# Do we need to set this higher?
MAXPAGESIZE=8192
# FIXME: GOT, PLT...
# Smuggle an "OTHER_TEXT_END_SYMBOLS" here.
OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);'
DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
# Smuggle an "OTHER_DATA_END_SYMBOLS" here.
OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);'
OTHER_BSS_SYMBOLS='PROVIDE (__Sbss = .);'
OTHER_BSS_END_SYMBOLS='PROVIDE (__Ebss = .);'
# Smuggle an "OTHER_ALL_END_SYMBOLS" here.
# Also add the other symbols provided for rsim/xsim and elinux.
OTHER_RELOCATING_SECTIONS='
PROVIDE (__Eall = .);
PROVIDE(__Endmem = 0x10000000);
PROVIDE(__Stacksize = 0);
'

View File

@ -1,6 +1,7 @@
deffile.h
emultempl/armcoff.em
emultempl/pe.em
ld.h
ldcref.c
ldctor.c
ldctor.h
@ -10,7 +11,6 @@ ldexp.c
ldexp.h
ldfile.c
ldfile.h
ld.h
ldlang.c
ldlang.h
ldlex.h

File diff suppressed because it is too large Load Diff

122
ld/scripttempl/crisaout.sc Normal file
View File

@ -0,0 +1,122 @@
cat <<EOF
OUTPUT_FORMAT("a.out-cris")
OUTPUT_ARCH(cris)
ENTRY(_start)
SECTIONS
{
.text ${RELOCATING+ ${TEXT_START_ADDR}}:
{
CREATE_OBJECT_SYMBOLS;
${RELOCATING+ __Stext = .;}
${RELOCATING+*(.startup)}
*(.text)
${RELOCATING+*(.text.*)}
${RELOCATING+*(.gnu.linkonce.t*)}
${RELOCATING+*(.rodata)}
${RELOCATING+*(.rodata.*)}
${RELOCATING+*(.gnu.linkonce.r*)}
/* Do not "provide" init-start and fini-start symbols; they might be
referred to weakly, so the linker would not override the zero
default.
FIXME: It's somewhat unexpected to have code emitted by the linker
script. Some other mechanism could probably do better. */
${RELOCATING+. = ALIGN (2);}
${RELOCATING+ ___init__start = .;}
${RELOCATING+PROVIDE (___do_global_ctors = .);}
${RELOCATING+SHORT (0xe1fc); /* push srp */}
${RELOCATING+SHORT (0xbe7e);}
${RELOCATING+*(.init)}
${RELOCATING+SHORT (0x0d3e); /* jump [sp+] */}
${RELOCATING+PROVIDE (__init__end = .);}
${RELOCATING+PROVIDE (___init__end = .);}
${RELOCATING+. = ALIGN (2);}
${RELOCATING+ ___fini__start = .;}
${RELOCATING+PROVIDE (___do_global_dtors = .);}
${RELOCATING+SHORT (0xe1fc); /* push srp */}
${RELOCATING+SHORT (0xbe7e);}
${RELOCATING+*(.fini)}
${RELOCATING+SHORT (0x0d3e); /* jump [sp+] */}
${RELOCATING+PROVIDE (__fini__end = .);}
${RELOCATING+ ___fini__end = .;}
/* Putting constructors in constant store is sane as long as
there's no need for dynamic fixups. */
/* The constructors and destructors set symbols are unused now that
collect2 has its wicked way. */
${CONSTRUCTING+ ___aout_ctors_dtors_begin = .;}
${CONSTRUCTING+ SORT(CONSTRUCTORS);}
${CONSTRUCTING+ ___aout_ctors_dtors_end = .;}
/* Cater to linking from ELF. */
${CONSTRUCTING+ PROVIDE(___ctors = .);}
${CONSTRUCTING+ ___elf_ctors_dtors_begin = .;}
${CONSTRUCTING+ KEEP (*crtbegin.o(.ctors))}
${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))}
${CONSTRUCTING+ KEEP (*(SORT(.ctors.*)))}
${CONSTRUCTING+ KEEP (*(.ctors))}
${CONSTRUCTING+ PROVIDE(___ctors_end = .);}
${CONSTRUCTING+ PROVIDE(___dtors = .);}
${CONSTRUCTING+ KEEP (*crtbegin.o(.dtors))}
${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))}
${CONSTRUCTING+ KEEP (*(SORT(.dtors.*)))}
${CONSTRUCTING+ KEEP (*(.dtors))}
${CONSTRUCTING+ PROVIDE(___dtors_end = .);}
${CONSTRUCTING+ ___elf_ctors_dtors_end = .;}
${RELOCATING+ __Etext = .;}
/* Deprecated, use __Etext. */
${RELOCATING+ PROVIDE(_etext = .);}
}
/* Any dot-relative start-expression (such as "ALIGN(2)", also including
the "default" .data alignment expression) will use the initial, raw
size of .text and will be incorrect if the alignment used is less
than the alignment for .text (which might depend on input and obj
format). FIXME: Seems like a bug in ld. Seems hard to fix. Seems
unimportant. */
.data :
{
${RELOCATING+ __Sdata = .;}
*(.data);
${RELOCATING+*(.data.*)}
${RELOCATING+*(.gnu.linkonce.d*)}
${RELOCATING+*(.eh_frame) /* FIXME: Make .text */}
${RELOCATING+*(.gcc_except_table)}
${RELOCATING+ __Edata = .;}
/* Deprecated, use __Edata. */
${RELOCATING+ PROVIDE(_edata = .);}
}
.bss :
{
/* Deprecated, use __Sbss. */
${RELOCATING+ PROVIDE(_bss_start = .);}
${RELOCATING+ __Sbss = .;}
*(.bss)
${RELOCATING+*(.bss.*)}
*(COMMON)
${RELOCATING+ __Ebss = .;}
/* Deprecated, use __Ebss or __Eall as appropriate. */
${RELOCATING+ PROVIDE(_end = .);}
${RELOCATING+ PROVIDE(__end = .);}
}
${RELOCATING+ __Eall = .;}
/* Unfortunately, stabs are not mappable from ELF to a.out.
It can probably be fixed with some amount of work. */
/DISCARD/ : { *(.stab) *(.stab*) *(.debug) *(.debug*) *(.comment) }
/* For the rsim and xsim simulators. */
${RELOCATING+ PROVIDE(__Endmem = 0x10000000);}
/* For elinux. */
${RELOCATING+ PROVIDE(__Stacksize = 0);}
}
EOF