From d33ff301454fa1db9919674dbc2a37309bbd529f Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Thu, 30 Jan 2003 05:22:52 +0000 Subject: Portability fix for glob.h building in FreeBSD ports system. Implement a fix for bug # 2169: too many OSs, even major OSs like Solaris, don't properly implement SA_RESTART: important system calls like stat() can still fail when SA_RESTART is set. So, forget the BROKEN_RESTART config check and get rid of atomic_stat() and atomic_readdir(), and implement permanent wrappers for EINTR checking on various system calls (stat(), fstat(), opendir(), and readdir() so far). --- commands.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'commands.c') diff --git a/commands.c b/commands.c index 30787a4..a6964d5 100644 --- a/commands.c +++ b/commands.c @@ -492,6 +492,7 @@ static void delete_target (struct file *file, char *on_behalf_of) { struct stat st; + int e; if (file->precious || file->phony) return; @@ -515,7 +516,8 @@ delete_target (struct file *file, char *on_behalf_of) } #endif - if (stat (file->name, &st) == 0 + EINTRLOOP (e, stat (file->name, &st)); + if (e == 0 && S_ISREG (st.st_mode) && FILE_TIMESTAMP_STAT_MODTIME (file->name, st) != file->last_mtime) { -- cgit v1.2.3