This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

HALs -- C++ support restored


This patch fixes some things that were stopping C++ programs
linking properly in configurations built with GCC 3.0+.

Main changes are to add inclusion of libsupc++.a and add
.eh_frame where necessary. See the ChangeLogs for details.



Index: calmrisc16/core/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/calmrisc16/core/current/ChangeLog,v
retrieving revision 1.3
diff -u -5 -r1.3 ChangeLog
--- calmrisc16/core/current/ChangeLog	9 Apr 2003 19:07:32 -0000	1.3
+++ calmrisc16/core/current/ChangeLog	10 Apr 2003 18:04:45 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/calm16_core.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/calm16_core.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: calmrisc16/core/current/src/calm16_core.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/calmrisc16/core/current/src/calm16_core.ld,v
retrieving revision 1.3
diff -u -5 -r1.3 calm16_core.ld
--- calmrisc16/core/current/src/calm16_core.ld	9 Apr 2003 19:07:32 -0000	1.3
+++ calmrisc16/core/current/src/calm16_core.ld	10 Apr 2003 18:04:45 -0000
@@ -47,11 +47,15 @@
 STARTUP(vectors.o)
 ENTRY(_reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 0x40
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: calmrisc32/core/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/calmrisc32/core/current/ChangeLog,v
retrieving revision 1.3
diff -u -5 -r1.3 ChangeLog
--- calmrisc32/core/current/ChangeLog	9 Apr 2003 19:17:44 -0000	1.3
+++ calmrisc32/core/current/ChangeLog	10 Apr 2003 18:04:45 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/calm32_core.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/calm32_core.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: calmrisc32/core/current/src/calm32_core.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/calmrisc32/core/current/src/calm32_core.ld,v
retrieving revision 1.3
diff -u -5 -r1.3 calm32_core.ld
--- calmrisc32/core/current/src/calm32_core.ld	9 Apr 2003 19:17:44 -0000	1.3
+++ calmrisc32/core/current/src/calm32_core.ld	10 Apr 2003 18:04:45 -0000
@@ -47,11 +47,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 0x40
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: frv/arch/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/frv/arch/current/ChangeLog,v
retrieving revision 1.3
diff -u -5 -r1.3 ChangeLog
--- frv/arch/current/ChangeLog	31 Jan 2003 16:45:59 -0000	1.3
+++ frv/arch/current/ChangeLog	10 Apr 2003 18:04:46 -0000
@@ -1,5 +1,17 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/frv.ld:
+	Added .eh_frame to data section. This is a stopgap fix to allow
+	C++ programs that define exceptions to link and run. It does not
+	allow them to actually throw exceptions, since that depends on
+	compiler changes that have not been made. Further, more
+	far-reaching, linker script changes will also be needs when that
+	happens.
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-01-31  Mark Salter  <msalter at redhat dot com>
 
 	* src/hal_syscall.c (hal_syscall_handler): Let generic syscall code
 	handle exit.
 
Index: frv/arch/current/src/frv.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/frv/arch/current/src/frv.ld,v
retrieving revision 1.2
diff -u -5 -r1.2 frv.ld
--- frv/arch/current/src/frv.ld	23 May 2002 23:02:52 -0000	1.2
+++ frv/arch/current/src/frv.ld	10 Apr 2003 18:04:46 -0000
@@ -42,11 +42,15 @@
 STARTUP(vectors.o)
 ENTRY(_start)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
@@ -124,10 +128,11 @@
     KEEP(*( SORT (.ecos.table.*))) ;            \
     . = ALIGN (8); \
     __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \
     __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \
     *(.sdata*) \
+    *(.eh_frame) \
     . = ALIGN (8); *(.2ram.*) \
     /* Global pointer stuff */ \
     . = ALIGN(8);    _gp = . + 2048;     __global = _gp; \
     _GOT_START_ = ABSOLUTE (.); *(.got) _GOT_END_ = ABSOLUTE (.); \
     _GOT_PLT_START_ = ABSOLUTE (.); *(.got_plt) _GOT_PLT_END_ = ABSOLUTE (.); \
Index: h8300/h8300h/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/h8300/h8300h/current/ChangeLog,v
retrieving revision 1.3
diff -u -5 -r1.3 ChangeLog
--- h8300/h8300h/current/ChangeLog	14 Aug 2002 19:01:03 -0000	1.3
+++ h8300/h8300h/current/ChangeLog	10 Apr 2003 18:04:46 -0000
@@ -1,5 +1,17 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/h8300_h8300h.ld: 
+	Added .eh_frame to data section. This is a stopgap fix to allow
+	C++ programs that define exceptions to link and run. It does not
+	allow them to actually throw exceptions, since that depends on
+	compiler changes that have not been made. Further, more
+	far-reaching, linker script changes will also be needs when that
+	happens.
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.	
+
 2002-08-14  Yoshinori Sato  <qzb04471 at nifty dot ne dot jp>
 
 	* include/mod_regs_wdt.h: New file. Providing watchdog hardware data.
 
 2002-04-24  Yoshinori Sato  <qzb04471 at nifty dot ne dot jp>
Index: h8300/h8300h/current/src/h8300_h8300h.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/h8300/h8300h/current/src/h8300_h8300h.ld,v
retrieving revision 1.2
diff -u -5 -r1.2 h8300_h8300h.ld
--- h8300/h8300h/current/src/h8300_h8300h.ld	23 May 2002 23:03:00 -0000	1.2
+++ h8300/h8300h/current/src/h8300_h8300h.ld	10 Apr 2003 18:04:46 -0000
@@ -42,13 +42,15 @@
 STARTUP(vectors.o)
 ENTRY(CYG_LABEL_DEFN(_start))
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
-
-
+#endif
 
 #define ALIGN_LMA 4
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
@@ -111,10 +113,11 @@
     . = ALIGN (4); \
     CYG_LABEL_DEFN(__CTOR_LIST__) = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) CYG_LABEL_DEFN(__CTOR_END__) = ABSOLUTE (.); \
     CYG_LABEL_DEFN(__DTOR_LIST__) = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) CYG_LABEL_DEFN(__DTOR_END__) = ABSOLUTE (.); \
     CYG_LABEL_DEFN(_GOT_START) = ABSOLUTE (.); CYG_LABEL_DEFN(_GLOBAL_OFFSET_TABLE_) = ABSOLUTE (.) + 32768; CYG_LABEL_DEFN(_SDA_BASE_) = ABSOLUTE (.); \
     *(.got.plt) *(.got) CYG_LABEL_DEFN(_GOT_END_) = ABSOLUTE (.); \
