%% Tom Rodriguez <[EMAIL PROTECTED]> writes:

  tr> Hello.  I've finally gotten a chance to look at this more closely
  tr> and the problem is that GNU make assume that SA_RESTART restarts
  tr> all system calls which isn't true for solaris and I suspect isn't
  tr> true for any System V based Unix.

Yes, experimentations shows this to be the case.

Unfortunately this means that Solaris is not compliant with the POSIX
specs, which clearly state that any system call that can return EINTR
must respect the SA_RESTART flag.

  tr> Why not simply define atomic_stat and atomic_readdir all the time
  tr> and use them throughout make?  It wouldn't hurt any platform that
  tr> never returns EINTR and would guarantee that it works on any
  tr> platform with a more restricted definition of SA_RESTART.  Thanks.

I am going to implement a fix similar to this.  It should take care of
the worst of the problems.

However, this does not mean that the problem is solved: GNU make makes
many hundreds of different kinds of system calls, and many are hidden
behind other user-level libc functions.  If SA_RESTART cannot be relied
upon to behave as per the POSIX spec then it seems like there's no fully
reliable way to provide for this feature without doing prohibitive
amounts of work.


Thanks for the note!

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make

Reply via email to