delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2016/05/09/11:53:19

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
Subject: Re: [ANNOUNCE] DJGPP port of gcc-6.1.0
To: djgpp AT delorie DOT com
References: <201604281739 DOT u3SHdF9o009018 AT delorie DOT com>
<572B61D5 DOT 2040400 AT gmx DOT de> <16909c8a-d835-21ab-67fb-9dcd397b630b AT iki DOT fi>
<572F7363 DOT 10503 AT gmx DOT de> <ngq5iu$9e7$1 AT usenet DOT news DOT interia DOT pl>
From: "Andris Pavenis (andris DOT pavenis AT iki DOT fi) [via djgpp AT delorie DOT com]" <djgpp AT delorie DOT com>
Message-ID: <2e24511c-70d0-42fd-e7bb-15cb7c265c25@iki.fi>
Date: Mon, 9 May 2016 18:53:08 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <ngq5iu$9e7$1@usenet.news.interia.pl>
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On 05/09/2016 05:07 PM, Wiktor S. (wswiktorSP AT Mpoczta DOT fm) [via djgpp AT delorie DOT com] wrote:
> // genautomata.c line 5816
>
> static void
> pass_state_graph (state_t start_state, void (*applied_func) (state_t state))
> {
>  arc_t arc;
>
>  if (start_state->pass_num == curr_state_graph_pass_num)
>    return;
>  start_state->pass_num = curr_state_graph_pass_num;
>  (*applied_func) (start_state);
>  for (arc = first_out_arc (start_state);
>       arc != NULL;
>       arc = next_out_arc (arc))
>    pass_state_graph (arc->to_state, applied_func); // <---- HERE
> }
>
>
> This is very deep recursion causing stack overflow.
> After modifying genautomata.exe with stubedit and giving it 1 MB stack the problem disappears.
>
> The question is why doesn't it crash in Vista. Probably Vista gives bigger stack by default.
>
>
I'm guilty:

[andris AT ap bin]$ stubedit -v stubify.exe
-value-          -field description-
0x180000 (1536k) Minimum amount of stack space (bytes/K/M)
0x4000 (16k)     Size of real-memory transfer buffer (bytes/K/M)
""               Base name of file to actually run (max 8 chars, ""=self)
""               Value to pass as file component of argv[0] (max 16 chars, ""=default)
CWSDPMI.EXE      Program to load to provide DPMI services (if needed)


I had custom stubify.exe which set larger stack size.

I should update readme:DJGPP, as it contained wrong information.

Andris





- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019