From: "Tim Van Holder" To: Cc: Subject: Re: Win2k + djgpp Date: Tue, 11 Sep 2001 19:14:33 +0200 Message-ID: <000001c13ae5$3a1d3900$6e7c76d5@pandora.be> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2627 Importance: Normal In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > On 11 Sep 2001, Tim Van Holder wrote: > > Well, if you recall there was an issue where a perl-spawned shell > > script (for example, autoconf when called from autoupdate) could > > do > > exec 4>config.log > > but any redirection to FD 4 would cause EBADF. > > Yes, but I cannot figure out what does this have to do with the test > program you posted. To reproduce this failure, a test program should > have called open/dup/dup2 in a typical redirection paradigm, > preferably similar to the code that is actually executed by Bash when > it sees a command such as the one above. Your test program didn't do > that, it just opened files. I know; I merely wanted to show that closing those in Perl made them available as regular FDs to spawned programs, and that the failures I saw before tended to concern those FDs. I just rebuilt perl 5.7.2 with the closing of stdaux and stdprn disabled (and with CVS libc like before), and now autom4te is working happily. So I'd recommend having perl.c use #if defined(MSDOS) || !defined(__DJGPP__) around those two lines. I have no clue as to _why_ this has any effect; all I know is that when Perl closes stdaux and stdprn, spawned programs get screwed up. I'm currently too busy to do further investigation. Laszlo, how stable is 5.7.2? It might be useful to make a release for DJGPP with that change; then I can release newer autoconfs with a DSM 'requires' for that version of perl (releasing a patched build of 5.6.1 would be fine too, provided the DSM lists it as 5.6.1b or something).