From b574b8ea5a2c91bee40dc8c5f1b8f938928b162a Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@redhat.com>
Date: Mon, 4 Jul 1994 21:50:03 +0000
Subject: [PATCH] (name_mtime): Use safe_stat in place of stat. (touch_file)
 [EINTR]: Do EINTR looping around fstat.

---
 remake.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/remake.c b/remake.c
index c7b183c4..452e7e54 100644
--- a/remake.c
+++ b/remake.c
@@ -777,8 +777,16 @@ touch_file (file)
 	{
 	  struct stat statbuf;
 	  char buf;
+	  int status;
 
-	  if (fstat (fd, &statbuf) < 0)
+#ifdef EINTR
+	  do
+#endif
+	    status = fstat (fd, &statbuf);
+#ifdef EINTR
+	  while (status < 0 && errno == EINTR);
+#endif
+	  if (status < 0)
 	    TOUCH_ERROR ("touch: fstat: ");
 	  /* Rewrite character 0 same as it already is.  */
 	  if (read (fd, &buf, 1) < 0)
@@ -971,7 +979,7 @@ name_mtime (name)
 {
   struct stat st;
 
-  if (stat (name, &st) < 0)
+  if (safe_stat (name, &st) < 0)
     return (time_t) -1;
 
   return (time_t) st.st_mtime;