From 8c7f157cc76b2690487a227f5d818e3937fc9c6e Mon Sep 17 00:00:00 2001
From: Peter S. Mazinger <ps.m@gmx.net>
Date: Sat, 16 Apr 2011 14:24:38 +0200
Subject: [PATCH 300/396] utime[s]: avoid circular dependency

utime.c: fix a cast, tv_sec is of type time_t
Add stub for utimes.

Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
---
 libc/sysdeps/linux/common/stubs.c  |    5 +++++
 libc/sysdeps/linux/common/utime.c  |    8 +++++---
 libc/sysdeps/linux/common/utimes.c |    4 +++-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/libc/sysdeps/linux/common/stubs.c b/libc/sysdeps/linux/common/stubs.c
index 07c037e..3335411 100644
--- a/libc/sysdeps/linux/common/stubs.c
+++ b/libc/sysdeps/linux/common/stubs.c
@@ -462,6 +462,11 @@ make_stub(symlink)
 make_stub(sysinfo)
 #endif
 
+#if !defined __NR_utime && !defined __NR_utimes
+/*make_stub(utime) obsoleted */
+make_stub(utimes)
+#endif
+
 #ifndef __NR_fadvise64
 make_ret_stub(posix_fadvise)
 #endif
diff --git a/libc/sysdeps/linux/common/utime.c b/libc/sysdeps/linux/common/utime.c
index 2573e00..ab63a24 100644
--- a/libc/sysdeps/linux/common/utime.c
+++ b/libc/sysdeps/linux/common/utime.c
@@ -12,7 +12,7 @@
 
 #ifdef __NR_utime
 _syscall2(int, utime, const char *, file, const struct utimbuf *, times)
-#else
+#elif defined __NR_utimes /* alpha || ia64 */
 # define __need_NULL
 # include <stddef.h>
 # include <sys/time.h>
@@ -24,11 +24,13 @@ int utime(const char *file, const struct utimbuf *times)
 	if (times != NULL) {
 		timevals[0].tv_usec = 0L;
 		timevals[1].tv_usec = 0L;
-		timevals[0].tv_sec = (long int) times->actime;
-		timevals[1].tv_sec = (long int) times->modtime;
+		timevals[0].tv_sec = (time_t) times->actime;
+		timevals[1].tv_sec = (time_t) times->modtime;
 	}
 	return utimes(file, times ? timevals : NULL);
 }
 #endif
+#if defined __NR_utime || defined __NR_utimes
 link_warning(utime, "the use of OBSOLESCENT `utime' is discouraged, use `utimes'")
 libc_hidden_def(utime)
+#endif
diff --git a/libc/sysdeps/linux/common/utimes.c b/libc/sysdeps/linux/common/utimes.c
index ac9aff5..5d6f168 100644
--- a/libc/sysdeps/linux/common/utimes.c
+++ b/libc/sysdeps/linux/common/utimes.c
@@ -12,7 +12,7 @@
 
 #ifdef __NR_utimes
 _syscall2(int, utimes, const char *, file, const struct timeval *, tvp)
-#else
+#elif defined __NR_utime
 # define __need_NULL
 # include <stddef.h>
 # include <utime.h>
@@ -31,4 +31,6 @@ int utimes(const char *file, const struct timeval tvp[2])
 	return utime(file, times);
 }
 #endif
+#if defined __NR_utimes || defined __NR_utime
 libc_hidden_def(utimes)
+#endif
-- 
1.7.0.4

