summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/exec/score/ChangeLog14
-rw-r--r--c/src/exec/score/src/threadhandler.c13
-rw-r--r--cpukit/score/ChangeLog14
-rw-r--r--cpukit/score/src/threadhandler.c13
4 files changed, 54 insertions, 0 deletions
diff --git a/c/src/exec/score/ChangeLog b/c/src/exec/score/ChangeLog
index f12205258e..287701924d 100644
--- a/c/src/exec/score/ChangeLog
+++ b/c/src/exec/score/ChangeLog
@@ -1,4 +1,18 @@
+2001-09-27 Eric Norum <eric.norum@usask.ca>
+
+ * src/threadhandler.c: Now process C++ global constructors
+ (_init) as part of the first task execution not in BSP space.
+ This depends on the toolset defining USE_INIT_FINI so you
+ have to have the right toolset version.
+
+2001-09-23 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * include/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
+ * include/rtems/Makefile.am: Use 'PREINSTALL_FILES ='.
+ * inline/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
+ * macros/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
+
2001-08-30 Joel Sherrill <joel@OARcorp.com>
* src/coremutex.c, src/coremutexseize.c, src/coremutexsurrender.c,
diff --git a/c/src/exec/score/src/threadhandler.c b/c/src/exec/score/src/threadhandler.c
index cfdb9292d1..d3755f4466 100644
--- a/c/src/exec/score/src/threadhandler.c
+++ b/c/src/exec/score/src/threadhandler.c
@@ -58,6 +58,10 @@ void _Thread_Handler( void )
{
ISR_Level level;
Thread_Control *executing;
+#ifdef USE_INIT_FINI
+ static char doneConstructors;
+ char doneCons;
+#endif
executing = _Thread_Executing;
@@ -69,6 +73,11 @@ void _Thread_Handler( void )
level = executing->Start.isr_level;
_ISR_Set_level(level);
+#ifdef USE_INIT_FINI
+ doneCons = doneConstructors;
+ doneConstructors = 1;
+#endif
+
/*
* Take care that 'begin' extensions get to complete before
* 'switch' extensions can run. This means must keep dispatch
@@ -82,6 +91,10 @@ void _Thread_Handler( void )
*/
_Thread_Enable_dispatch();
+#ifdef USE_INIT_FINI
+ if (!doneCons)
+ _init ();
+#endif
switch ( executing->Start.prototype ) {
case THREAD_START_NUMERIC:
diff --git a/cpukit/score/ChangeLog b/cpukit/score/ChangeLog
index f12205258e..287701924d 100644
--- a/cpukit/score/ChangeLog
+++ b/cpukit/score/ChangeLog
@@ -1,4 +1,18 @@
+2001-09-27 Eric Norum <eric.norum@usask.ca>
+
+ * src/threadhandler.c: Now process C++ global constructors
+ (_init) as part of the first task execution not in BSP space.
+ This depends on the toolset defining USE_INIT_FINI so you
+ have to have the right toolset version.
+
+2001-09-23 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * include/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
+ * include/rtems/Makefile.am: Use 'PREINSTALL_FILES ='.
+ * inline/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
+ * macros/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
+
2001-08-30 Joel Sherrill <joel@OARcorp.com>
* src/coremutex.c, src/coremutexseize.c, src/coremutexsurrender.c,
diff --git a/cpukit/score/src/threadhandler.c b/cpukit/score/src/threadhandler.c
index cfdb9292d1..d3755f4466 100644
--- a/cpukit/score/src/threadhandler.c
+++ b/cpukit/score/src/threadhandler.c
@@ -58,6 +58,10 @@ void _Thread_Handler( void )
{
ISR_Level level;
Thread_Control *executing;
+#ifdef USE_INIT_FINI
+ static char doneConstructors;
+ char doneCons;
+#endif
executing = _Thread_Executing;
@@ -69,6 +73,11 @@ void _Thread_Handler( void )
level = executing->Start.isr_level;
_ISR_Set_level(level);
+#ifdef USE_INIT_FINI
+ doneCons = doneConstructors;
+ doneConstructors = 1;
+#endif
+
/*
* Take care that 'begin' extensions get to complete before
* 'switch' extensions can run. This means must keep dispatch
@@ -82,6 +91,10 @@ void _Thread_Handler( void )
*/
_Thread_Enable_dispatch();
+#ifdef USE_INIT_FINI
+ if (!doneCons)
+ _init ();
+#endif
switch ( executing->Start.prototype ) {
case THREAD_START_NUMERIC: