Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Fri, 16 Jul 2004 10:15:46 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: gcc 3.3.1-3 runtime error: static data storage size Message-ID: <20040716141546.GC20693@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <6 DOT 0 DOT 1 DOT 1 DOT 2 DOT 20040715140233 DOT 01af80b0 AT yellow DOT ucdavis DOT edu> <198222099492 DOT 20040716011226 AT familiehaase DOT de> <96255937158 DOT 20040716103623 AT familiehaase DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <96255937158.20040716103623@familiehaase.de> User-Agent: Mutt/1.4.1i 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/