On 08/27/2010 01:01 PM, Paul Eggert wrote:
On 08/27/2010 01:39 AM, Jim Meyering wrote:

   - use xnmalloc, not malloc+test+return, so we don't ignore malloc failure.
   - use sizeof *VAR, not "sizeof TYPE" -- the former is more maintainable.
   - adjust indentation to retain declaration alignment

There are many places in other GNU apps, including gnulib, where
it's assumed that one can declare a 4 kB-or-so array on the stack without
any problem.  So I'm surprised to see the need for this change to GNU grep.
Surely we don't need to go through GNU apps and rejigger things for
configurations with 4 kB stacks?  By today's standards, such stacks are
ridiculously small.

4k in a non-recursive algorithm is probably fine for a non-threaded app; but if there is any chance for recursion, then stack-allocating a 4k array risks interfering with stack overflow detection, since that is larger than the guard page installed at the end of some stacks. For threaded applications (and therefore libraries), it is much more common to have extremely limited stacks for each thread.

--
Eric Blake   [email protected]    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Reply via email to