]> sourceware.org Git - newlib-cygwin.git/commitdiff
2004-03-03 Stephane Carrez <stcarrez@nerim.fr>
authorJeff Johnston <jjohnstn@redhat.com>
Thu, 4 Mar 2004 00:35:03 +0000 (00:35 +0000)
committerJeff Johnston <jjohnstn@redhat.com>
Thu, 4 Mar 2004 00:35:03 +0000 (00:35 +0000)
        * m68hc11/sci-inout.S: Supports -mlong-calls.
        * m68hc11/sim-valid-m68hc11.ld (.tramp): New section for trampolines.
        (.text): Mark the .installN and .finiN section with KEEP.
        (.vectors): Likewise for .vectors.
        (.gcc_except_table): New section.
        * m68hc11/sim-valid-m68hc12.ld (.tramp): New section for trampolines.
        (.text): Mark the .installN and .finiN section with KEEP.
        (.vectors): Likewise for .vectors.
        (.gcc_except_table): New section.

libgloss/ChangeLog
libgloss/m68hc11/sci-inout.S
libgloss/m68hc11/sim-valid-m68hc11.ld
libgloss/m68hc11/sim-valid-m68hc12.ld

index a0cd9a3bd8181fd15adcf2ebb63f5a7ed0024bfe..3ae10552fc0302b59a7601025671f80945cd06f5 100644 (file)
@@ -1,3 +1,15 @@
+2004-03-03  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * m68hc11/sci-inout.S: Supports -mlong-calls.
+       * m68hc11/sim-valid-m68hc11.ld (.tramp): New section for trampolines.
+       (.text): Mark the .installN and .finiN section with KEEP.
+       (.vectors): Likewise for .vectors.
+       (.gcc_except_table): New section.
+       * m68hc11/sim-valid-m68hc12.ld (.tramp): New section for trampolines.
+       (.text): Mark the .installN and .finiN section with KEEP.
+       (.vectors): Likewise for .vectors.
+       (.gcc_except_table): New section.
+
 2004-01-23  Gábor Lóki  <loki@inf.u-szeged.hu>
 
        * m68k/leds.c: remove led_putnum(), zylons() forward
index 070fd7da2776fed0b6c8e7ad7456dec3c3199d83..a8675d27035a443556775c23abde4412818235d4 100644 (file)
@@ -1,5 +1,5 @@
 /* M68HC11/M68HC12 serial line operations
- * Copyright (C) 1999, 2001 Stephane Carrez (stcarrez@nerim.fr)        
+ * Copyright (C) 1999, 2001, 2003, 2004 Stephane Carrez (stcarrez@nerim.fr)
  *
  * The authors hereby grant permission to use, copy, modify, distribute,
  * and license this software and its documentation for any purpose, provided
  * they apply.
  */
 
+#ifdef __HAVE_SHORT_INT__
+       .mode mshort
+#else
+       .mode mlong
+#endif
+
+#if defined(__USE_RTC__)
+       .macro ret
+#if defined(mc68hc12)
+       rtc
+#else
+       jmp __return_32
+#endif
+       .endm
+#else
+       .macro ret
+       rts
+       .endm
+#endif
 #ifdef mc68hc12
        SC0CR1 = 0xC2
        SC0CR2 = 0xC3
@@ -39,7 +58,7 @@ L1:
        ldab    SC0CR2,x
        orab    #0x8
        stab    SC0CR2,x
-       rts
+       ret
 
        .sect .text
        .globl inbyte
@@ -52,7 +71,7 @@ inbyte:
        bita    #0x20
        beq     inbyte
        ldab    SC0CR2,x
-       rts
+       ret
 
        .globl _sci_init
        .sect .text
@@ -99,7 +118,7 @@ L1:
        ldab    SCCR2,x
        orab    #0x8
        stab    SCCR2,x
-       rts
+       ret
 
        .sect .text
        .globl inbyte
@@ -112,7 +131,7 @@ inbyte:
        bita    #0x20
        beq     inbyte
        ldab    SCDR,x
-       rts
+       ret
 
        .globl _sci_init
        .sect .text
index 86b336ecaddc6b955ca5029b5d05923323222368..904b8d649cb6990266a207162cfa34f26ea2a2e7 100644 (file)
@@ -146,15 +146,21 @@ SECTIONS
   {
     *(.init) 
   } =0
+  /* Put trampolines at beginning of text at 0x4400 so that they
+     are not in memory bank window.  */
+  .tramp :
+  {
+    *(.tramp)
+  } > text
   .text  :
   {
     /* Put startup code at beginning so that _start keeps same address.  */
     /* Startup code.  */
-    *(.install0)       /* Section should setup the stack pointer.  */
-    *(.install1)       /* Place holder for applications.  */
-    *(.install2)       /* Optional installation of data sections in RAM.  */
-    *(.install3)       /* Place holder for applications.  */
-    *(.install4)       /* Section that calls the main.  */
+    KEEP (*(.install0))        /* Section should setup the stack pointer.  */
+    KEEP (*(.install1))        /* Place holder for applications.  */
+    KEEP (*(.install2))        /* Optional installation of data sections in RAM.  */
+    KEEP (*(.install3))        /* Place holder for applications.  */
+    KEEP (*(.install4))        /* Section that calls the main.  */
     *(.init)
     *(.text)
     *(.text.*)
@@ -162,11 +168,11 @@ SECTIONS
     *(.gnu.warning)
     *(.gnu.linkonce.t.*)
     /* Finish code.  */
-    *(.fini0)          /* Beginning of finish code (_exit symbol).  */
-    *(.fini1)          /* Place holder for applications.  */
-    *(.fini2)          /* C++ destructors.  */
-    *(.fini3)          /* Place holder for applications.  */
-    *(.fini4)          /* Runtime exit.  */
+    KEEP (*(.fini0))   /* Beginning of finish code (_exit symbol).  */
+    KEEP (*(.fini1))   /* Place holder for applications.  */
+    KEEP (*(.fini2))   /* C++ destructors.  */
+    KEEP (*(.fini3))   /* Place holder for applications.  */
+    KEEP (*(.fini4))   /* Runtime exit.  */
     _etext = .;
     PROVIDE (etext = .);
   }  > text
