bug-bison
[Top][All Lists]
Advanced

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

Re: Test 52 failure on AIX, HP-UX, Solaris


From: Juan Manuel Guerrero
Subject: Re: Test 52 failure on AIX, HP-UX, Solaris
Date: Sat, 6 Feb 2010 14:06:32 +0100
User-agent: KMail/1.9.10

Am Freitag, 5. Februar 2010 schrieb Joel E. Denny:

> To the Cc, I'm adding Didier Godefroy, who reported the Tru64 bug 
> originally, and Juan Manuel Guerrero, who maintains Bison's djgpp support.

[snip]

>> I'm thinking of putting off 2.4.2 about another week because of the recent 
>> bug reports.  I'd really like to be done with the 2.4 series at that point 
>> if possible.
>
> Now I'm thinking I might roll a 2.4.1b to give at least the bug reporters 
> a chance to try out the fixes.  I think djgpp is also affected given that 
> it has its own version of our old subpipe module.  I know nothing about 
> djgpp, so hopefully someone can take care of that as well during this 
> delay.

Sorry, but I have not followed this mailing list for some time so I will assume
that you want to use gnulibs pipe.[ch] files to implement the required pipe
functionality for bison.  That will be ok with me as long as the gnulib main-
tainers allows me to introduce some djgpp specific code to emulate the missing
pipe support on FreeDOS/MSDOS/djgpp.

An inspection of pipe.[ch] and w32span.h shows that they already have 
implemented
pipe support for windows.  The important issue here is that the code looks like
this:

static pid_t
create_pipe (const char *progname,
             const char *prog_path, char **prog_argv,
             bool pipe_stdin, bool pipe_stdout,
             const char *prog_stdin, const char *prog_stdout,
             bool null_stderr,
             bool slave_process, bool exit_on_error,
             int fd[2])
{
#if defined _MSC_VER || defined __MINGW32__
 /*
  *  Here comes all the windows specific stuff.....
  */

#else
 /*
  *  Here comes all the unixs specific stuff.....
  */

#endif


The windows specific functionality is hidden in w32span.h that is only included
if compiled on a windows platform with a windows compiler.  That is an approach
that can be extended to support djgpp too.  The code would then look like this:

static pid_t
create_pipe (const char *progname,
             const char *prog_path, char **prog_argv,
             bool pipe_stdin, bool pipe_stdout,
             const char *prog_stdin, const char *prog_stdout,
             bool null_stderr,
             bool slave_process, bool exit_on_error,
             int fd[2])
{
#if defined _MSC_VER || defined __MINGW32__
 /*
  *  Here comes all the windows specific stuff.....
  */

#elif defined  __DJGPP__
 /*
  *  Here comes all the djgpp specific stuff.....
  */

#else
 /*
  *  Here comes all the unix specific stuff.....
  */

#endif


The djgpp specific functionality would go into the new file djgpp-spawn.h and
would only be include when using djgpp.  If my assumptions about your intention
are correct, then I think we can remove the old subpipe module and use
gnulib's pipe.[ch] instead.
I have downloaded gnulib's pipe.[ch] to start coding the djgpp specific issues
and to test them.


Regards,
Juan M. Guerrero




reply via email to

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