summaryrefslogtreecommitdiff
path: root/sysdeps/l4/hurd/ia32/pt-setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/l4/hurd/ia32/pt-setup.c')
-rw-r--r--sysdeps/l4/hurd/ia32/pt-setup.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sysdeps/l4/hurd/ia32/pt-setup.c b/sysdeps/l4/hurd/ia32/pt-setup.c
index e244dc16..a179bdfd 100644
--- a/sysdeps/l4/hurd/ia32/pt-setup.c
+++ b/sysdeps/l4/hurd/ia32/pt-setup.c
@@ -63,10 +63,14 @@ __pthread_setup (struct __pthread *thread,
thread->mcontext.pc = entry_point;
thread->mcontext.sp = stack_setup (thread, start_routine, arg);
- if (l4_same_threads (thread->threadid, l4_myself ()))
- l4_set_user_defined_handle ((l4_word_t) thread);
- else
- l4_set_user_defined_handle_of (thread->threadid,
- (l4_word_t) thread);
+
+ if (__pthread_num_threads != 1)
+ {
+ assert (! ADDR_IS_VOID (thread->exception_handler_stack.addr));
+ thread->exception_handler_sp
+ = ADDR_TO_PTR (addr_extend (thread->exception_handler_stack.addr,
+ 0, PAGESIZE_LOG2));
+ }
+
return 0;
}