------- Comment #3 from danglin at gcc dot gnu dot org  2007-10-10 03:45 -------
The problem appears to be here in pthread_support.c:

#   ifdef STACK_GROWS_DOWN
      return stack_addr + stack_size;
#   else
      return stack_addr - stack_size;
#   endif

SUSV3 says the stackaddr argument in pthread_attr_getstack is the base
(lowest addressable byte) of the storage and stacksize is the size of the
storage in bytes.  So, it's wrong to subtract stack_size from stack_addr
in the STACK_GROWS_UP case.

Fixing this appears to fix the bug.


-- 

danglin at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|libgcj                      |boehm-gc


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33442

Reply via email to