gcc 3.3.1-3 runtime error: static data storage size

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Fri Jul 16 14:18:00 GMT 2004


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/



More information about the Cygwin mailing list