aboutsummaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2000-09-29 19:03:57 +0000
committerHans-Peter Nilsson <hp@axis.com>2000-09-29 19:03:57 +0000
commit24dd9f7582c1f717bd82df8c76bba82211fa164a (patch)
tree5475639315e64c00428202885d06c5eb87325a82 /ld/emulparams
parent2e968471c56f520eef02f0e411210360a25d0490 (diff)
downloadgdb-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.sh19
-rw-r--r--ld/emulparams/crislinux.sh10
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 = .);'