%% "Michael Sterrett -Mr. Bones.-" <[EMAIL PROTECTED]> writes:
msb> Attached are two patches against make-3.80rc1 that I *must* apply to msb> GNU make to get it work properly on PTX boxes. msb> The first adds a new function, atomic_stat() which checks for and msb> loops on EINTR. The second adds EINTR handling to readdir() in dir.c. msb> Both of these situations drove me nearly crazy when we starting msb> really using GNU make here since it would work fine with one msb> process, but die in various amusing ways with -j (since we get msb> SIGCHLD). msb> Please, please...could you add these patches or functionally msb> equivalent code (if you don't like the patches themselves) to msb> 3.80? I'm not willing to change any code until I understand the problem. This version of GNU make is very careful to avoid this problem, and it does so _NOT_ by trying to introduce atomic versions of every interruptible system call which, if you try to do at all you will quickly realize is a Herculean feat. Your patch may fix the most common places the problem appears but it will _not_ fix the entire problem, everywhere. Instead, GNU make simply marks these signals as restartable at all time, _except_ in the very specific, localized area where the job server functionality requires that they interrupt the system call. This way if you're invoking stat() and a SIGCHLD comes in, stat() will _NOT_ return with EINTR, so you don't have to check for it. Ditto for the other interruptible system calls (of which there are _lots_). The GNU make configure script is careful to not allow jobserver capabilities unless the operating system appears to support this capability (restartable system calls). So, if you are still seeing these types of failures with the rc1 release of GNU make (and not just _assuming_ you'll get them because you didn't see the "atomicized" stat(), etc. ;)) we appear to have one of these situations: a) There's a bug in the GNU make code that manages restartable system calls, so there's still a hole where they can get through where they're not wanted. b) There's a bug in PTX where it appears to, but doesn't, handle restartable system calls according to the accepted standards. c) There's a problem with the configure script so that it is concluding PTX does support jobserver capabilities, when it really doesn't. I don't have, or have access to, a PTX system so until I get some better information on what's actually going wrong I don't want to start changing code. Please investigate and let me know which of the above situations you think is the accurate one (or maybe I missed some?)... Thx! -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://www.paulandlesley.org/gmake/ "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