+    *(.eh_frame) \
     *(.dynamic) *(.sdata*) *(.sbss*) } \
     > _region_ \
     CYG_LABEL_DEFN(__rom_data_start) = LOADADDR (.data); \
     CYG_LABEL_DEFN(__ram_data_end) = .; PROVIDE (CYG_LABEL_DEFN(__ram_data_end) = .); CYG_LABEL_DEFN(_edata) = .; PROVIDE (edata = .);
 
Index: i386/arch/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/i386/arch/current/ChangeLog,v
retrieving revision 1.37
diff -u -5 -r1.37 ChangeLog
--- i386/arch/current/ChangeLog	31 Jan 2003 16:45:59 -0000	1.37
+++ i386/arch/current/ChangeLog	10 Apr 2003 18:04:48 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/i386.ld:
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-01-31  Mark Salter  <msalter at redhat dot com>
 
 	* src/hal_syscall.c (hal_syscall_handler): Let generic syscall code
 	handle exit.
 
Index: i386/arch/current/src/i386.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/i386/arch/current/src/i386.ld,v
retrieving revision 1.13
diff -u -5 -r1.13 i386.ld
--- i386/arch/current/src/i386.ld	23 May 2002 23:03:07 -0000	1.13
+++ i386/arch/current/src/i386.ld	10 Apr 2003 18:04:48 -0000
@@ -51,11 +51,15 @@
 STARTUP(vectors.o)
 ENTRY(_start)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: i386/pc/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/i386/pc/current/ChangeLog,v
retrieving revision 1.19
diff -u -5 -r1.19 ChangeLog
--- i386/pc/current/ChangeLog	22 Jan 2003 17:16:53 -0000	1.19
+++ i386/pc/current/ChangeLog	10 Apr 2003 18:04:54 -0000
@@ -1,5 +1,10 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* include/pkgconf/mlt_i386_pc_rom.ldi: Brought list of sections up
+	to date with other files.
+
 2003-01-22  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* include/pkgconf/hal_i386_pc.h: Old file. Remove.
 
 2002-11-28  Nick Garnett  <nickg at ecoscentric dot com>
