Ravenscar port for RISC-V
[deliverable/binutils-gdb.git] / ld / scripttempl / mcorepe.sc
index 8111bf211ee971074a9e79165f2c505ad99022f1..eea70271bb5c1813da13e74641eb541bc2885a62 100644 (file)
@@ -1,4 +1,10 @@
-# Linker script for PE.
+# Linker script for MCore PE.
+#
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.
 
 if test -z "${RELOCATEABLE_OUTPUT_FORMAT}"; then
   RELOCATEABLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
@@ -35,29 +41,42 @@ else
   R_RSRC=
 fi
 
+if test "$RELOCATING"; then
+  # Can't use ${RELOCATING+blah "blah" blah} for this,
+  # because bash 2.x will lose the doublequotes.
+  cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
+                          "${LITTLE_OUTPUT_FORMAT}")
+EOF
+fi
+
 cat <<EOF
-${RELOCATING+OUTPUT_FORMAT(${OUTPUT_FORMAT})}
-${RELOCATING-OUTPUT_FORMAT(${RELOCATEABLE_OUTPUT_FORMAT})}
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
+
+   Copying and distribution of this script, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.  */
 
 ${LIB_SEARCH_DIRS}
 
-ENTRY(_mainCRTStartup)
+${RELOCATING+ENTRY (_mainCRTStartup)}
 
 SECTIONS
 {
-  .text ${RELOCATING+ __image_base__ + __section_alignment__ } : 
+  .text ${RELOCATING+ __image_base__ + __section_alignment__ } :
   {
-    ${RELOCATING+ *(.init)}
+    ${RELOCATING+ KEEP (*(SORT_NONE(.init)))}
     *(.text)
     ${R_TEXT}
+    ${RELOCATING+ *(.text.*)}
     *(.glue_7t)
     *(.glue_7)
-    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; 
+    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
                        LONG (-1); *(.ctors); *(.ctor); LONG (0); }
-    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; 
+    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
                        LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
-    ${RELOCATING+ *(.fini)}
-    /* ??? Why is .gcc_exc here?  */
+    ${RELOCATING+ KEEP (*(SORT_NONE(.fini)))}
+    ${RELOCATING+/* ??? Why is .gcc_exc here?  */}
     ${RELOCATING+ *(.gcc_exc)}
     ${RELOCATING+ etext = .;}
     *(.gcc_except_table)
@@ -67,9 +86,9 @@ SECTIONS
      on fork.  This used to be named ".data$nocopy".  The linker used
      to include this between __data_start__ and __data_end__, but that
      breaks building the cygwin32 dll.  Instead, we name the section
-     ".data_cygwin_nocopy" and explictly include it after __data_end__. */
+     ".data_cygwin_nocopy" and explicitly include it after __data_end__. */
 
-  .data ${RELOCATING+BLOCK(__section_alignment__)} : 
+  .data ${RELOCATING+BLOCK(__section_alignment__)} :
   {
     ${RELOCATING+__data_start__ = . ;}
     *(.data)
@@ -114,7 +133,7 @@ SECTIONS
     ${R_IDATA}
   }
   .CRT ${RELOCATING+BLOCK(__section_alignment__)} :
-  {                                    
+  {
     ${R_CRT}
   }
 
@@ -127,12 +146,12 @@ SECTIONS
   }
 
   .reloc ${RELOCATING+BLOCK(__section_alignment__)} :
-  {                                    
+  {
     *(.reloc)
   }
 
   .rsrc ${RELOCATING+BLOCK(__section_alignment__)} :
-  {                                    
+  {
     *(.rsrc)
     ${R_RSRC}
   }
This page took 0.028855 seconds and 4 git commands to generate.