bug-make
[Top][All Lists]
Advanced

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

Re: EINTR causing useless recompilation?


From: Paul D. Smith
Subject: Re: EINTR causing useless recompilation?
Date: Thu, 23 Jan 2003 23:43:43 -0500

%% Tom Rodriguez <address@hidden> 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 <address@hidden>          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




reply via email to

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