summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-30 08:15:35 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-30 08:15:35 +0000
commit10ace498cbda83ef58bd42223168fa9c2574ee6d (patch)
tree6f5108c09f87cb74cc547b85df12c64fae42f15c /cpukit
parent2010-11-29 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-10ace498cbda83ef58bd42223168fa9c2574ee6d.tar.bz2
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.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog7
-rw-r--r--cpukit/libcsupport/src/newlibc_exit.c23
-rw-r--r--cpukit/score/src/threadhandler.c22
3 files changed, 10 insertions, 42 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index 0b5f27c320..22996aa8ef 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -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
diff --git a/cpukit/libcsupport/src/newlibc_exit.c b/cpukit/libcsupport/src/newlibc_exit.c
index 3cf602d62e..818ba884f4 100644
--- a/cpukit/libcsupport/src/newlibc_exit.c
+++ b/cpukit/libcsupport/src/newlibc_exit.c
@@ -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.
diff --git a/cpukit/score/src/threadhandler.c b/cpukit/score/src/threadhandler.c
index 2082bdfb78..3fffd8fb83 100644
--- a/cpukit/score/src/threadhandler.c
+++ b/cpukit/score/src/threadhandler.c
@@ -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