Peter Keenan wrote:
I've built gpc 20041017, based on gcc-3.3.2 in my home directory on an AIX machine which has the GCC 3.3.2 binaries installed in usr/local/bin. The testsuite programs all run fine and I am able to compile and run my own programs.
I am using a program converted from Delphi, where I increased the stack and heap limits to allow the program use more memory. The program ran successfully several times on a PC, using more than 1GB of memory. However on AIX the program seem to be hitting a ceiling as they crash out with SIGILL, this happened with several datasets. The crash occurs at a New() statement asking for an additional 1600 bytes of memory and seems to occur when about 256MB of memory has been used. I tried the memavail function and it shows around 256 MB available at the start of the program, however memavail also sometimes causes a segmentation fault so I cannot use it to plot the memory use of the program .
GPC ultimately uses the system library for memory allocation. Crashing with SIGILL seems strange, perhaps a bug? You could try it with C code (using malloc). If that also crashed, it's a bug in libc.
Using ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max memory size (kbytes, -m) unlimited open files (-n) unlimited pipe size (512 bytes, -p) 64 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) 10000 virtual memory (kbytes, -v) unlimited
so no obviou problem there., If I use ulimit -d to reduce the data size below 256MB then that affects the program, but increasing it to a fixed value above 256MB does not seem to stop it crashing.
Maybe a hard limit was set. Did you try `ulimit -a -H'?
Frank