Index: i386/pc/current/include/pkgconf/mlt_i386_pc_rom.ldi
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/i386/pc/current/include/pkgconf/mlt_i386_pc_rom.ldi,v
retrieving revision 1.1
diff -u -5 -r1.1 mlt_i386_pc_rom.ldi
--- i386/pc/current/include/pkgconf/mlt_i386_pc_rom.ldi	10 Jun 2001 19:35:34 -0000	1.1
+++ i386/pc/current/include/pkgconf/mlt_i386_pc_rom.ldi	10 Apr 2003 18:04:54 -0000
@@ -17,10 +17,13 @@
     SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata1 (rom, ALIGN (0x8), LMA_EQ_VMA)
     SECTION_rodata (rom, ALIGN (0x8), LMA_EQ_VMA)
     SECTION_data (ram, 0x02000, FOLLOWING(.rodata))
+    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_rel__got (ram, ALIGN (0x1), LMA_EQ_VMA)
     SECTION_sbss (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
     CYG_LABEL_DEFN(__pci_window) = ALIGN(0x10); . = CYG_LABEL_DEFN(__pci_window) + 0x64000;
     CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
     SECTIONS_END
Index: m68k/arch/current/src/m68k.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/m68k/arch/current/src/m68k.ld,v
retrieving revision 1.1
diff -u -5 -r1.1 m68k.ld
--- m68k/arch/current/src/m68k.ld	29 May 2002 18:28:15 -0000	1.1
+++ m68k/arch/current/src/m68k.ld	10 Apr 2003 18:04:54 -0000
@@ -43,11 +43,15 @@
 STARTUP(vectors.o)
 ENTRY(__exception_reset)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 4
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
@@ -109,10 +113,11 @@
     . = ALIGN(8);                                                             \
     __GOT2_START__ = ABSOLUTE(.); *(.got2) __GOT2_END__ = ABSOLUTE(.);        \
     __GOT_START = ABSOLUTE(.); _GLOBAL_OFFSET_TABLE_ = ABSOLUTE(. + 32768);   \
     _SDA_BASE_ = ABSOLUTE(.); *(.got.plt) *(.got)                             \
     __GOT_END__ = ABSOLUTE(.);  *(.dynamic)                                   \
+    *(.eh_frame)                                                              \
       /* We want the small data sections together, so single-instruction */   \
       /* offsets can access them all, and initialized data all before    */   \
       /* uninitialized, so we can shorten the on-disk segment size.      */   \
     __SDATA_START__ = ABSOLUTE(.); *(.sdata)                                  \
     __ram_data_end = ABSOLUTE(.);                                             \
Index: mips/idt32334/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/idt32334/current/ChangeLog,v
retrieving revision 1.2
diff -u -5 -r1.2 ChangeLog
--- mips/idt32334/current/ChangeLog	9 Apr 2003 19:20:24 -0000	1.2
+++ mips/idt32334/current/ChangeLog	10 Apr 2003 18:04:54 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mips_idt32334.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/mips_idt32334.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: mips/idt32334/current/src/mips_idt32334.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/idt32334/current/src/mips_idt32334.ld,v
retrieving revision 1.2
diff -u -5 -r1.2 mips_idt32334.ld
--- mips/idt32334/current/src/mips_idt32334.ld	9 Apr 2003 19:20:24 -0000	1.2
+++ mips/idt32334/current/src/mips_idt32334.ld	10 Apr 2003 18:04:54 -0000
@@ -60,11 +60,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 /* FIXME: The MLT should pass in the required alignment since it must be
  * the same as the VMA's alignment. As a result of this bug, all the MIPS32
  * ROM mlt files have alignment 8, when some should have alignment 4
  * (902557-CR)
Index: mips/mips32/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/mips32/current/ChangeLog,v
retrieving revision 1.8
diff -u -5 -r1.8 ChangeLog
--- mips/mips32/current/ChangeLog	9 Apr 2003 19:19:47 -0000	1.8
+++ mips/mips32/current/ChangeLog	10 Apr 2003 18:04:54 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mips_mips32.ld:
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.	
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/mips_mips32.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: mips/mips32/current/src/mips_mips32.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/mips32/current/src/mips_mips32.ld,v
retrieving revision 1.4
diff -u -5 -r1.4 mips_mips32.ld
--- mips/mips32/current/src/mips_mips32.ld	9 Apr 2003 19:19:47 -0000	1.4
+++ mips/mips32/current/src/mips_mips32.ld	10 Apr 2003 18:04:54 -0000
@@ -48,11 +48,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 /* FIXME: The MLT should pass in the required alignment since it must be
  * the same as the VMA's alignment. As a result of this bug, all the MIPS32
  * ROM mlt files have alignment 8, when some should have alignment 4
  * (902557-CR)
Index: mips/mips64/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/mips64/current/ChangeLog,v
retrieving revision 1.7
diff -u -5 -r1.7 ChangeLog
--- mips/mips64/current/ChangeLog	9 Apr 2003 19:25:52 -0000	1.7
+++ mips/mips64/current/ChangeLog	10 Apr 2003 18:04:54 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mips_mips64.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/mips_mips64.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: mips/mips64/current/src/mips_mips64.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/mips64/current/src/mips_mips64.ld,v
retrieving revision 1.5
diff -u -5 -r1.5 mips_mips64.ld
--- mips/mips64/current/src/mips_mips64.ld	9 Apr 2003 19:25:52 -0000	1.5
+++ mips/mips64/current/src/mips_mips64.ld	10 Apr 2003 18:04:55 -0000
@@ -48,11 +48,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 /* FIXME: The MLT should pass in the required alignment since it must be
  * the same as the VMA's alignment. As a result of this bug, all the MIPS64
  * ROM mlt files have alignment 8, when some should have alignment 4
  * (902557-CR)
Index: mips/rm7000/var/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/rm7000/var/current/ChangeLog,v
retrieving revision 1.8
diff -u -5 -r1.8 ChangeLog
--- mips/rm7000/var/current/ChangeLog	9 Apr 2003 19:20:32 -0000	1.8
+++ mips/rm7000/var/current/ChangeLog	10 Apr 2003 18:04:55 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mips_rm7000.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/mips_rm7000.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: mips/rm7000/var/current/src/mips_rm7000.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/rm7000/var/current/src/mips_rm7000.ld,v
retrieving revision 1.5
diff -u -5 -r1.5 mips_rm7000.ld
--- mips/rm7000/var/current/src/mips_rm7000.ld	9 Apr 2003 19:20:32 -0000	1.5
+++ mips/rm7000/var/current/src/mips_rm7000.ld	10 Apr 2003 18:04:55 -0000
@@ -48,11 +48,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #if defined(EXTRAS)
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 /* FIXME: The MLT should pass in the required alignment since it must be
  * the same as the VMA's alignment. As a result of this bug, all the
  * ROM mlt files have alignment 8, when some should have alignment 4
  * (902557-CR)
Index: mips/tx39/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/tx39/current/ChangeLog,v
retrieving revision 1.18
diff -u -5 -r1.18 ChangeLog
--- mips/tx39/current/ChangeLog	9 Apr 2003 19:20:38 -0000	1.18
+++ mips/tx39/current/ChangeLog	10 Apr 2003 18:04:55 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mips_tx39.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/mips_tx39.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: mips/tx39/current/src/mips_tx39.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/tx39/current/src/mips_tx39.ld,v
retrieving revision 1.12
diff -u -5 -r1.12 mips_tx39.ld
--- mips/tx39/current/src/mips_tx39.ld	9 Apr 2003 19:20:38 -0000	1.12
+++ mips/tx39/current/src/mips_tx39.ld	10 Apr 2003 18:04:56 -0000
@@ -48,11 +48,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 /* FIXME: The MLT should pass in the required alignment since it must be
  * the same as the VMA's alignment. As a result of this bug, all the JMR3904
  * ROM mlt files have alignment 8, when some should have alignment 4
  * (902557-CR)
Index: mips/tx49/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/tx49/current/ChangeLog,v
retrieving revision 1.5
diff -u -5 -r1.5 ChangeLog
--- mips/tx49/current/ChangeLog	9 Apr 2003 19:21:25 -0000	1.5
+++ mips/tx49/current/ChangeLog	10 Apr 2003 18:04:56 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mips_tx49.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-04-09  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* src/mips_tx49.ld:
         Fix .gnulinkonce.s -> .gnu.linkonce.s typo.
 
Index: mips/tx49/current/src/mips_tx49.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/tx49/current/src/mips_tx49.ld,v
retrieving revision 1.4
diff -u -5 -r1.4 mips_tx49.ld
--- mips/tx49/current/src/mips_tx49.ld	9 Apr 2003 19:21:25 -0000	1.4
+++ mips/tx49/current/src/mips_tx49.ld	10 Apr 2003 18:04:56 -0000
@@ -48,11 +48,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #if defined(EXTRAS) && defined(CYGPKG_IO)
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 /* FIXME: The MLT should pass in the required alignment since it must be
  * the same as the VMA's alignment. As a result of this bug, all the REF4955
  * ROM mlt files have alignment 8, when some should have alignment 4
  * (902557-CR)
Index: mips/upd985xx/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/upd985xx/current/ChangeLog,v
retrieving revision 1.2
diff -u -5 -r1.2 ChangeLog
--- mips/upd985xx/current/ChangeLog	23 May 2002 23:03:48 -0000	1.2
+++ mips/upd985xx/current/ChangeLog	10 Apr 2003 18:04:57 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/hal_mips_upd985xx.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2002-04-02  Hugo Tyson  <hmt at redhat dot com>
 2002-04-02  Anssi Pulkkinen <anssi dot pulkkinen at ascom dot com>
 
 	* src/var_misc.c (cyg_hal_interrupt_acknowledge): Remove the read
 	of the read-clear ISR register - it loses other pending interrupt
Index: mips/upd985xx/current/src/hal_mips_upd985xx.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/upd985xx/current/src/hal_mips_upd985xx.ld,v
retrieving revision 1.2
diff -u -5 -r1.2 hal_mips_upd985xx.ld
--- mips/upd985xx/current/src/hal_mips_upd985xx.ld	23 May 2002 23:03:49 -0000	1.2
+++ mips/upd985xx/current/src/hal_mips_upd985xx.ld	10 Apr 2003 18:04:57 -0000
@@ -43,11 +43,15 @@
 ENTRY(reset_vector)
 OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-littlemips")
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: mips/vr4300/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/vr4300/current/ChangeLog,v
retrieving revision 1.10
diff -u -5 -r1.10 ChangeLog
--- mips/vr4300/current/ChangeLog	23 May 2002 23:03:49 -0000	1.10
+++ mips/vr4300/current/ChangeLog	10 Apr 2003 18:04:59 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mips_vr4300.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2001-12-05  Nick Garnett  <nickg at redhat dot com>
 
 	* include/variant.inc: Add ifdef around cache clearing code to
 	only do this in non-RAM-startup configurations. If this is done in
 	a RAM-startup configuration, it can play merry havoc with the
Index: mips/vr4300/current/src/mips_vr4300.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/vr4300/current/src/mips_vr4300.ld,v
retrieving revision 1.6
diff -u -5 -r1.6 mips_vr4300.ld
--- mips/vr4300/current/src/mips_vr4300.ld	23 May 2002 23:03:51 -0000	1.6
+++ mips/vr4300/current/src/mips_vr4300.ld	10 Apr 2003 18:04:59 -0000
@@ -43,11 +43,15 @@
 ENTRY(reset_vector)
 OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-littlemips")
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: mn10300/am31/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mn10300/am31/current/ChangeLog,v
retrieving revision 1.11
diff -u -5 -r1.11 ChangeLog
--- mn10300/am31/current/ChangeLog	14 Mar 2003 11:13:37 -0000	1.11
+++ mn10300/am31/current/ChangeLog	10 Apr 2003 18:04:59 -0000
@@ -1,5 +1,15 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mn10300_am31.ld:
+	Added .eh_frame to data section. This is a stopgap fix to allow
+	C++ programs that define exceptions to link and run. It does not
+	allow them to actually throw exceptions, since that depends on
+	compiler changes that have not been made. Further, more
+	far-reaching, linker script changes will also be needs when that
+	happens.	
+
 2003-03-14  Bart Veer  <bartv at ecoscentric dot com>
 
 	* src/mn10300_am31.ld: add entries for debug sections, needed by
 	current tools
 
Index: mn10300/am31/current/src/mn10300_am31.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mn10300/am31/current/src/mn10300_am31.ld,v
retrieving revision 1.10
diff -u -5 -r1.10 mn10300_am31.ld
--- mn10300/am31/current/src/mn10300_am31.ld	14 Mar 2003 11:13:40 -0000	1.10
+++ mn10300/am31/current/src/mn10300_am31.ld	10 Apr 2003 18:05:00 -0000
@@ -107,10 +107,11 @@
     . = ALIGN (4); \
     __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \
     __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \
     _GOT_START = ABSOLUTE (.); _GLOBAL_OFFSET_TABLE_ = ABSOLUTE (.) + 32768; _SDA_BASE_ = ABSOLUTE (.); \
     *(.got.plt) *(.got) _GOT_END_ = ABSOLUTE (.); \
+    *(.eh_frame) \
     *(.dynamic) *(.sdata*) *(.sbss*) } \
     > _region_ \
     __rom_data_start = LOADADDR (.data); \
     __ram_data_end = .; PROVIDE (__ram_data_end = .); _edata = .; PROVIDE (edata = .);
 
Index: mn10300/am33/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mn10300/am33/current/ChangeLog,v
retrieving revision 1.12
diff -u -5 -r1.12 ChangeLog
--- mn10300/am33/current/ChangeLog	14 Mar 2003 11:13:43 -0000	1.12
+++ mn10300/am33/current/ChangeLog	10 Apr 2003 18:05:00 -0000
@@ -1,5 +1,17 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/mn10300_am33.ld: 
+	Added .eh_frame to data section. This is a stopgap fix to allow
+	C++ programs that define exceptions to link and run. It does not
+	allow them to actually throw exceptions, since that depends on
+	compiler changes that have not been made. Further, more
+	far-reaching, linker script changes will also be needs when that
+	happens.
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-03-14  Bart Veer  <bartv at ecoscentric dot com>
 
 	* src/mn10300_am33.ld: add entries for debug sections, needed by
 	current tools
 
Index: mn10300/am33/current/src/mn10300_am33.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mn10300/am33/current/src/mn10300_am33.ld,v
retrieving revision 1.7
diff -u -5 -r1.7 mn10300_am33.ld
--- mn10300/am33/current/src/mn10300_am33.ld	14 Mar 2003 11:13:46 -0000	1.7
+++ mn10300/am33/current/src/mn10300_am33.ld	10 Apr 2003 18:05:00 -0000
@@ -43,11 +43,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 
 #define ALIGN_LMA 4
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
@@ -107,10 +111,11 @@
     . = ALIGN(4); \
     __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \
     __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \
     _GOT_START = ABSOLUTE (.); _GLOBAL_OFFSET_TABLE_ = ABSOLUTE (.) + 32768; _SDA_BASE_ = ABSOLUTE (.); \
     *(.got.plt) *(.got) _GOT_END_ = ABSOLUTE (.); \
+    *(.eh_frame) \
     *(.dynamic) *(.sdata*) *(.sbss*) } \
     > _region_ \
     __rom_data_start = LOADADDR (.data); \
     __ram_data_end = .; PROVIDE (__ram_data_end = .); _edata = .; PROVIDE (edata = .);
 
Index: powerpc/arch/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/powerpc/arch/current/ChangeLog,v
retrieving revision 1.48
diff -u -5 -r1.48 ChangeLog
--- powerpc/arch/current/ChangeLog	8 Mar 2003 03:39:19 -0000	1.48
+++ powerpc/arch/current/ChangeLog	10 Apr 2003 18:05:03 -0000
@@ -1,5 +1,17 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/powerpc.ld: 
+	Added .eh_frame to data section. This is a stopgap fix to allow
+	C++ programs that define exceptions to link and run. It does not
+	allow them to actually throw exceptions, since that depends on
+	compiler changes that have not been made. Further, more
+	far-reaching, linker script changes will also be needs when that
+	happens.
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-03-08  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	* include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Initialize
 	what would be FP and LR in the previous stack frame to make
 	GDB backtraces happy.
Index: powerpc/arch/current/src/powerpc.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/powerpc/arch/current/src/powerpc.ld,v
retrieving revision 1.15
diff -u -5 -r1.15 powerpc.ld
--- powerpc/arch/current/src/powerpc.ld	23 May 2002 23:04:14 -0000	1.15
+++ powerpc/arch/current/src/powerpc.ld	10 Apr 2003 18:05:03 -0000
@@ -51,11 +51,15 @@
 STARTUP(vectors.o)
 ENTRY(__exception_reset)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
@@ -117,10 +121,11 @@
       *( .2ram.*) ;                                                           \
     __GOT2_START__ = ABSOLUTE(.); *(.got2) __GOT2_END__ = ABSOLUTE(.);        \
     __GOT_START = ABSOLUTE(.); _GLOBAL_OFFSET_TABLE_ = ABSOLUTE(. + 32768);   \
     _SDA_BASE_ = ABSOLUTE(.); *(.got.plt) *(.got)                             \
     __GOT_END__ = ABSOLUTE(.);  *(.dynamic)                                   \
+    *(.eh_frame)                                                              \
       /* We want the small data sections together, so single-instruction */   \
       /* offsets can access them all, and initialized data all before    */   \
       /* uninitialized, so we can shorten the on-disk segment size.      */   \
     __SDATA_START__ = ABSOLUTE(.); *(.sdata) *(.sdata.*)                      \
     __SDATA2_START__ = ABSOLUTE(.); *(.sdata2*) }                             \
