* scripttempl/crisaout.sc (ENTRY): Now __start.
authorHans-Peter Nilsson <hp@axis.com>
Fri, 29 Sep 2000 19:03:57 +0000 (19:03 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Fri, 29 Sep 2000 19:03:57 +0000 (19:03 +0000)
(.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.

ld/ChangeLog
ld/emulparams/criself.sh
ld/emulparams/crislinux.sh
ld/scripttempl/crisaout.sc

index 58a6c87..8a14306 100644 (file)
@@ -1,3 +1,16 @@
+2000-09-29  Hans-Peter Nilsson  <hp@axis.com>
+
+       * 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.
+
 2000-09-29  Kazu Hirata  <kazu@hxi.com>
 
        * deffile.h: Fix formatting.
index 44d0a11..4acd56a 100644 (file)
@@ -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 = .);'
index 15af6cf..22ea9ea 100644 (file)
@@ -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 = .);'
index 6777482..927ec9c 100644 (file)
@@ -1,7 +1,7 @@
 cat <<EOF
 OUTPUT_FORMAT("a.out-cris")
 OUTPUT_ARCH(cris)
-ENTRY(_start)
+ENTRY(__start)
 SECTIONS
 {
   .text ${RELOCATING+ ${TEXT_START_ADDR}}:
@@ -10,6 +10,10 @@ SECTIONS
     ${RELOCATING+ __Stext = .;}
     ${RELOCATING+*(.startup)}
     *(.text)
+    ${RELOCATING+__start = DEFINED(__start) ? __start : 
+                  DEFINED(_start) ? _start :
+                    DEFINED(start) ? start :
+                       DEFINED(.startup) ? .startup + 2 : 2;}
     ${RELOCATING+*(.text.*)}
     ${RELOCATING+*(.gnu.linkonce.t*)}
     ${RELOCATING+*(.rodata)}
@@ -41,14 +45,6 @@ SECTIONS
     ${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 = .;}
@@ -111,7 +107,8 @@ SECTIONS
 
   /* 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) }
+  /DISCARD/ :
+  { *(.stab) *(.stab*) *(.debug) *(.debug*) *(.comment) *(.gnu.warning.*) }
 
   /* For the rsim and xsim simulators.  */
   ${RELOCATING+ PROVIDE(__Endmem = 0x10000000);}