It seems that on ia64, the function pthread_create does not use the value of pthread_attr_setstacksize for the stack size, but something like the half of it. The reproducer attached tries to fill the stack according to its supposed size, and show that we are actually able to fill only half of it before getting a segv.
gcc -g bug.c -o bug gdb bug (gdb) run 2000000 1900000 you should get something like: 7 arr [i] = 0xdeadbeef; (gdb) print i * sizeof (int) $2 = 904028 So, although the given size of the stack is supposed to be something around 2Megs, there is less than 1Meg of stack where we can actually write. -- Summary: pthread_attr_setstacksize does not set the proper size Product: gcc Version: 3.4.6 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ochem at gnat dot com GCC host triplet: ia64-sgi-linux-gnu, ia64-hp-hpux11.23, ia64-hp-linux-gnu GCC target triplet: ia64-sgi-linux-gnu, ia64-hp-hpux11.23, ia64-hp-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25533