pike.git / src / main.c

version» Context lines:

pike.git/src/main.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   /**/   #include "global.h" - RCSID("$Id: main.c,v 1.117 2001/03/23 01:05:42 grubba Exp $"); + RCSID("$Id: main.c,v 1.118 2001/03/25 20:44:06 grubba Exp $");   #include "fdlib.h"   #include "backend.h"   #include "module.h"   #include "object.h"   #include "language.h"   #include "lex.h"   #include "pike_types.h"   #include "builtin_functions.h"   #include "array.h"   #include "stralloc.h"
pike.git/src/main.c:443: Inside #if defined(HAVE_GETRLIMIT) && defined(RLIMIT_STACK) and #if defined(__linux__) && defined(PIKE_THREADS)
     #if defined(__linux__) && defined(PIKE_THREADS)    /* This is a really really *stupid* limit in glibc 2.x    * which is not detectable since __pthread_initial_thread_bos    * went static. On a stupidity-scale from 1-10, this rates a    * solid 11. - Hubbe    */    if(lim.rlim_cur > 2*1024*1024) lim.rlim_cur=2*1024*1024;   #endif    -  Pike_interpreter.stack_top += STACK_DIRECTION * lim.rlim_cur; + #if STACK_DIRECTION < 0 +  Pike_interpreter.stack_top -= lim.rlim_cur; + #else /* STACK_DIRECTION >= 0 */ +  Pike_interpreter.stack_top += lim.rlim_cur; + #endif /* STACK_DIRECTION < 0 */      #if defined(__linux__) && defined(HAVE_DLOPEN) && defined(HAVE_DLFCN_H)    {    char ** bos_location;    void *handle;    /* damn this is ugly -Hubbe */    if((handle=dlopen(0, RTLD_LAZY)))    {    bos_location=dlsym(handle,"__pthread_initial_thread_bos");    dlclose(handle);
pike.git/src/main.c:479: Inside #if defined(HAVE_GETRLIMIT) && defined(RLIMIT_STACK) and #if defined(HAVE_PTHREAD_INITIAL_THREAD_BOS)
      if(__pthread_initial_thread_bos &&    (__pthread_initial_thread_bos - Pike_interpreter.stack_top) *STACK_DIRECTION < 0)    {    Pike_interpreter.stack_top=__pthread_initial_thread_bos;    }    }   #endif /* HAVE_PTHREAD_INITIAL_THREAD_BOS */   #endif /* __linux__ && HAVE_DLOPEN && HAVE_DLFCN_H */    -  Pike_interpreter.stack_top -= STACK_DIRECTION * 8192 * sizeof(char *); + #if STACK_DIRECTION < 0 +  Pike_interpreter.stack_top += 8192 * sizeof(char *); + #else /* STACK_DIRECTION >= 0 */ +  Pike_interpreter.stack_top -= 8192 * sizeof(char *); + #endif /* STACK_DIRECTION < 0 */    -  +    #ifdef STACK_DEBUG    fprintf(stderr, "1: C-stack: 0x%08p - 0x%08p, direction:%d\n",    &argv, Pike_interpreter.stack_top, STACK_DIRECTION);   #endif /* STACK_DEBUG */    }    }   #else /* !HAVE_GETRLIMIT || !RLIMIT_STACK */    /* 128 MB seems a bit extreme, most OS's seem to have their limit at ~8MB */    Pike_interpreter.stack_top += STACK_DIRECTION * (1024*1024 * 8 - 8192 * sizeof(char *));   #ifdef STACK_DEBUG