diff packages/language/c/libc/current/src/support/mainthread.cxx @ 44:41bd4f3a90de ecos-sw-1999-10-08

Merge from eCos master repository on 1999-10-08-07:47:04-BST
author jlarmour
date Fri, 08 Oct 1999 13:16:25 +0000
parents 443894e2e912
children c38311975d4f
line wrap: on
line diff
--- a/packages/language/c/libc/current/src/support/mainthread.cxx
+++ b/packages/language/c/libc/current/src/support/mainthread.cxx
@@ -93,29 +93,40 @@ static cyg_libc_dummy_constructor_class 
                                             CYG_INIT_PRIORITY(PREDEFAULT);
 #endif
 
+#ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+
 // override stack size on some platforms
 #ifdef CYGNUM_HAL_STACK_SIZE_TYPICAL
-# if CYGNUM_LIBC_MAIN_STACK_SIZE < CYGNUM_HAL_STACK_SIZE_TYPICAL
-#  undef CYGNUM_LIBC_MAIN_STACK_SIZE
-#  define CYGNUM_LIBC_MAIN_STACK_SIZE CYGNUM_HAL_STACK_SIZE_TYPICAL
+# if CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE < CYGNUM_HAL_STACK_SIZE_TYPICAL
+#  undef CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE
+#  define CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE CYGNUM_HAL_STACK_SIZE_TYPICAL
 # endif
 #endif
 
-// Make this weak so that users can override this from their own code
-// if they really want. FIXME: but its still allocated
-cyg_uint8 cyg_libc_main_stack[ CYGNUM_LIBC_MAIN_STACK_SIZE ]
-                                                        CYGBLD_ATTRIB_WEAK;
+static cyg_uint8 cyg_libc_main_stack[ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE ];
+
+#else // !ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+
+extern char *cyg_libc_main_stack;
+extern int cyg_libc_main_stack_size;
+
+#endif // !ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
 
 // GLOBALS
 
 // let the main thread be global so people can play with it (e.g. suspend
 // or resume etc.) if that's what they want to do
-Cyg_Thread cyg_libc_main_thread CYGBLD_ATTRIB_WEAK CYG_INIT_PRIORITY(LIBC) =
-     Cyg_Thread(CYG_SCHED_DEFAULT_INFO,
+Cyg_Thread cyg_libc_main_thread CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC) =
+    Cyg_Thread(CYGNUM_LIBC_MAIN_THREAD_PRIORITY,
                 &cyg_libc_invoke_main, (CYG_ADDRWORD) 0,
                 "main",
-                (CYG_ADDRESS) &cyg_libc_main_stack,
-                CYGNUM_LIBC_MAIN_STACK_SIZE);
+                (CYG_ADDRESS) &cyg_libc_main_stack[0],
+#ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+                CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE
+#else
+                cyg_libc_main_stack_size
+#endif
+              );
 
 #endif // ifdef CYGSEM_LIBC_STARTUP_MAIN_THREAD