Patch from Rosimildo DaSilva <rdasilva@connecttel.com> to make C++

exceptions work on the pc386 BSP with i386-elf.  This patch also
included changes to the i386-rtemself egcs configuration.
This commit is contained in:
Joel Sherrill
1999-06-15 22:01:04 +00:00
parent 1b67be7133
commit 8e0dcadec5
4 changed files with 23 additions and 3 deletions

View File

@@ -7,6 +7,9 @@
*cpp:
%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded)
*endfile:
crtend.o%s crtn.o%s
*lib:
%{!qrtems: %(old_lib)} %{qrtems: --start-group \
%{!qrtems_debug: -lrtemsall} %{qrtems_debug: -lrtemsall_g} \
@@ -15,7 +18,7 @@
*startfile:
%{!qrtems: %(old_startfile)} %{qrtems: \
%{!qrtems_debug: start.o%s} \
%{!qrtems_debug: start.o%s crti.o%s crtbegin.o%s} \
%{qrtems_debug: start_g.o%s}}
*link:

View File

@@ -39,7 +39,9 @@ include $(RTEMS_ROOT)/make/leaf.cfg
# (OPTIONAL) Add local stuff here using +=
#
DEFINES +=
# USE_INIT_FINI tells main.c what C++ help we need.
DEFINES += -DUSE_INIT_FINI
CPPFLAGS +=
CFLAGS +=

View File

@@ -67,7 +67,12 @@ SECTIONS
_etext = ALIGN( 0x10 ) ;
}
.data ADDR( .text ) + SIZEOF( .text ):
.init :
{ *( .init ) } = 0x9090
.fini :
{ *( .fini ) } = 0x9090
.data ADDR( .fini ) + SIZEOF( .fini ):
{
_data_start = . ;
*(.data)

View File

@@ -28,6 +28,11 @@ extern rtems_configuration_table Configuration;
extern rtems_configuration_table BSP_Configuration;
extern rtems_cpu_table Cpu_table;
#if defined(USE_INIT_FINI)
extern void _fini( void );
extern void _init( void );
#endif
rtems_interrupt_level bsp_isr_level;
/*
@@ -82,6 +87,11 @@ int boot_card(int argc, char **argv)
* are any.
*/
#if defined(USE_INIT_FINI)
atexit( _fini );
_init();
#endif
status = main(argc, argv);
/*