Index: sh/arch/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sh/arch/current/ChangeLog,v
retrieving revision 1.42
diff -u -5 -r1.42 ChangeLog
--- sh/arch/current/ChangeLog	11 Mar 2003 17:14:15 -0000	1.42
+++ sh/arch/current/ChangeLog	10 Apr 2003 18:05:06 -0000
@@ -1,5 +1,10 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/sh.ld:
+	Added entry for .stack section in data section.
+
 2003-03-11  Mark Salter  <msalter at redhat dot com>
 
 	* src/redboot_linux_exec.c (do_exec): Call eth_drv_stop as necessary.
 
 2003-01-31  Mark Salter  <msalter at redhat dot com>
Index: sh/arch/current/src/sh.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sh/arch/current/src/sh.ld,v
retrieving revision 1.14
diff -u -5 -r1.14 sh.ld
--- sh/arch/current/src/sh.ld	23 May 2002 23:04:39 -0000	1.14
+++ sh/arch/current/src/sh.ld	10 Apr 2003 18:05:12 -0000
@@ -92,10 +92,11 @@
     CYG_LABEL_DEFN(__DTOR_LIST__) = ABSOLUTE(.);			 \
       KEEP(*(SORT(.dtors*))) CYG_LABEL_DEFN(__DTOR_END__) = ABSOLUTE(.); \
     . = ALIGN(8);							 \
       KEEP(*( SORT (.ecos.table.*))) ;					 \
     . = ALIGN(4);                                                        \
