aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/pthread.c16
2 files changed, 13 insertions, 8 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 867e5e34cc..e994dcc297 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+1999-12-20 Andreas Jaeger <aj@suse.de>
+
+ * pthread.c (pthread_initialize): Move getrlimit call after
+ setting of errno.
+
1999-12-18 Ulrich Drepper <drepper@cygnus.com>
* Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index a9083635b6..dfde08f432 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -299,14 +299,6 @@ static void pthread_initialize(void)
STACK_SIZE boundary. */
__pthread_initial_thread_bos =
(char *)(((long)CURRENT_STACK_FRAME - 2 * STACK_SIZE) & ~(STACK_SIZE - 1));
- /* Play with the stack size limit to make sure that no stack ever grows
- beyond STACK_SIZE minus one page (to act as a guard page). */
- getrlimit(RLIMIT_STACK, &limit);
- max_stack = STACK_SIZE - __getpagesize();
- if (limit.rlim_cur > max_stack) {
- limit.rlim_cur = max_stack;
- setrlimit(RLIMIT_STACK, &limit);
- }
/* Update the descriptor for the initial thread. */
__pthread_initial_thread.p_pid = __getpid();
/* If we have special thread_self processing, initialize that for the
@@ -317,6 +309,14 @@ static void pthread_initialize(void)
/* The errno/h_errno variable of the main thread are the global ones. */
__pthread_initial_thread.p_errnop = &_errno;
__pthread_initial_thread.p_h_errnop = &_h_errno;
+ /* Play with the stack size limit to make sure that no stack ever grows
+ beyond STACK_SIZE minus one page (to act as a guard page). */
+ getrlimit(RLIMIT_STACK, &limit);
+ max_stack = STACK_SIZE - __getpagesize();
+ if (limit.rlim_cur > max_stack) {
+ limit.rlim_cur = max_stack;
+ setrlimit(RLIMIT_STACK, &limit);
+ }
/* Likewise for the resolver state _res. */
__pthread_initial_thread.p_resp = &_res;
#ifdef __SIGRTMIN