* libcsupport/src/newlibc_exit.c, score/src/threadhandler.c: Revert
	previous commit due to too many broken linker command files.  The
	HAVE_INITFINI_ARRAY is defined for nearly all targets by Newlib, but
	only few linker command files respect this.
This commit is contained in:
Sebastian Huber
2010-11-30 08:15:35 +00:00
parent d6a72fff81
commit 10ace498cb
3 changed files with 10 additions and 42 deletions
+7
View File
@@ -1,3 +1,10 @@
2010-11-30 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libcsupport/src/newlibc_exit.c, score/src/threadhandler.c: Revert
previous commit due to too many broken linker command files. The
HAVE_INITFINI_ARRAY is defined for nearly all targets by Newlib, but
only few linker command files respect this.
2010-11-29 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libcsupport/src/newlibc_exit.c, score/src/threadhandler.c: Added
+3 -20
View File
@@ -118,13 +118,10 @@ void libc_wrapup(void)
*/
#include <unistd.h>
#include <newlib.h>
#if defined(HAVE_INITFINI_ARRAY)
extern void __libc_fini_array(void);
#endif
/* FIXME: These defines are a blatant hack */
#define EXIT_SYMBOL _exit
#if defined(__AVR__)
#undef __USE_INIT_FINI__
#endif
@@ -138,22 +135,8 @@ void libc_wrapup(void)
extern void FINI_SYMBOL( void );
#endif
void _exit(int status)
void EXIT_SYMBOL(int status)
{
#if defined(HAVE_INITFINI_ARRAY)
/*
* According to
*
* System V Application Binary Interface
* Chapter 5
* Initialization and Termination Functions
*
* we have to call the functions referenced by the .fini_array before the
* one referenced by the .fini section.
*/
__libc_fini_array();
#endif
/*
* If the toolset uses init/fini sections, then we need to
* run the global destructors now.
-22
View File
@@ -30,14 +30,6 @@
#include <rtems/score/userext.h>
#include <rtems/score/wkspace.h>
#if defined(RTEMS_NEWLIB)
#include <newlib.h>
#endif
#if defined(HAVE_INITFINI_ARRAY)
extern void __libc_init_array(void);
#endif
#if defined(__AVR__)
#undef __USE_INIT_FINI__
#endif
@@ -146,20 +138,6 @@ void _Thread_Handler( void )
*/
if (!doneCons) /* && (volatile void *)_init) */ {
INIT_NAME ();
#if defined(HAVE_INITFINI_ARRAY)
/*
* According to
*
* System V Application Binary Interface
* Chapter 5
* Initialization and Termination Functions
*
* we have to call the functions referenced by the .init_array after
* the one referenced by the .init section.
*/
__libc_init_array();
#endif
}
#endif