+     *(.stack)                                                           \     
     } > _region_							 \
     CYG_LABEL_DEFN(_rom_data_start) = LOADADDR(.data);			 \
     CYG_LABEL_DEFN(_ram_data_end) = .; PROVIDE(_ram_data_end = .);	 \
     CYG_LABEL_DEFN(edata) = .; PROVIDE (edata = .);
 
Index: sparc/arch/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sparc/arch/current/ChangeLog,v
retrieving revision 1.3
diff -u -5 -r1.3 ChangeLog
--- sparc/arch/current/ChangeLog	19 Oct 2002 00:22:50 -0000	1.3
+++ sparc/arch/current/ChangeLog	10 Apr 2003 18:05:12 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/sparc.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2002-10-19  Jonathan Larmour  <jifl at eCosCentric dot com>
 
 	Patch from Jiri Gaisler:
 	* src/context.S (hal_thread_load_context): Wait a little after writing
 	psr.
Index: sparc/arch/current/src/sparc.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sparc/arch/current/src/sparc.ld,v
retrieving revision 1.2
diff -u -5 -r1.2 sparc.ld
--- sparc/arch/current/src/sparc.ld	23 May 2002 23:05:08 -0000	1.2
+++ sparc/arch/current/src/sparc.ld	10 Apr 2003 18:05:12 -0000
@@ -40,11 +40,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: sparclite/arch/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sparclite/arch/current/ChangeLog,v
retrieving revision 1.18
diff -u -5 -r1.18 ChangeLog
--- sparclite/arch/current/ChangeLog	23 May 2002 23:05:13 -0000	1.18
+++ sparclite/arch/current/ChangeLog	10 Apr 2003 18:05:12 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/sparclite.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2002-04-29  Jonathan Larmour  <jlarmour at redhat dot com>
 
 	* src/vectors.S:
 	* src/vec_xvsr.S:
 	* src/vec_ivsr.S:
