On Fri, Jul 16, 2004 at 10:36:23AM +0200, Gerrit P. Haase wrote: >Pietro schrieb: > >> Gerrit, > >> I think you just did: > >> the program should print "ok" upon executing and it didn't. if you debug, >> say, with insight, aa.exe will bail before reaching the printf statement, >> generating a segmentation violation signal. > >> let me know. thanks for looking into it. > >> Pietro > >> On Fri, 16 Jul 2004, Gerrit P. Haase wrote: > >>> Pietro wrote: >>> >>> > I have the following example to propose: >>> > /** aa.c **/ >>> > #define NXY 5000 >>> > #define NXY 7000 >>> > int xy[NXY][NXY]; >>> > main(){ >>> > printf("ok\n"); >>> > } >>> >>> > This will work when NXY=5000, but will generate a SIGSEV exception before >>> > reaching the first statement when NXY=7000. >>> >>> > The array in the faulty case is 187MB. The gcc documentation gives 2GB as >>> > the limit for having to switch to dynamic allocation. Any fixes? or >>> > relevant compiler options possibly available? >>> >>> I cannot reproduce it on my W2K Professional box: >>> >>> >>> $ cat aa.c >>> #define NXY 7000 >>> >>> int xy[NXY][NXY]; >>> main(){ >>> printf("ok\n"); >>> } >>> >>> $ gcc -o aa aa.c >>> >>> $ ./aa.exe >>> >>> Gerrit >>> -- >>> =^..^= http://nyckelpiga.de/donate.html >>> > >Yes, I see. Yhe problem is the default stack size on cygwin (2 MB), you >can increase it. > >$ gcc -o aa -Wl,--stack,8388608 aa.c > >$ ./aa >ok > >$ cat aa.c >#define NXY 7000 > >int xy[NXY][NXY]; >main(){ >printf("ok\n"); >}
Why would the stack size affect a global variable? cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/