forked from Imagelibrary/binutils-gdb
* 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:
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);
|
||||
'
|
||||
Reference in New Issue
Block a user