about summary refs log tree commit diff
path: root/time
diff options
context:
space:
mode:
Diffstat (limited to 'time')
-rw-r--r--time/Makefile8
-rw-r--r--time/leapseconds3
-rw-r--r--time/zic.c16
3 files changed, 14 insertions, 13 deletions
diff --git a/time/Makefile b/time/Makefile
index 0798e0838e..044f15486d 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -106,11 +106,11 @@ $(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile
 	 echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))'		    ;\
 	 echo 'ifdef $*-zones'						    ;\
 	 if test x$(findstring $*, $(tzlinks)) != x; then		     \
-	   echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)) \';\
-	   echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)) \';\
+	   echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\
+	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\
+	   echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\
+	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\
 	   echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \'	    ;\
-	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones))) \' ;\
-	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones))) \' ;\
 	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\
 	 fi								    ;\
 	 echo '$$(addprefix $$(inst_datadir)/zone%/right/,$$($*-zones)): \' ;\
diff --git a/time/leapseconds b/time/leapseconds
index c48e495344..6ff99ada37 100644
--- a/time/leapseconds
+++ b/time/leapseconds
@@ -1,4 +1,4 @@
-# @(#)leapseconds	7.8
+# @(#)leapseconds	7.9
 
 # Allowance for leapseconds added to each timezone file.
 
@@ -40,3 +40,4 @@ Leap	1992	Jun	30	23:59:60	+	S
 Leap	1993	Jun	30	23:59:60	+	S
 Leap	1994	Jun	30	23:59:60	+	S
 Leap	1995	Dec	31	23:59:60	+	S
+Leap	1997	Jun	30	23:59:60	+	S
diff --git a/time/zic.c b/time/zic.c
index 2e07d79196..c4c9a3ae25 100644
--- a/time/zic.c
+++ b/time/zic.c
@@ -1,6 +1,6 @@
 #ifndef lint
 #ifndef NOID
-static char	elsieid[] = "@(#)zic.c	7.81";
+static char	elsieid[] = "@(#)zic.c	7.82";
 #endif /* !defined NOID */
 #endif /* !defined lint */
 
@@ -2126,17 +2126,17 @@ char * const	argname;
 		if (!itsdir(name)) {
 			/*
 			** It doesn't seem to exist, so we try to create it.
-			** Double check the return. Someone may be one
-			** step ahead of us.
+			** Creation may fail because of the directory being
+			** created by some other multiprocessor, so we get
+			** to do extra checking.
 			*/
 			if (mkdir(name, 0755) != 0) {
-			  	int save_error = errno;
-				if (errno == EEXIST && !itsdir(name)) {
-					const char *e = strerror(save_error);
+				const char *e = strerror(errno);
 
+				if (errno != EEXIST || !itsdir(name)) {
 					(void) fprintf(stderr,
-				      _("%s: Can't create directory %s: %s\n"),
-						       progname, name, e);
+_("%s: Can't create directory %s: %s\n"),
+						progname, name, e);
 					ifree(name);
 					return -1;
 				}