bug-make
[Top][All Lists]
Advanced

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

Re: EINTR causing useless recompilation?


From: Tom Rodriguez
Subject: Re: EINTR causing useless recompilation?
Date: Thu, 14 Nov 2002 09:37:11 -0800
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3

Sorry about that. I was using 3.79. 3.79.1 appears to do the right thing and looking at the code it has a loop checking for EINTR. 3.80 doesn't have the loop anymore but it does print a message saying that stat was interrupted but it still performs the useless recompilation. It looks like some other delta may have overridden the fix. Here's the code in 3.80:

static FILE_TIMESTAMP
name_mtime (name)
     register char *name;
{
  struct stat st;

  if (stat (name, &st) != 0)
    {
      if (errno != ENOENT && errno != ENOTDIR)
        perror_with_name ("stat:", name);
      return NONEXISTENT_MTIME;
    }

  return FILE_TIMESTAMP_STAT_MODTIME (name, st);
}

Here's 3.79.1, which appears perfect to me:

/* Return the mtime of the file or archive-member reference NAME.  */

static FILE_TIMESTAMP
name_mtime (name)
     register char *name;
{
  struct stat st;

 while (stat (name, &st) != 0)
   if (errno != EINTR)
     {
       if (errno != ENOENT && errno != ENOTDIR)
         perror_with_name ("stat:", name);
       return NONEXISTENT_MTIME;
     }

  return FILE_TIMESTAMP_STAT_MODTIME (name, st);
}

Searching in google, there was some talk about Hurd and it's behaviour in regards to EINTR makes me wonder if someone intentionally deleted the EINTR loop.

Thanks for getting back to me. I'm happy since I can use 3.79.1 but hopefully 3.80.1 can have the loop again so this doesn't get lost.

tom

Paul D. Smith wrote:

Please always include the version of GNU make you're using when
reporting problems.

I believe this has been fixed in the latest version of GNU make, 3.80.

Please try again with that version and let me know.








reply via email to

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