------- Comment #4 from danglin at gcc dot gnu dot org 2007-07-12 18:50 ------- I tried increasing the kernel maxdsiz limits to 2 GB. However, we still die after allocating roughly the same number of bytes.
In 32-bit PA runtime, malloc allocates memory using brk and sbrk from the data segment. The size of the data segment is 1 GB. I believe we have reached the 1 GB limit for at least two compilations in libjava. The ulimit command (bash, ksh and sh) doesn't correctly indicate the 1 GB limit of the data segment. I suspect getrlimit also doesn't reflect the runtime limit. Possibly, reducing maxdsiz might trigger more garbage collection. At last check, libjava still builds on the trunk. So, 4.2.1 is using more memory. Libjava builds under linux. The linux runtime uses a flat memory model and thus has more space available for data. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32199