[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ZILE 2.3.10 (Autoconf 2.64 finds deadly DJGPP Bash bug)

From: Rugxulo
Subject: Re: ZILE 2.3.10 (Autoconf 2.64 finds deadly DJGPP Bash bug)
Date: Tue, 25 Aug 2009 23:05:16 -0500


On Sat, Aug 22, 2009 at 2:44 AM, Ralf Wildenhues<address@hidden> wrote:
> * Eric Blake wrote on Fri, Aug 21, 2009 at 01:51:29AM CEST:
>> Or does it require a more complex function body, to show the difference
>> where the subshell avoids the crash?  At any rate, we'll need to
>> characterize exactly what your shell's bug is.
> We could use as_fn_set_status everywhere, and only define that to
> use a subshell if we detect 2.05a.  That shouldn't penalize users of
> non-broken shells so much.  (Of course, this is pretty vague given
> that we don't know what exactly the bug is.)

Honestly, I can't test Bash 2.x on any other platform, but I do
strongly suspect it's a DJGPP bug (due to no fork() support). Both
"modern" DJGPP ports of 2.04 and 2.05b have the bug. And the sources
are ridiculously complex, but here's my best attempt at narrowing down
the problem (actually, Gordon Schumacher originally mentioned this
exact same bug on the mailing list / newsgroup in May 2004 !!):

Here's Gordon's simple example to narrow down the problem:


And here's Esa's attempt to identify why it crashes. Possibly a setjmp
not returning. (Note that nobody has been able to fix this yet. Even
back in 2006 both Martin and Andris tried and failed.)


Long story short:  something to do with executing a binary within a
shell function. Probably in subst.c or execute_cmd.c, but I'm not
sure. (8 MB of sources, and I'm sure newer versions are probably even
more confusing!!) You think Chet would care? Heh, doubt it. Well ...
apparently his web site doesn't suggest e-mail is a "bad thing", so
I'll just cc him here. Besides, I think I once had an Uncle Ramey (not
anywhere near Ohio, though).     ;-)

P.S. At the very least, I suggest you put a comment mentioning the "(
return $ac_retval )" workaround so that some DJGPP user browsing the
main "./configure" file can see how to manually work around it
(without penalizing slow Cygwin, heh).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]