about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-11-16 18:49:07 -0800
committerBrian Anderson <banderson@mozilla.com>2011-11-16 18:49:07 -0800
commit5559e149e492efadd803eb65f34c259a90c595e7 (patch)
treeb66696671abd9e1735f83775c6fe63aedbc1ac14 /src
parent55f89dbed994fef53beeaec49b20d450ca9b72d4 (diff)
downloadrust-5559e149e492efadd803eb65f34c259a90c595e7.tar.gz
rust-5559e149e492efadd803eb65f34c259a90c595e7.zip
Revert "rt: Make stack growth code build on Linux"
This reverts commit da4b7da4e142a4c2119312c0e24b7c20bbe74e60.
Diffstat (limited to 'src')
-rw-r--r--src/rt/arch/i386/morestack.S7
-rw-r--r--src/rt/rust_scheduler.cpp4
2 files changed, 5 insertions, 6 deletions
diff --git a/src/rt/arch/i386/morestack.S b/src/rt/arch/i386/morestack.S
index b8e14bdb579..ec356ea91c6 100644
--- a/src/rt/arch/i386/morestack.S
+++ b/src/rt/arch/i386/morestack.S
@@ -106,7 +106,7 @@ L$bail:
 
 #ifdef __APPLE__
 
-		.section	__IMPORT,__pointers,non_lazy_symbol_pointers
+	.section	__IMPORT,__pointers,non_lazy_symbol_pointers
 rust_new_stack_sym:
     .indirect_symbol RUST_NEW_STACK
     .long 0
@@ -114,10 +114,5 @@ rust_del_stack_sym:
     .indirect_symbol RUST_DEL_STACK
     .long 0
 
-#else
-
-rust_new_stack_sym:
-rust_del_stack_sym:
-
 #endif
 
diff --git a/src/rt/rust_scheduler.cpp b/src/rt/rust_scheduler.cpp
index cf6091818cc..b17565dda46 100644
--- a/src/rt/rust_scheduler.cpp
+++ b/src/rt/rust_scheduler.cpp
@@ -13,6 +13,9 @@ DWORD rust_scheduler::task_key;
 
 bool rust_scheduler::tls_initialized = false;
 
+// Defined in arch/*/record_sp.S.
+extern "C" void rust_record_sp(uintptr_t sp);
+
 rust_scheduler::rust_scheduler(rust_kernel *kernel,
                                rust_srv *srv,
                                int id) :
@@ -286,6 +289,7 @@ rust_scheduler::start_main_loop() {
              scheduled_task->state->name);
 
         place_task_in_tls(scheduled_task);
+        rust_record_sp(scheduled_task->stk->limit);
         //pthread_setspecific(89, (void *)scheduled_task->stk->limit);
 
         interrupt_flag = 0;