summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog66
-rw-r--r--MakeTAGS11
-rw-r--r--Makerules2
-rw-r--r--manual/nss.texi4
-rw-r--r--manual/pattern.texi2
-rw-r--r--manual/string.texi2
-rw-r--r--nis/rpcsvc/yp.h10
-rw-r--r--nis/rpcsvc/yp.x16
-rw-r--r--nis/rpcsvc/yp_prot.h14
-rw-r--r--stdlib/getsubopt.c4
-rw-r--r--sunrpc/Makefile17
-rw-r--r--sysdeps/i386/asm-syntax.h31
-rw-r--r--sysdeps/libm-ieee754/s_tanhl.c2
-rw-r--r--sysdeps/m68k/asm-syntax.h110
-rw-r--r--sysdeps/unix/sysv/linux/net/ppp_defs.h5
-rw-r--r--time/Makefile1
16 files changed, 257 insertions, 40 deletions
diff --git a/ChangeLog b/ChangeLog
index 4383e66c07..caf6ddbded 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,69 @@
+1997-02-04 02:08  Ulrich Drepper  <drepper@cygnus.com>
+
+	* Version 2.0.1 net release.
+
+1997-02-03 23:34  Stephen L Moshier  <moshier@world.std.com>
+
+	* sysdeps/libm-ieee754/s_tanhl.c: Fix backwards result sign.
+
+1997-02-03 19:59  Ulrich Drepper  <drepper@cygnus.com>
+
+	* stdlib/getsubopt.c: Don't return `=' for suboption which has
+	a parameter.  Reported by Gary L. Hennigan <glhenni@cs.sandia.gov>.
+
+1997-02-03 18:20  Thorsten Kukuk  <kukuk@weber.uni-paderborn.de>
+
+	* nis/rpcsvc/yp_proh.h (ypresp_key_val): Also change order of
+	values as in yp.x and yp.h.
+
+1997-02-03 16:58  Ulrich Drepper  <drepper@cygnus.com>
+
+	* nis/rpcsvc/yp.x (struct ypresp_key_val): Revert patch from
+	1997-02-03 02:17.  Sun's implementation internally corrects
+	this bug but we don't want to hide this from the user.
+	* nis/rpcsvc/yp.h: Likewise.
+
+1997-02-01 18:28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sysdeps/unix/sysv/linux/net/ppp_defs.h: Protect against multiple
+	inclusion.
+
+1997-02-02 14:56  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* manual/nss.texi, manual/pattern.texi, manual/string.texi: Doc
+	fixes.
+
+1997-02-02 11:51  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* MakeTAGS (sysdep-sources, sysdep-headers): New variables.
+	(all-sources, all-headers): Use them instead of $(sources) and
+	$(headers) when searching in sysdep directories.
+
+1997-02-02 11:49  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* Makerules (REAL_MAKE_VERSION): Use internal make function
+	instead of shelling out.
+
+1997-02-02 11:47  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* time/Makefile (install-test-data): Remove mkdir command, zic can
+	handle that gracefully.
+
+1997-02-03 14:07  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sysdeps/m68k/asm-syntax.h: Add back file which got lost sometime
+	somehow.
+
+1997-02-02 07:46  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sunrpc/Makefile: Check $(cross-compiling) only after including
+	../Makeconfig.
+	($(objpfx)rpcsvc/%.h, $(objpfx)x%.c): Add empty command to force
+	being considered as a rule.
+	(generated): Add stamp files before the inclusion of Makerules to
+	magically mark them as not being intermediate via the `generated'
+	target.
+
 1997-02-03 02:33  Ulrich Drepper  <drepper@cygnus.com>
 
 	* elf/dl-deps.c (_dl_map_object_deps): Handle multiple AUXILIARY
diff --git a/MakeTAGS b/MakeTAGS
index c6f497ee00..f9e073b43c 100644
--- a/MakeTAGS
+++ b/MakeTAGS
@@ -84,17 +84,22 @@ sources += $(foreach lib,$(extra-libs),$($(lib)-routines:=.c))
 
 # All different versions of $(sources), preserving the configured sysdep
 # directory order.
+# Files that are found in the current directory cannot occur in
+# sysdep directories, so don't bother searching them.
+sysdep-sources := $(filter-out $(wildcard $(sources)), $(sources))
 all-sources = $(wildcard $(sort $(sources) $(sources:.c=.S) $(sources:.c=.s) \
 				$(others:=.c) $(tests:=.c))) \
 	      $(foreach dir,$(all-dirs),\
 			$(wildcard \
 			   $(addprefix $(dir)/,\
-				       $(sort $(sources) $(sources:.c=.S) \
-					      $(sources:.c=.s)))))
+				       $(sort $(sysdep-sources) \
+					      $(sysdep-sources:.c=.S) \
+					      $(sysdep-sources:.c=.s)))))
 
+sysdep-headers := $(filter-out $(wildcard $(headers)), $(headers))
 all-headers = $(wildcard $(headers)) \
 	      $(foreach dir,$(all-dirs),\
-			$(wildcard $(addprefix $(dir)/,$(headers))))
+			$(wildcard $(addprefix $(dir)/,$(sysdep-headers))))
 
 tags_sources := $(strip $(tags_sources))
 
diff --git a/Makerules b/Makerules
index a8509bccfc..881d58434e 100644
--- a/Makerules
+++ b/Makerules
@@ -26,7 +26,7 @@ This makefile requires GNU Make.
 endif
 
 REQUIRED_MAKE_VERSION = 3.74
-REAL_MAKE_VERSION = $(shell echo "$(MAKE_VERSION)" | sed 's/ .*//')
+REAL_MAKE_VERSION = $(firstword $(MAKE_VERSION))
 
 ifneq ($(REQUIRED_MAKE_VERSION), \
        $(firstword $(sort $(REAL_MAKE_VERSION) $(REQUIRED_MAKE_VERSION))))
diff --git a/manual/nss.texi b/manual/nss.texi
index f24d7dd34c..ba333e02aa 100644
--- a/manual/nss.texi
+++ b/manual/nss.texi
@@ -8,7 +8,7 @@
 @cindex databases
 Various functions in the C Library need to be configured to work
 correctly in the local environment.  Traditionally, this was done by
-using files (e.g., @file{/etc/passwd}), but other nameservices (line the
+using files (e.g., @file{/etc/passwd}), but other nameservices (like the
 Network Information Service (NIS) and the Domain Name Service (DNS))
 became popular, and were hacked into the C library, usually with a fixed
 search order (@pxref{frobnicate, , ,jargon, The Jargon File}).
@@ -20,7 +20,7 @@ scheme @dfn{Name Service Switch} (NSS).
 
 Though the interface might be similar to Sun's version there is no
 common code.  We never saw any source code of Sun's implementation and
-so the internal interface is incompatible.  This is also manifests in the
+so the internal interface is incompatible.  This also manifests in the
 file names we use as we will see later.
 
 
diff --git a/manual/pattern.texi b/manual/pattern.texi
index b1e7206b58..6ac481ab6e 100644
--- a/manual/pattern.texi
+++ b/manual/pattern.texi
@@ -70,7 +70,7 @@ cannot match @samp{.} as the first character of @var{string}.
 If you set both @code{FNM_PERIOD} and @code{FNM_FILE_NAME}, then the
 special treatment applies to @samp{.} following @samp{/} as well as to
 @samp{.} at the beginning of @var{string}.  (The shell uses the
-@code{FNM_PERIOD} and @code{FNM_FILE_NAME} falgs together for matching
+@code{FNM_PERIOD} and @code{FNM_FILE_NAME} flags together for matching
 file names.)
 
 @comment fnmatch.h
diff --git a/manual/string.texi b/manual/string.texi
index 73a29f48e5..efcc23e59a 100644
--- a/manual/string.texi
+++ b/manual/string.texi
@@ -601,7 +601,7 @@ strcmp ("hello", "world")
     @result{} -15  /* @r{The character @code{'h'} comes before @code{'w'}.} */
 strcmp ("hello", "hello, world")
     @result{} -44  /* @r{Comparing a null character against a comma.} */
-strncmp ("hello", "hello, world"", 5)
+strncmp ("hello", "hello, world", 5)
     @result{} 0    /* @r{The initial 5 characters are the same.} */
 strncmp ("hello, world", "hello, stupid world!!!", 5)
     @result{} 0    /* @r{The initial 5 characters are the same.} */
diff --git a/nis/rpcsvc/yp.h b/nis/rpcsvc/yp.h
index 0bee83b259..40914c5813 100644
--- a/nis/rpcsvc/yp.h
+++ b/nis/rpcsvc/yp.h
@@ -221,8 +221,18 @@ bool_t xdr_ypresp_val();
 
 struct ypresp_key_val {
 	ypstat stat;
+#ifdef STUPID_SUN_BUG
+	/* This is the form as distributed by Sun.  But even the Sun NIS
+	   servers expect the values in the other order.  So their
+	   implementation somehow must change the order internally.  We
+	   don't want to follow this bad example since the user should be
+	   able to use rpcgen on this file.  */
 	keydat key;
 	valdat val;
+#else
+	valdat val;
+	keydat key;
+#endif
 };
 typedef struct ypresp_key_val ypresp_key_val;
 #ifdef __cplusplus
diff --git a/nis/rpcsvc/yp.x b/nis/rpcsvc/yp.x
index 6be27820b3..b1b25658eb 100644
--- a/nis/rpcsvc/yp.x
+++ b/nis/rpcsvc/yp.x
@@ -114,8 +114,18 @@ struct ypresp_val {
 
 struct ypresp_key_val {
 	ypstat stat;
+#ifdef STUPID_SUN_BUG
+	/* This is the form as distributed by Sun.  But even the Sun NIS
+	   servers expect the values in the other order.  So their
+	   implementation somehow must change the order internally.  We
+	   don't want to follow this bad example since the user should be
+	   able to use rpcgen on this file.  */
 	keydat key;
 	valdat val;
+#else
+	valdat val;
+	keydat key;
+#endif
 };
 
 
@@ -267,6 +277,12 @@ program YPPUSH_XFRRESPPROG {
 		YPPUSHPROC_NULL(void) = 0;
 
 #ifdef STUPID_SUN_BUG
+		/* This is the form as distributed by Sun.  But even
+		   the Sun NIS servers expect the values in the other
+		   order.  So their implementation somehow must change
+		   the order internally.  We don't want to follow this
+		   bad example since the user should be able to use
+		   rpcgen on this file.  */
 		yppushresp_xfr
 		YPPUSHPROC_XFRRESP(void) = 1;
 #else
diff --git a/nis/rpcsvc/yp_prot.h b/nis/rpcsvc/yp_prot.h
index bee84351bb..0c5a7101f7 100644
--- a/nis/rpcsvc/yp_prot.h
+++ b/nis/rpcsvc/yp_prot.h
@@ -154,8 +154,18 @@ struct ypresp_val {
 
 struct ypresp_key_val {
   ypstat status;
-  keydat keydat;
-  valdat valdat;
+#ifdef STUPID_SUN_BUG
+  /* This is the form as distributed by Sun.  But even the Sun NIS
+     servers expect the values in the other order.  So their
+     implementation somehow must change the order internally.  We
+     don't want to follow this bad example since the user should be
+     able to use rpcgen on this file.  */
+  keydat key;
+  valdat val;
+#else
+  valdat val;
+  keydat key;
+#endif
 };
 
 struct ypresp_master {
diff --git a/stdlib/getsubopt.c b/stdlib/getsubopt.c
index fa9eb06c3e..ecdc1edce9 100644
--- a/stdlib/getsubopt.c
+++ b/stdlib/getsubopt.c
@@ -1,5 +1,5 @@
 /* Parse comma separate list into words.
-   Copyright (C) 1996 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -57,7 +57,7 @@ getsubopt (optionp, tokens, valuep)
 	&& tokens[cnt][vstart - *optionp] == '\0')
       {
 	/* We found the current option in TOKENS.  */
-	*valuep = vstart != endp ? vstart : NULL;
+	*valuep = vstart != endp ? vstart + 1 : NULL;
 
 	if (*endp != '\0')
 	  *endp++ = '\0';
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index 9c434151fe..2b232acbe3 100644
--- a/sunrpc/Makefile
+++ b/sunrpc/Makefile
@@ -54,11 +54,8 @@ headers = $(addprefix rpc/,auth.h auth_unix.h clnt.h netdb.h pmap_clnt.h \
 			   svc_auth.h types.h xdr.h auth_des.h) \
 	  $(rpcsvc:%=rpcsvc/%)
 install-others = $(inst_sysconfdir)/rpc
-ifeq (no,$(cross-compiling))
-headers += $(rpcsvc:%.x=rpcsvc/%.h)
-install-others += $(inst_includedir)/rpcsvc/bootparam_prot.h
-endif
-generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c)
+generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) \
+	    $(rpcsvc:%.x=rpcsvc/%.stmp) $(rpcsvc:%.x=x%.stmp)
 
 routines := auth_none auth_unix authuxprot bindrsvprt \
 	    clnt_gen clnt_perr clnt_raw clnt_simp clnt_tcp \
@@ -89,6 +86,8 @@ include ../Makeconfig
 
 ifeq (no,$(cross-compiling))
 # We can only build this library if we can run the rpcgen we build.
+headers += $(rpcsvc:%.x=rpcsvc/%.h)
+install-others += $(inst_includedir)/rpcsvc/bootparam_prot.h
 extra-libs := librpcsvc
 extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass.
 librpcsvc-routines = $(rpcsvc:%.x=x%)
@@ -120,8 +119,7 @@ defines := $(defines) -D_PATH_RPC='"$(sysconfdir)/rpc"'
 # Generate the rpcsvc headers with rpcgen.
 # We use a stamp file to avoid unnessary recompilation each time rpcgen is
 # relinked.
-$(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp
-	@:
+$(rpcsvc:%.x=$(objpfx)rpcsvc/%.h): $(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp;
 $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
 	$(make-target-directory)
 	-@rm -f ${@:stmp=T} $@
@@ -132,8 +130,7 @@ $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
 	touch $@
 
 # Generate the rpcsvc XDR functions with rpcgen.
-$(objpfx)x%.c: $(objpfx)x%.stmp
-	@:
+$(rpcsvc:%.x=$(objpfx)x%.c): $(objpfx)x%.c: $(objpfx)x%.stmp;
 $(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
 	-@rm -f ${@:stmp=T} $@
 	$(rpcgen-cmd) -c $< -o ${@:stmp=T}
@@ -142,8 +139,6 @@ $(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
 	else mv -f ${@:stmp=T} ${@:stmp=c}; fi
 	touch $@
 
-generated += $(rpcsvc:%.x=rpcsvc/%.stmp) $(rpcsvc:%.x=x%.stmp)
-
 # The generated source files depend on the corresponding generated headers.
 # Gratuitous dependency on generated .c file here just gets it mentioned to
 # avoid being an intermediate file and getting removed.
diff --git a/sysdeps/i386/asm-syntax.h b/sysdeps/i386/asm-syntax.h
index 6e287764dc..fe3995f177 100644
--- a/sysdeps/i386/asm-syntax.h
+++ b/sysdeps/i386/asm-syntax.h
@@ -1,22 +1,23 @@
-/* asm.h -- Definitions for x86 syntax variations.
+/* Definitions for x86 syntax variations.
+   Copyright (C) 1992, 1994, 1995, 1997 Free Software Foundation, Inc.
 
-Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.  Its master source is NOT part of
+   the C library, however.  The master source lives in the GNU MP Library.
 
-This file is part of the GNU MP Library.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Library General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at your
-option) any later version.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
-License for more details.
-
-You should have received a copy of the GNU Library General Public License
-along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #undef ALIGN
 
diff --git a/sysdeps/libm-ieee754/s_tanhl.c b/sysdeps/libm-ieee754/s_tanhl.c
index 9863af62a5..f7ea3f4216 100644
--- a/sysdeps/libm-ieee754/s_tanhl.c
+++ b/sysdeps/libm-ieee754/s_tanhl.c
@@ -87,6 +87,6 @@ static long double one=1.0, two=2.0, tiny = 1.0e-4900L;
 	} else {
 	    z = one - tiny;		/* raised inexact flag */
 	}
-	return (se>0x7fff)? z: -z;
+	return (se>0x7fff)? -z: z;
 }
 weak_alias (__tanhl, tanhl)
diff --git a/sysdeps/m68k/asm-syntax.h b/sysdeps/m68k/asm-syntax.h
new file mode 100644
index 0000000000..fbb0e2f5d2
--- /dev/null
+++ b/sysdeps/m68k/asm-syntax.h
@@ -0,0 +1,110 @@
+/* Definitions for 68k syntax variations.
+   Copyright (C) 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.  Its master source is NOT part of
+   the C library, however.  The master source lives in the GNU MP Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifdef HAVE_ELF
+
+/* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
+#define ALIGNARG(log2) 1<<log2
+/* For ELF we need the `.type' directive to make shared libs work right.  */
+#define PROLOG(name) .type name,@function
+#define EPILOG(name) .size name,.-name
+/* For ELF we need to prefix register names and local labels.  */
+#ifdef __STDC__
+#define R_(r) %##r
+#define R(r) R_(r)
+#define L(label) .##label
+#else
+#define R(r) %/**/r
+#define L(label) ./**/label
+#endif
+
+#else
+
+#define ALIGNARG(log2) log2
+#define PROLOG(name) /* Nothing.  */
+#define EPILOG(name) /* Nothing.  */
+#define R(r) r
+#define L(label) label
+
+#endif
+
+#ifdef MIT_SYNTAX
+#define MEM(base)R(base)@
+#define MEM_DISP(base,displacement)R(base)@(displacement)
+#define MEM_INDX(base,idx,size_suffix)R(base)@(R(idx):size_suffix)
+#define MEM_INDX1(base,idx,size_suffix,scale)R(base)@(R(idx):size_suffix:scale)
+#define MEM_PREDEC(memory_base)R(memory_base)@-
+#define MEM_POSTINC(memory_base)R(memory_base)@+
+#define TEXT .text
+#define ALIGN .even
+#define GLOBL .globl
+/* Use variable sized opcodes.  */
+#define bcc jcc
+#define bcs jcs
+#define bls jls
+#define beq jeq
+#define bne jne
+#define bra jra
+#endif
+
+#ifdef MOTOROLA_SYNTAX
+#define MEM(base)(R(base))
+#define MEM_DISP(base,displacement)(displacement,R(base))
+#define MEM_PREDEC(memory_base)-(R(memory_base))
+#define MEM_POSTINC(memory_base)(R(memory_base))+
+#ifdef __STDC__
+#define MEM_INDX_(base,idx,size_suffix)(R(base),R(idx##.##size_suffix))
+#define MEM_INDX(base,idx,size_suffix)MEM_INDX_(base,idx,size_suffix)
+#define MEM_INDX1_(base,idx,size_suffix,scale)(R(base),R(idx##.##size_suffix*scale))
+#define MEM_INDX1(base,idx,size_suffix,scale)MEM_INDX1_(base,idx,size_suffix,scale)
+#else
+#define MEM_INDX(base,idx,size_suffix)(R(base),R(idx).size_suffix)
+#define MEM_INDX1(base,idx,size_suffix,scale)(R(base),R(idx).size_suffix*scale)
+#endif
+#define TEXT .text
+#define ALIGN .align ALIGNARG(2)
+#define GLOBL .globl
+#define bcc jbcc
+#define bcs jbcs
+#define bls jbls
+#define beq jbeq
+#define bne jbne
+#define bra jbra
+#define movel move.l
+#define moveml movem.l
+#define moveql moveq.l
+#define cmpl cmp.l
+#define orl or.l
+#define clrl clr.l
+#define eorw eor.w
+#define lsrl lsr.l
+#define lsll lsl.l
+#define roxrl roxr.l
+#define roxll roxl.l
+#define addl add.l
+#define addxl addx.l
+#define addql addq.l
+#define subl sub.l
+#define subxl subx.l
+#define subql subq.l
+#define negl neg.l
+#define mulul mulu.l
+#endif
diff --git a/sysdeps/unix/sysv/linux/net/ppp_defs.h b/sysdeps/unix/sysv/linux/net/ppp_defs.h
index 21a33b20a3..dfd40e1825 100644
--- a/sysdeps/unix/sysv/linux/net/ppp_defs.h
+++ b/sysdeps/unix/sysv/linux/net/ppp_defs.h
@@ -1,3 +1,8 @@
+#ifndef _NET_PPP_DEFS_H
+#define _NET_PPP_DEFS_H 1
+
 #include <sys/types.h>
 typedef u_int32_t __u32;
 #include <linux/ppp_defs.h>
+
+#endif /* net/ppp_defs.h */
diff --git a/time/Makefile b/time/Makefile
index 08a19a1838..d90bc87d42 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -169,7 +169,6 @@ CFLAGS-tzset.c = $(tz-cflags)
 .PHONY: install-test-data
 install-test-data: northamerica $(objpfx)zic $(leapseconds) yearistype \
 		   etcetera simplebackw
-	-mkdir $(objpfx)testdata
 	$(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
 	  -y yearistype northamerica
 	$(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \