Christopher wrote: > 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? I don't know. In this case it seems to work when I define the stack with 8MB and it doesn't work when I use the default stack settings. Gerrit -- =^..^= http://nyckelpiga.de/donate.html -- 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/