summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog53
-rw-r--r--Makeconfig1
-rw-r--r--Makerules5
-rw-r--r--NEWS19
-rw-r--r--db/btree/bt_split.c5
-rw-r--r--libio/_G_config.h2
-rw-r--r--nis/rpcsvc/yp_prot.h8
-rw-r--r--resolv/gethnamaddr.c2
-rw-r--r--resolv/nss_dns/dns-host.c2
-rw-r--r--stdlib/atoll.c2
-rw-r--r--sysdeps/unix/Makefile3
-rw-r--r--sysdeps/unix/make-syscalls.sh5
-rw-r--r--sysdeps/unix/sysv/linux/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/netinet/udp.h35
-rw-r--r--time/time.h2
-rw-r--r--time/tzfile.c1
16 files changed, 130 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index c70e8ecf5f..e4ec9b8080 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,56 @@
+1997-02-13 02:32  Ulrich Drepper  <drepper@cygnus.com>
+
+	* time/time.h (__nanosleep): Define only when struct timespec is
+	also available.
+	Reported by Ross Alexander <rossa@stimpy.cs.auckland.ac.nz>.
+
+1997-02-12 21:34  a sun  <asun@zoology.washington.edu>
+
+	* sysdeps/unix/sysv/linux/netinet/udp.h: New file.
+	* sysdeps/unix/sysv/linux/Dist: Add netinet/udp.h.
+
+1997-02-12 21:16  Ulrich Drepper  <drepper@cygnus.com>
+
+	* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname_r): Follow patch
+	of 1997-02-09 in resolv/gethnamaddr.c.
+
+1997-02-11 18:52  H.J. Lu  <hjl@gnu.ai.mit.edu>
+
+	* libio/_G_config.h (_G_wint_t): New.
+
+1997-02-09 11:31  H.J. Lu  <hjl@gnu.ai.mit.edu>
+
+	* resolv/gethnamaddr.c (gethostbyname2): Change sizeof (buf)
+	to sizeof (buf.buf) while calling res_search ().
+
+1997-02-03 20:01  H.J. Lu  <hjl@gnu.ai.mit.edu>
+
+	* nis/rpcsvc/yp_prot.h (ypresp_key_val): Change key to keydat,
+	val to keydat, stat to status.
+
+1997-02-12 20:45  Andreas Jaeger  <jaeger@informatik.uni-kl.de>
+
+	* time/tzfile.c (__tzfile_read): Fix problem with SUID programs.
+
+1997-02-12 19:55  Ulrich Drepper  <drepper@cygnus.com>
+
+	* db/btree/bt_split.c (bt_psplit): Apply official patches #2 and #4
+	by Keith Bostic.
+
+1997-02-11 14:49  Andreas Jaeger  <jaeger@informatik.uni-kl.de>
+
+	* stdlib/atoll.c: Undefined atoll, not atol.
+
+1997-02-08 09:36  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sysdeps/unix/Makefile ($(common-objpfx)sysd-syscalls): Remove
+	unused arguments of shell script.
+
+	* Makeconfig (all-object-suffixes): New variable.
+	* Makerules ($(+sysdir_pfx)sysd-rules, +make-deps): Use it instead
+	of $(object-suffixes).
+	* sysdeps/unix/make-syscalls.sh: Likewise.  Fix comment.
+
 1997-02-11 05:27  Ulrich Drepper  <drepper@cygnus.com>
 
 	* locale/weight.h (collate_rules): It's an u_int32_t array.
diff --git a/Makeconfig b/Makeconfig
index fbe2ab11fb..2feb2b7088 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -481,6 +481,7 @@ endif
 # to pass different flags for each flavor.
 libtypes = $(foreach o,$(object-suffixes),$(libtype$o))
 object-suffixes := .o
+all-object-suffixes := .o .so .po .go
 libtype.o := lib%.a
 ifeq (yes,$(build-shared))
 # Under --enable-shared, we will build a shared library of PIC objects.
