2001-11-20 Joel Sherrill <joel@OARcorp.com>

* src/threadhandler.c: When __USE__MAIN__ is defined by the toolset,
	invoke the global constructors via __main.  Reported as tested by
	Alexandra Kossovsky <sasha@oktet.ru> and  Victor V. Vengerov
	<vvv@oktet.ru> in conjunction with a new set of tool RPMs
	(gcc2.95.3newlib1.9.0-3).  This was tracked as GNATS PR tools/84.
This commit is contained in:
Joel Sherrill
2001-11-20 18:22:35 +00:00
parent 82a48d07a4
commit 94ab166c67
4 changed files with 30 additions and 4 deletions

View File

@@ -1,3 +1,11 @@
2001-11-20 Joel Sherrill <joel@OARcorp.com>
* src/threadhandler.c: When __USE__MAIN__ is defined by the toolset,
invoke the global constructors via __main. Reported as tested by
Alexandra Kossovsky <sasha@oktet.ru> and Victor V. Vengerov
<vvv@oktet.ru> in conjunction with a new set of tool RPMs
(gcc2.95.3newlib1.9.0-3). This was tracked as GNATS PR tools/84.
2001-11-07 Joel Sherrill <joel@OARcorp.com>
Reported by Todor.Todorov@barco.com and tracked as PR36.

View File

@@ -58,7 +58,7 @@ void _Thread_Handler( void )
{
ISR_Level level;
Thread_Control *executing;
#if defined(__USE_INIT_FINI__)
#if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__)
static char doneConstructors;
char doneCons;
#endif
@@ -73,7 +73,7 @@ void _Thread_Handler( void )
level = executing->Start.isr_level;
_ISR_Set_level(level);
#if defined(__USE_INIT_FINI__)
#if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__)
doneCons = doneConstructors;
doneConstructors = 1;
#endif
@@ -95,6 +95,11 @@ void _Thread_Handler( void )
if (!doneCons)
_init ();
#endif
#if defined(__USE__MAIN__)
if (!doneCons)
__main ();
#endif
switch ( executing->Start.prototype ) {
case THREAD_START_NUMERIC: