diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2000-09-29 19:03:57 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2000-09-29 19:03:57 +0000 |
commit | 24dd9f7582c1f717bd82df8c76bba82211fa164a (patch) | |
tree | 5475639315e64c00428202885d06c5eb87325a82 /ld/emulparams | |
parent | 2e968471c56f520eef02f0e411210360a25d0490 (diff) | |
download | gdb-24dd9f7582c1f717bd82df8c76bba82211fa164a.zip gdb-24dd9f7582c1f717bd82df8c76bba82211fa164a.tar.gz gdb-24dd9f7582c1f717bd82df8c76bba82211fa164a.tar.bz2 |
* scripttempl/crisaout.sc (ENTRY): Now __start.
(.text): Add default setting for __start.
Remove CONSTRUCTORS handling.
(/DISCARD/): Add .gnu.warning.*.
* emulparams/crislinux.sh (ENTRY): Now __start.
(TEXT_START_SYMBOLS): New; provide __Stext and __start default.
* emulparams/criself.sh (OUTPUT_FORMAT): Now elf32-us-cris.
(ENTRY): Now __start.
(INITIAL_READONLY_SECTIONS): Add KEEP for .startup.
(EXECUTABLE_SYMBOLS): Add default setting for __start.
Diffstat (limited to 'ld/emulparams')
-rw-r--r-- | ld/emulparams/criself.sh | 19 | ||||
-rw-r--r-- | ld/emulparams/crislinux.sh | 10 |
2 files changed, 23 insertions, 6 deletions
diff --git a/ld/emulparams/criself.sh b/ld/emulparams/criself.sh index 44d0a11..4acd56a 100644 --- a/ld/emulparams/criself.sh +++ b/ld/emulparams/criself.sh @@ -2,21 +2,32 @@ MACHINE= SCRIPT_NAME=elf TEMPLATE_NAME=elf32 -OUTPUT_FORMAT="elf32-cris" + +# Symbols have underscore prepended. +OUTPUT_FORMAT="elf32-us-cris" ARCH=cris MAXPAGESIZE=32 -ENTRY=_start +ENTRY=__start EMBEDDED=yes ALIGNMENT=32 TEXT_START_ADDR=0 # Put crt0 for flash/eprom etc. in this section. -INITIAL_READONLY_SECTIONS='.startup : { *(.startup) }' +INITIAL_READONLY_SECTIONS='.startup : { KEEP(*(.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 = .);' +# +# The __start dance is to get us through assumptions about entry +# symbols, and to clear _start for normal use with sane programs. +EXECUTABLE_SYMBOLS=' +PROVIDE (__Stext = .); +__start = DEFINED(__start) ? __start : + DEFINED(_start) ? _start : + DEFINED(start) ? start : + DEFINED(.startup) ? .startup + 2 : 2; +' # Smuggle an "OTHER_TEXT_END_SYMBOLS" here. OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);' diff --git a/ld/emulparams/crislinux.sh b/ld/emulparams/crislinux.sh index 15af6cf..22ea9ea 100644 --- a/ld/emulparams/crislinux.sh +++ b/ld/emulparams/crislinux.sh @@ -4,7 +4,7 @@ SCRIPT_NAME=elf OUTPUT_FORMAT="elf32-cris" ARCH=cris TEMPLATE_NAME=elf32 -ENTRY=_start +ENTRY=__start # Needed? Perhaps should be page-size alignment. ALIGNMENT=32 GENERATE_SHLIB_SCRIPT=yes @@ -12,11 +12,17 @@ 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... +TEXT_START_SYMBOLS='PROVIDE (__Stext = .); +__start = DEFINED(__start) ? __start : + DEFINED(_start) ? _start : + DEFINED(start) ? start : + DEFINED(.startup) ? .startup + 2 : 2; +' + # Smuggle an "OTHER_TEXT_END_SYMBOLS" here. OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);' DATA_START_SYMBOLS='PROVIDE (__Sdata = .);' |