bug-make
[Top][All Lists]
Advanced

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

Re: [PATCH] Fix output-sync option on EMX


From: Pavel Fedin
Subject: Re: [PATCH] Fix output-sync option on EMX
Date: Wed, 15 Jan 2014 00:38:21 +0400

Hello, Eli.

Tuesday, January 14, 2014, 22:50:28 you wrote:

> The part you replaced with "..." sounds like an important qualifier to
> me.

> I also have hard time believing that these 4 lines is all it takes to
> support output-sync on EMX.

 If  you  remember  my  original spawn-patch, all it does is replacing
#ifdef __EMX__ with #if defined __EMX__ || defined __CYGWIN__

 consequently,  Cygwin version of Make starts behaving in the same way
as it would on EMX (well, except shell simulation magic).
 With  old  spawn-patch  make  v4  perfectly  worked  except it failed
output-sync  test.  I have examined related changes and found out that
fork()-based  code  performs  output  redirection, and spawn() version
simply forgets doing it.
 So, i have moved this fragment out of #ifdef's, and everything worked
like a charm.

> Finally, if that is indeed what EMX needs to support output-sync, that
> should be tested in the EMX build, not in a Cygwin build.

 There  is  a  little  problem  with this. It looks like nobody in the
world uses OS/2 any more. At least for compiling something.

 My concerns are:
 1. EMX is actually a POSIX environment for OS/2.
 2. Cygwin is a POSIX environment for Windows.
 3.  Cygwin  is  (well,  nearly) 100% compatible with EMX because both
 Cygwin and EMX implement spawn() semantics.

 Consequently, if something works on Cygwin, it will work on EMX. Make
does  not  use  anything  else additional except spawn() on these two
environments.

 And  anoher  concern:  despite we do not have possibility to test EMX
build,  this  way  we  can  test its supposed functionality on Cygwin,
which is quite close. Isn't it better than just letting EMX version to
bitrot and die ?

 And  one  more: if you take a look at the code, this is the only code
fragment  related  to  output-sync  which  falls under any OS-specific
#ifdef's. The rest is pretty generic.

 P.S.  This  '...'  actually  reads "spawn()-based flavours (currently
only EMX)'. So nothing additional.

-- 
С уважением,
 Pavel                          mailto:address@hidden




reply via email to

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