On 11/11/10 18:51, Bruno Haible wrote: >> Breakpoint 2, main (argc=2, argv=0x7fffffffdd38) >> at ../../tests/test-fprintf-posix3.c:97 >> 97 return 1; >> (gdb) p repeat >> $1 = 0 >> (gdb) p errno >> $2 = 12 >> $ egrep ENOMEM $(find /usr/include -type f -name 'err*.h') >> /usr/include/asm-generic/errno-base.h:#define ENOMEM 12 >> >> It returned ENOMEM on the first try. > > So, my guess would be that the 10 MB address space were not sufficient. > What if you bump it to 20 MB (i.e. increase NUM_ROUNDS from 1000 to 2000)?
I don't understand. If it doesn't make it through the first time, why would increasing the NUM_ROUNDS make a difference? The problem seems to be that the formatting function fails with ENOMEM when it tries to fill out a format of "%011000d\n", period. That should take up approximately 11,000 bytes -- well below 10MB. It returned ENOMEM on the first try.