Index: sparclite/arch/current/src/sparclite.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sparclite/arch/current/src/sparclite.ld,v
retrieving revision 1.8
diff -u -5 -r1.8 sparclite.ld
--- sparclite/arch/current/src/sparclite.ld	23 May 2002 23:05:15 -0000	1.8
+++ sparclite/arch/current/src/sparclite.ld	10 Apr 2003 18:05:12 -0000
@@ -40,11 +40,15 @@
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: synth/arch/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/synth/arch/current/ChangeLog,v
retrieving revision 1.15
diff -u -5 -r1.15 ChangeLog
--- synth/arch/current/ChangeLog	30 Mar 2003 17:52:39 -0000	1.15
+++ synth/arch/current/ChangeLog	10 Apr 2003 18:05:12 -0000
@@ -1,5 +1,11 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/synth.ld: 
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2003-03-30  Bart Veer  <bartv at ecoscentric dot com>
 
 	* src/synth_intr.c (synth_auxiliary_xchgmsg): fix typo reported
 	by Savin Zlobec
 
Index: synth/arch/current/src/synth.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/synth/arch/current/src/synth.ld,v
retrieving revision 1.3
diff -u -5 -r1.3 synth.ld
--- synth/arch/current/src/synth.ld	23 May 2002 23:05:27 -0000	1.3
+++ synth/arch/current/src/synth.ld	10 Apr 2003 18:05:12 -0000
@@ -51,11 +51,15 @@
 STARTUP(vectors.o)
 ENTRY(_start)
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 8
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
Index: v85x/ceb_v850/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/v85x/ceb_v850/current/ChangeLog,v
retrieving revision 1.15
diff -u -5 -r1.15 ChangeLog
--- v85x/ceb_v850/current/ChangeLog	29 May 2002 18:28:19 -0000	1.15
+++ v85x/ceb_v850/current/ChangeLog	10 Apr 2003 18:05:13 -0000
@@ -1,5 +1,10 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* include/pkgconf/mlt_v85x_v850_ceb_ram.ldi:
+	Added SECTION_ram_vectors().
+
 2002-05-28  Jonathan Larmour  <jlarmour at redhat dot com>
 
 	* include/hal_platform_setup.h: Correctly calculate wait states based
 	on external RAM/ROM timing.
 
