bug-make
[Top][All Lists]
Advanced

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

Re: No output from $(shell foo) on Tru64


From: Paul D. Smith
Subject: Re: No output from $(shell foo) on Tru64
Date: Tue, 27 Jul 2004 02:08:26 -0400

%% Matthew Sanderson <address@hidden> writes:

  ms> I am too lazy to diff 3.80 and 3.81beta1 source - is it easy to
  ms> describe what's wrong/different with Tru64 and its signals? I'm
  ms> curious, and the info might come in useful some day.

The SIGRESTART flag is supposed to automatically restart system calls
like read(), etc. whenever a signal is caught, rather than returning
EINTR.  The GNU make configure looks for this flag and, if it's found,
assumes that the system implements the POSIX specification of
SIGRESTART.

Apparently Tru64 does define this flag but does not implement the proper
functionality.  It should be noted that neither does Solaris, although
they do better than Tru64 (apparently).  In fact, Linux seems to be
about the only OS I've found that _appears_ to do it 100% correctly.


So, the new version tries to handle this by writing loops around most of
the system calls that would require it, to rerun them if they get an
EINTR.  This is not 100% effective since there's no way to do this for
every function that might invoke a system call that could fail with
EINTR, but it appears to handle 99% or more of the cases.

-- 
-------------------------------------------------------------------------------
 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]