This is the mail archive of the
ecos-patches@sources.redhat.com
mailing list for the eCos project.
HALs -- C++ support restored
- From: Nick Garnett <nickg at ecoscentric dot com>
- To: ecos-patches at sources dot redhat dot com
- Date: 10 Apr 2003 19:15:13 +0100
- Subject: 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