Index: v85x/ceb_v850/current/include/pkgconf/mlt_v85x_v850_ceb_ram.ldi
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/v85x/ceb_v850/current/include/pkgconf/mlt_v85x_v850_ceb_ram.ldi,v
retrieving revision 1.4
diff -u -5 -r1.4 mlt_v85x_v850_ceb_ram.ldi
--- v85x/ceb_v850/current/include/pkgconf/mlt_v85x_v850_ceb_ram.ldi	22 Jun 2001 18:19:06 -0000	1.4
+++ v85x/ceb_v850/current/include/pkgconf/mlt_v85x_v850_ceb_ram.ldi	10 Apr 2003 18:05:13 -0000
@@ -12,10 +12,11 @@
 SECTIONS
 {
     SECTIONS_BEGIN
     CYG_LABEL_DEFN(__reserved) = 0xfc0000; . = CYG_LABEL_DEFN(__reserved) + 0x4000;
     SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_ram_vectors (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
Index: v85x/v850/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/v85x/v850/current/ChangeLog,v
retrieving revision 1.9
diff -u -5 -r1.9 ChangeLog
--- v85x/v850/current/ChangeLog	23 May 2002 23:05:41 -0000	1.9
+++ v85x/v850/current/ChangeLog	10 Apr 2003 18:05:13 -0000
@@ -1,5 +1,17 @@
+2003-04-10  Nick Garnett  <nickg at balti dot calivar dot com>
+
+	* src/v85x_v850.ld:
+	Added .eh_frame to data section. This is a stopgap fix to allow
+	C++ programs that define exceptions to link and run. It does not
+	allow them to actually throw exceptions, since that depends on
+	compiler changes that have not been made. Further, more
+	far-reaching, linker script changes will also be needs when that
+	happens.	
+	Added libsupc++.a to GROUP() directive for GCC versions later than
+	3.0.
+
 2002-05-23  Jesper Skov  <jskov at redhat dot com>
 
 	* cdl/hal_v85x_v850.cdl: Don't run cache tests.
 
 2001-06-21  Jonathan Larmour  <jlarmour at redhat dot com>
Index: v85x/v850/current/src/v85x_v850.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/v85x/v850/current/src/v85x_v850.ld,v
retrieving revision 1.6
diff -u -5 -r1.6 v85x_v850.ld
--- v85x/v850/current/src/v85x_v850.ld	23 May 2002 23:05:45 -0000	1.6
+++ v85x/v850/current/src/v85x_v850.ld	10 Apr 2003 18:05:13 -0000
@@ -49,11 +49,15 @@
 ENTRY(reset_vector)
 #endif
 #ifdef EXTRAS
 INPUT(extras.o)
 #endif
+#if (__GNUC__ >= 3)
+GROUP(libtarget.a libgcc.a libsupc++.a)
+#else
 GROUP(libtarget.a libgcc.a)
+#endif
 
 #define ALIGN_LMA 4
 #define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
 #define LMA_EQ_VMA
 #define FORCE_OUTPUT . = .
@@ -124,10 +128,11 @@
     _GOT2_START_ = ABSOLUTE (.); *(.got2) _GOT2_END_ = ABSOLUTE (.); \
     . = ALIGN (4); \
     KEEP(*( SORT (.ecos.table.*))) ; \
     ___CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) ___CTOR_END__ = ABSOLUTE (.); \
     ___DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) ___DTOR_END__ = ABSOLUTE (.); \
+    *(.eh_frame) \
     *(.dynamic) *(.sdata*) *(.sbss*) } \
     > _region_ \
     ___rom_data_start = LOADADDR (.data); \
     ___ram_data_end = .; PROVIDE (___ram_data_end = .); _edata = .; PROVIDE (edata = .); \
     PROVIDE (___rom_data_end = LOADADDR (.data) + SIZEOF(.data));


-- 
Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com/     The eCos and RedBoot experts


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]