* 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:
parent
041ff4dd56
commit
9d06555c53
12
ld/ChangeLog
12
ld/ChangeLog
@ -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):
|
||||
|
@ -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 \
|
||||
|
@ -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 \
|
||||
|
@ -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" ;;
|
||||
|
7
ld/emulparams/crisaout.sh
Normal file
7
ld/emulparams/crisaout.sh
Normal 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
92
ld/emulparams/criself.sh
Normal 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);
|
||||
'
|
35
ld/emulparams/crislinux.sh
Normal file
35
ld/emulparams/crislinux.sh
Normal 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);
|
||||
'
|
@ -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
|
||||
|
528
ld/po/ld.pot
528
ld/po/ld.pot
File diff suppressed because it is too large
Load Diff
122
ld/scripttempl/crisaout.sc
Normal file
122
ld/scripttempl/crisaout.sc
Normal 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
|
Loading…
x
Reference in New Issue
Block a user