summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads.old/pthread.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread/linuxthreads.old/pthread.c')
-rw-r--r--libpthread/linuxthreads.old/pthread.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libpthread/linuxthreads.old/pthread.c b/libpthread/linuxthreads.old/pthread.c
index 4adf66cd6..d9adfa432 100644
--- a/libpthread/linuxthreads.old/pthread.c
+++ b/libpthread/linuxthreads.old/pthread.c
@@ -528,10 +528,18 @@ int __pthread_initialize_manager(void)
__pthread_lock(__pthread_manager_thread.p_lock, NULL);
+#ifdef __ia64__
+ pid = __clone2(__pthread_manager_event,
+ (void **) __pthread_manager_thread_tos,
+ THREAD_MANAGER_STACK_SIZE,
+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
+ (void *)(long)manager_pipe[0]);
+#else
pid = clone(__pthread_manager_event,
(void **) __pthread_manager_thread_tos,
CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
(void *)(long)manager_pipe[0]);
+#endif
if (pid != -1)
{
@@ -555,9 +563,16 @@ int __pthread_initialize_manager(void)
}
if (pid == 0) {
+#ifdef __ia64__
+ pid = __clone2(__pthread_manager, (void **) __pthread_manager_thread_tos,
+ THREAD_MANAGER_STACK_SIZE,
+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
+ (void *)(long)manager_pipe[0]);
+#else
pid = clone(__pthread_manager, (void **) __pthread_manager_thread_tos,
CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
(void *)(long)manager_pipe[0]);
+#endif
}
if (pid == -1) {
free(__pthread_manager_thread_bos);