Darryl Gove wrote:
> Roland Mainz wrote:
> > The cc(1) manual page says this about the "STACKSIZE" environment
> > variable:
> > -- snip --
> > STACKSIZE
> >   The executing program maintains a main memory
> >   stack for the master thread and distinct stacks
> >   for each slave thread. Stacks are temporary memory
> >   address spaces used to hold arguments and
> >   automatic variables over subprogram invocations.
> >   The default size of the main stack is about eight
> >   megabytes. Use the limit(1) command to display the
> >   current main stack size as well as set it.
> >
> >   Each slave thread of a multithreaded program has
> >   its own thread stack.  This stack mimics the main
> >   stack of the master thread but is unique to the
> >   thread. The thread's private arrays and variables
> >   (local to the thread) are allocated on the thread
> >   stack.
> >
> >   All slave threads have the same stack size, which
> >   is four megabytes for 32-bit applications and
> >   eight megabytes for 64-bit applications by
> >   default. The size is set with the STACKSIZE
> >   environment variable.
> >
> >   Setting the thread stack size to a value larger
> >   than the default may be necessary for some paral-
> >   lelized code.
> >
> >   The syntax of the STACKSIZE environment variable
> >   accepts a keyword for denoting the slave thread
> >   stacksize: B for Bytes, K for Kilobytes, M for
> >   Megabytes, G for Gigabytes.
> >
> >   For example, setenv STACKSIZE 8192 sets the slave
> >   thread stack size to 8 MB. 1235B sets the slave
> >   thread stack size for 1235 Bytes. 1235G  sets it
> >   for 1235 Gigabytes. The default for an integer
> >   value without a suffix letter is still Kilobytes.
> > -- snip --
> >
> > Who or what uses "STACKSIZE" and sets it ? A quick look into the libc
> > sources shows that it isn't used there... and somehow I start to suspect
> > that this variable is only used for threads managed by OMP + -xparallel
> > but not for the main thread or for threads created "manually" via
> > |pthread_create()|, right ?
> 
> Yup, OpenMP/autopar use this.

Where is the code (e.g. which *.a or *.o) which uses this variable ?

BTW: IMO it would be nice to have less generic names for such variables,
e.g. "OMP_STACKSIZE" and "AUTOPAR_STACKSIZE" (which override STACKSIZE).

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)

Reply via email to