diff --git a/Makerules b/Makerules
index 23fa219102..5c3d1295cb 100644
--- a/Makerules
+++ b/Makerules
@@ -238,7 +238,7 @@ $(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \
 	     /*) dir=$$sysdir ;; \
 	     *)  dir="\$$(..)$$sysdir" ;; \
 	   esac; \
-	   for o in $(object-suffixes); do \
+	   for o in $(all-object-suffixes); do \
 	     $(open-check-inhibit-asm) \
 	     echo "\$$(objpfx)%$$o: $$dir/%.S \$$(before-compile); \
 		  \$$(compile-command.S)";				      \
@@ -292,7 +292,8 @@ define +make-deps
 $(make-target-directory)
 -@rm -f $@
 $(+mkdep) $< $(CPPFLAGS) $($(<:$*.%=%)-CPPFLAGS) | \
-sed -e 's,$(subst .,\.,$*)\.o,$(foreach o,$(object-suffixes),$(@:.d=$o)) $@,' \
+sed \
+-e 's,$(subst .,\.,$*)\.o,$(foreach o,$(all-object-suffixes),$(@:.d=$o)) $@,' \
 $(sed-remove-objpfx) > $(@:.d=.T)
 mv -f $(@:.d=.T) $@
 endef
diff --git a/NEWS b/NEWS
index 0be4d35c0f..fbc7cabe13 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,25 @@ Please send GNU C library bug reports using the `glibcbug' script to
 <bugs@gnu.ai.mit.edu>.  Questions and suggestions should be send to
 <bug-glibc@prep.ai.mit.edu>.
 
+Version 2.0.2
+
+* more bug fixes
+
+* add atoll function
+
+* fix complex problems in Berkeley DB code
+
+Version 2.0.1
+
+* fixed lots of header problems (especially Linux/GNU specific)
+
+* dynamic loader preserves all registers
+
+* Roland McGrath provided support for handling of auxiliary objects in
+  the ELF dynamic loader.
+
+* support for parallel builds is improved
+
 Version 2.0
 
 * GNU extensions are no longer declared by default.  To enable them you
diff --git a/db/btree/bt_split.c b/db/btree/bt_split.c
index d01db4ad9d..4951fcb096 100644
--- a/db/btree/bt_split.c
+++ b/db/btree/bt_split.c
@@ -674,7 +674,8 @@ bt_psplit(t, h, l, r, pskip, ilen)
 		 * where we decide to try and copy too much onto the left page.
 		 * Make sure that doesn't happen.
 		 */
-		if (skip <= off && used + nbytes >= full) {
+		if (skip <= off &&
+		    used + nbytes + sizeof(indx_t) >= full || nxt == top - 1) {
 			--off;
 			break;
 		}
@@ -687,7 +688,7 @@ bt_psplit(t, h, l, r, pskip, ilen)
 			memmove((char *)l + l->upper, src, nbytes);
 		}
 
-		used += nbytes;
+		sed += nbytes + sizeof(indx_t);
 		if (used >= half) {
 			if (!isbigkey || bigkeycnt == 3)
 				break;
diff --git a/libio/_G_config.h b/libio/_G_config.h
index 4b47e886a5..b388884742 100644
--- a/libio/_G_config.h
+++ b/libio/_G_config.h
@@ -8,6 +8,7 @@
 
 #include <gnu/types.h>
 #define __need_size_t
+#define __need_wint_t
 #include <stddef.h>
 #define _G_size_t	size_t
 #define _G_fpos_t	__off_t
@@ -15,6 +16,7 @@
 #define _G_off_t	__off_t
 #define	_G_pid_t	__pid_t
 #define	_G_uid_t	__uid_t
+#define _G_wint_t	wint_t
 
 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
diff --git a/nis/rpcsvc/yp_prot.h b/nis/rpcsvc/yp_prot.h
index 0c5a7101f7..42bc54c59d 100644
--- a/nis/rpcsvc/yp_prot.h
+++ b/nis/rpcsvc/yp_prot.h
@@ -160,11 +160,11 @@ struct ypresp_key_val {
      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;
+  keydat keydat;
+  valdat valdat;
 #else
-  valdat val;
-  keydat key;
+  valdat valdat;
+  keydat keydat;
 #endif
 };
 
diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
index 07da429cbf..424a6690ee 100644
--- a/resolv/gethnamaddr.c
+++ b/resolv/gethnamaddr.c
@@ -539,7 +539,7 @@ gethostbyname2(name, af)
 				break;
 		}
 
-	if ((n = res_search(name, C_IN, type, buf.buf, sizeof(buf))) < 0) {
+	if ((n = res_search(name, C_IN, type, buf.buf, sizeof(buf.buf))) < 0) {
 		dprintf("res_search failed (%d)\n", n);
 		if (errno == ECONNREFUSED)
 			return (_gethtbyname2(name, af));
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index 374da83429..959aa2f21d 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -151,7 +151,7 @@ _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result,
   if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
     name = cp;
 
-  n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer));
+  n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
   if (n < 0)
     return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 
diff --git a/stdlib/atoll.c b/stdlib/atoll.c
index dd387b949d..b85a888a1f 100644
--- a/stdlib/atoll.c
+++ b/stdlib/atoll.c
@@ -18,7 +18,7 @@
 
 #include <stdlib.h>
 
-#undef	atol
+#undef	atoll
 
 
 /* Convert a string to a long int.  */
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index 1aea477064..3cef7e735b 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -287,8 +287,7 @@ $(common-objpfx)sysd-syscalls: $(..)sysdeps/unix/make-syscalls.sh \
 			       $(wildcard $(+sysdep_dirs:%=%/syscalls.list))
 	for dir in $(+sysdep_dirs); do \
 	  test -f $$dir/syscalls.list && \
-	  { $(SHELL) $(dir $<)$(notdir $<) \
-		     $$dir $(object-suffixes) || exit 1; }; \
+	  { $(SHELL) $(dir $<)$(notdir $<) $$dir || exit 1; }; \
 	  test $$dir = $(..)sysdeps/unix && break; \
 	done > $@T
 	mv -f $@T $@
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index 58e31eb468..93a73802f7 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# Usage: make-syscalls.sh ../sysdeps unix/common
+# Usage: make-syscalls.sh ../sysdeps/unix/common
 # Expects $sysdirs in environment.
 
 thisdir=$1; shift
@@ -57,7 +57,8 @@ EOF
 
   # Emit a compilation rule for this syscall.
   echo "\
-\$(foreach o,\$(object-suffixes),\$(objpfx)$file\$o): \$(common-objpfx)s-proto.d
+\$(foreach o,\$(all-object-suffixes),\$(objpfx)$file\$o): \\
+\$(common-objpfx)s-proto.d
 	(echo '#include <sysdep.h>'; \\
 	 echo 'PSEUDO ($strong, $syscall, $nargs)'; \\
 	 echo '	ret'; \\
diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist
index b757562124..0660b247ef 100644
--- a/sysdeps/unix/sysv/linux/Dist
+++ b/sysdeps/unix/sysv/linux/Dist
@@ -12,6 +12,7 @@ net/ppp-comp.h
 net/ppp_defs.h
 net/route.h
 netinet/in_systm.h
+netinet/udp.h
 nfs/nfs.h
 sys/acct.h
 sys/debugreg.h
diff --git a/sysdeps/unix/sysv/linux/netinet/udp.h b/sysdeps/unix/sysv/linux/netinet/udp.h
new file mode 100644
index 0000000000..b088838ccb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/netinet/udp.h
@@ -0,0 +1,35 @@
+/* Copyright (C) 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C 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.  */
+
+#ifndef _NETINET_UDP_H
+#define _NETINET_UDP_H	1
+
+#include <sys/types.h>
+
+/* The Internet RFC 768 specifies this format for the UDP protocol.  */
+struct udphdr
+  {
+    u_short uh_sport;		/* Source port.  */
+    u_short uh_dport;		/* Destination port.  */
+    u_short uh_ulen;		/* UDP length.  */
+    u_short uh_sum;		/* UDP checksum.  */
+  };
+
+#define SOL_UDP		17	/* UDP level.  */
+
+#endif /* netinet/udp.h */
diff --git a/time/time.h b/time/time.h
index f6a26d919e..8c1aeaace6 100644
--- a/time/time.h
+++ b/time/time.h
@@ -267,10 +267,10 @@ extern int dysize __P ((int __year));
 #endif
 
 
+#ifdef __USE_POSIX199309
 /* Pause execution for a number of nanoseconds.  */
 extern int __nanosleep __P ((__const struct timespec *__requested_time,
 			     struct timespec *__remaining));
-#ifdef __USE_POSIX199309
 extern int nanosleep __P ((__const struct timespec *__requested_time,
 			   struct timespec *__remaining));
 #endif
diff --git a/time/tzfile.c b/time/tzfile.c
index e063d5d04f..663c02fda8 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -119,6 +119,7 @@ __tzfile_read (const char *file)
 	 directory hierachy starting at TZDIR.  */
       if (__libc_enable_secure
 	  && ((*file == '/'
+	       && (memcmp(file, TZDEFAULT, sizeof(TZDEFAULT) -1))
 	       && memcmp (file, default_tzdir, sizeof (default_tzdir) - 1))
 	      || strstr (file, "../") != NULL))
 	/* This test a certainly a bit too restrictive but it should