@@ -174,6 +180,10 @@ SECTIONS
   {
     *(.eh_frame)
   }  > text
+  .gcc_except_table :
+  {
+    *(.gcc_except_table)
+  } > text
   .rodata    :
   {
     *(.rodata)
@@ -188,25 +198,13 @@ SECTIONS
   .ctors   : 
   {
      PROVIDE (__CTOR_LIST__ = .); 
-    *(.ctors)
-    /* We don't want to include the .ctor section from
-       from the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors)) */
+     KEEP (*(.ctors))
      PROVIDE(__CTOR_END__ = .); 
   }  > text
     .dtors       :
   {
      PROVIDE(__DTOR_LIST__ = .); 
-    *(.dtors)
-    /*
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors)) */
+     KEEP (*(.dtors))
      PROVIDE(__DTOR_END__ = .); 
   }  > text
   /* Start of the data section image in ROM.  */
@@ -274,7 +272,7 @@ SECTIONS
   PROVIDE (_vectors_addr = DEFINED (vectors_addr) ? vectors_addr : 0xffc0);
   .vectors DEFINED (vectors_addr) ? vectors_addr : 0xffc0 :
   {
-    *(.vectors)
+    KEEP (*(.vectors))
   }
   /* Stabs debugging sections.  */
   .stab                 0 : { *(.stab) }
index 6b15ed2e53e422fd792e0fe270dc585bf8bf81b2..17dea1d76f8173b792ddd49977b43647530efcc9 100644 (file)
@@ -145,15 +145,21 @@ SECTIONS
   {
     *(.init) 
   } =0
+  /* Put trampolines at beginning of text at 0x4400 so that they
+     are not in memory bank window.  */
+  .tramp :
+  {
+    *(.tramp)
+  } > text
   .text  :
   {
     /* Put startup code at beginning so that _start keeps same address.  */
     /* Startup code.  */
-    *(.install0)       /* Section should setup the stack pointer.  */
-    *(.install1)       /* Place holder for applications.  */
-    *(.install2)       /* Optional installation of data sections in RAM.  */
-    *(.install3)       /* Place holder for applications.  */
-    *(.install4)       /* Section that calls the main.  */
+    KEEP (*(.install0))        /* Section should setup the stack pointer.  */
+    KEEP (*(.install1))        /* Place holder for applications.  */
+    KEEP (*(.install2))        /* Optional installation of data sections in RAM.  */
+    KEEP (*(.install3))        /* Place holder for applications.  */
+    KEEP (*(.install4))        /* Section that calls the main.  */
     *(.init)
     *(.text)
     *(.text.*)
@@ -161,11 +167,11 @@ SECTIONS
     *(.gnu.warning)
     *(.gnu.linkonce.t.*)
     /* Finish code.  */
-    *(.fini0)          /* Beginning of finish code (_exit symbol).  */
-    *(.fini1)          /* Place holder for applications.  */
-    *(.fini2)          /* C++ destructors.  */
-    *(.fini3)          /* Place holder for applications.  */
-    *(.fini4)          /* Runtime exit.  */
+    KEEP (*(.fini0))   /* Beginning of finish code (_exit symbol).  */
+    KEEP (*(.fini1))   /* Place holder for applications.  */
+    KEEP (*(.fini2))   /* C++ destructors.  */
+    KEEP (*(.fini3))   /* Place holder for applications.  */
+    KEEP (*(.fini4))   /* Runtime exit.  */
     _etext = .;
     PROVIDE (etext = .);
   }  > text
@@ -173,6 +179,10 @@ SECTIONS
   {
     *(.eh_frame)
   }  > text
+  .gcc_except_table :
+  {
+    *(.gcc_except_table)
+  } > text
   .rodata    :
   {
     *(.rodata)
@@ -187,25 +197,13 @@ SECTIONS
   .ctors   : 
   {
      PROVIDE (__CTOR_LIST__ = .); 
-    *(.ctors)
-    /* We don't want to include the .ctor section from
-       from the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors)) */
+     KEEP (*(.ctors))
      PROVIDE(__CTOR_END__ = .); 
   }  > text
     .dtors       :
   {
      PROVIDE(__DTOR_LIST__ = .); 
-    *(.dtors)
-    /*
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors)) */
+     KEEP (*(.dtors))
      PROVIDE(__DTOR_END__ = .); 
   }  > text
   /* Start of the data section image in ROM.  */
@@ -274,7 +272,7 @@ SECTIONS
   PROVIDE (_vectors_addr = DEFINED (vectors_addr) ? vectors_addr : 0xffc0);
   .vectors DEFINED (vectors_addr) ? vectors_addr : 0xffc0 :
   {
-    *(.vectors)
+    KEEP (*(.vectors))
   }
   /* Stabs debugging sections.  */
   .stab                 0 : { *(.stab) }
This page took 0.045649 seconds and 5 git commands to generate.