SUGGESTED FIX
###@###.### 2004-03-03
The fix diffs:
src/os/solaris/vm/os_solaris.cpp
*** 858,865 ****
#ifdef COMPILER2
// Compiler2 requires a large stack size to handle recursive routines.
else if (thr_type == compiler_thread) {
! // stack size in units of Kbytes; 2M total needed as default.
! int default_size = (CompilerThreadStackSize > 0) ? CompilerThreadStackSize : 2 * K;
stack_size = MAX2((size_t)(default_size * K), os::Solaris::min_stack_allowed);
}
#endif
--- 858,865 ----
#ifdef COMPILER2
// Compiler2 requires a large stack size to handle recursive routines.
else if (thr_type == compiler_thread) {
! // stack size in units of Kbytes; 2M (4M for LP64) total needed as default.
! int default_size = (CompilerThreadStackSize > 0) ? CompilerThreadStackSize : (BytesPerWord >> 1) * K;
stack_size = MAX2((size_t)(default_size * K), os::Solaris::min_stack_allowed);
}
#endif
src/os_cpu/linux_ia64/vm/os_linux_ia64.cpp
*** 545,552 ****
#ifdef COMPILER2
// Compiler2 requires a large stack size to handle recursive routines.
else if (thr_type == compiler_thread) {
! // stack size in units of Kbytes; 2M total needed as default.
! int default_size = (CompilerThreadStackSize > 0) ? CompilerThreadStackSize : 2 * K;
stack_size = MAX2((size_t)(default_size * K), os::Linux::min_stack_allowed);
}
#endif
--- 545,552 ----
#ifdef COMPILER2
// Compiler2 requires a large stack size to handle recursive routines.
else if (thr_type == compiler_thread) {
! // stack size in units of Kbytes; 4M total needed as default for ia64.
! int default_size = (CompilerThreadStackSize > 0) ? CompilerThreadStackSize : 4 * K;
stack_size = MAX2((size_t)(default_size * K), os::Linux::min_stack_allowed);
}
#endif
|
EVALUATION
###@###.### 2003-05-15
Stack overflow in PhaseCFG::set_pinned() has been fixed in tiger by using an
iterative implementation. However, this bug applies generally to all 64-bit
compilation in that the compilation thread's default stack size should be scaled
up from the default value for 32-bit execution.
Due to scheduling constraints, and the existence of a command-line workaround,
this will not be fixed in mantis.
-----
|