SUGGESTED FIX
*** /tmp/geta20883 2005-11-14 20:21:58.469671989 +0300
--- os_linux_i486.cpp 2005-11-14 20:21:29.793530284 +0300
***************
*** 567,574 ****
// | |/
// P2 +------------------------+ Thread::stack_base()
//
! // ** P2 is the address returned from pthread_attr_getstackaddr(), P2 - P1
! // is the stack size returned by pthread_attr_getstacksize().
static void current_stack_region(address * bottom, size_t * size) {
if (os::Linux::is_initial_thread()) {
--- 567,574 ----
// | |/
// P2 +------------------------+ Thread::stack_base()
//
! // ** P2 is the address returned from pthread_attr_getstack(), P2 - P1
! // is the stack size returned by pthread_attr_getstack().
static void current_stack_region(address * bottom, size_t * size) {
if (os::Linux::is_initial_thread()) {
***************
*** 590,605 ****
}
}
! void * top;
! if (pthread_attr_getstackaddr(&attr, &top) != 0 ||
! pthread_attr_getstacksize(&attr, size) != 0) {
! fatal("Can not locate current stack attributes!");
}
!
! pthread_attr_destroy(&attr);
!
! *bottom = (address) align_size_up((uintptr_t)top - *size, os::Linux::page_size());
! *size = (address)top - *bottom;
}
assert(os::current_stack_pointer() >= *bottom &&
os::current_stack_pointer() < *bottom + *size, "just checking");
--- 590,600 ----
}
}
! if (pthread_attr_getstack(&attr, (void**)bottom, size) != 0) {
! fatal("Can not locate current stack attributes!");
}
!
! pthread_attr_destroy(&attr);
}
assert(os::current_stack_pointer() >= *bottom &&
os::current_stack_pointer() < *bottom + *size, "just checking");
|