+++ /dev/null
---- glibc-2.3.2/csu/Makefile~ 2003-06-26 09:27:39.000000000 +0200
-+++ glibc-2.3.2/csu/Makefile 2003-09-09 16:56:31.522516384 +0200
-@@ -232,12 +232,12 @@
- os=Linux; \
- fi; \
- echo "\"Compiled on a $$os $$version system" \
-- "on `date +%Y-%m-%d`.\\n\"" ;; \
-+ "on `date +%Y-%m-%d`.\"" ;; \
- *) ;; \
- esac; \
- files="$(all-Banner-files)"; \
- if test -n "$$files"; then \
-- echo "\"Available extensions:\\n\""; \
-+ echo "\"Available extensions:\""; \
- sed -e '/^#/d' -e 's/^[[:space:]]*/ /' \
- -e 's/\(^.*$$\)/\"\1\\n\"/' $$files; \
- fi) > $@T
+++ /dev/null
-Index: db2/db_int.h
-===================================================================
-RCS file: /glibc/cvsfiles/libc/db2/db_int.h,v
-retrieving revision 1.10
-diff -u -r1.10 db_int.h
---- glibc-2.1.2/db2/db_int.h 1999/06/16 14:27:59 1.10
-+++ glibc-2.1.2/db2/db_int.h 1999/08/30 21:26:15
-@@ -138,7 +138,7 @@
- /*******************************************************
- * Mutex support.
- *******************************************************/
--typedef unsigned char tsl_t;
-+typedef u_int32_t tsl_t;
-
- /*
- * !!!
-Index: db2/mutex/mutex.c
-===================================================================
-RCS file: /glibc/cvsfiles/libc/db2/mutex/mutex.c,v
-retrieving revision 1.7
-diff -u -r1.7 mutex.c
---- glibc-2.1.2/db2/mutex/mutex.c 1999/06/13 11:24:41 1.7
-+++ glibc-2.1.2/db2/mutex/mutex.c 1999/08/30 21:26:16
-@@ -110,6 +110,10 @@
- #include "x86.gcc"
- #endif
-
-+#ifdef HAVE_ASSEM_ALPHA
-+#include "alpha.h"
-+#endif
-+
- #ifdef WIN16
- /* Win16 spinlocks are simple because we cannot possibly be preempted. */
- #define TSL_INIT(tsl)
-Index: db2/mutex/alpha.h
-===================================================================
---- /dev/null Tue May 5 13:32:27 1998
-+++ glibc-2.1.2/db2/mutex/alpha.h Mon Aug 30 14:21:09 1999
-@@ -0,0 +1,26 @@
-+/* For alpha, 0 is clear, 1 is set. */
-+
-+#ifdef __GNUC__
-+#define TSL_SET(tsl) ({ \
-+ register tsl_t *__l = (tsl); \
-+ int __r; \
-+ asm volatile( \
-+ "1: ldl_l %0,%1\n" \
-+ " blbs %0,2f\n" \
-+ " mov 1,%0\n" \
-+ " stl_c %0,%1\n" \
-+ " bne %0,1b\n" \
-+ " mb\n" \
-+ "2:" \
-+ : "=&r"(__r), "=m"(*__l) : "m"(*__l) : "memory"); \
-+ __r; \
-+})
-+#endif
-+
-+#ifdef __DECC
-+#include <alpha/builtins.h>
-+#define TSL_SET(tsl) (__LOCK_LONG_RETRY((tsl), 1) != 0)
-+#endif
-+
-+#define TSL_UNSET(tsl) (*(tsl) = 0)
-+#define TSL_INIT(tsl) TSL_UNSET(tsl)
-Index: sysdeps/alpha/Makefile
-===================================================================
-RCS file: /glibc/cvsfiles/libc/sysdeps/alpha/Makefile,v
-retrieving revision 1.15
-diff -u -r1.15 Makefile
---- glibc-2.1.2/sysdeps/alpha/Makefile 1998/06/27 09:50:41 1.15
-+++ glibc-2.1.2/sysdeps/alpha/Makefile 1999/08/30 21:34:00
-@@ -1,4 +1,4 @@
--# Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-+# Copyright (C) 1993, 94, 95, 96, 97, 99 Free Software Foundation, Inc.
- # This file is part of the GNU C Library.
- # Contributed by Brendan Kehoe (brendan@zen.org).
-
-@@ -16,6 +16,10 @@
- # 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.
-+
-+ifeq ($(subdir),db2)
-+CPPFLAGS += -DHAVE_SPINLOCKS=1 -DHAVE_ASSEM_ALPHA=1
-+endif
-
- ifeq ($(subdir),gmon)
- sysdep_routines += _mcount
+++ /dev/null
-2004-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/Makefile (rtld-routines): Add dl-errno.
- ($(objpfx)librtld.map): Copy libc_pic.a to libc_pic.a, remove
- errno.os from libc_pic.a and use libc_rtld.a instead of
- libc_pic.a.
- ($(objpfx)librtld.mk): Match libc_rtld.a instead of libc_pic.a.
-
- * elf/dl-errno.c: New file.
-
---- elf/Makefile.tls 2004-09-23 15:55:51.000000000 -0700
-+++ elf/Makefile 2004-10-01 16:10:16.000000000 -0700
-@@ -38,7 +38,8 @@ shared-only-routines += dl-caller
-
- # ld.so uses those routines, plus some special stuff for being the program
- # interpreter and operating independent of libc.
--rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ dl-minimal
-+rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ \
-+ dl-minimal dl-errno
- all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)
-
- distribute := rtld-Rules \
-@@ -229,11 +230,17 @@ $(objpfx)dl-allobjs.os: $(all-rtld-routi
- # those modules come from and builds special rtld-foo.os versions that
- # are compiled with special flags, and puts these modules into rtld-libc.a
- # for us. Then we do the real link using rtld-libc.a instead of libc_pic.a.
-+# `errno' is a special case. We don't want the one in libc_pic.a since
-+# `errno' in libc_pic.a may be a TLS, but the dynamic linker doesn't
-+# use TLS. The linker doesn't allow mixing TLS and non-TLS symbols.
-
- $(objpfx)librtld.map: $(objpfx)dl-allobjs.os $(common-objpfx)libc_pic.a
- @-rm -f $@T
-- $(reloc-link) -o $@.o '-Wl,-(' $^ -lgcc '-Wl,-)' -Wl,-Map,$@T
-- rm -f $@.o
-+ @rm -f libc_rtld.a
-+ cp $(common-objpfx)libc_pic.a $(common-objpfx)libc_rtld.a
-+ $(AR) d$(verbose) $(common-objpfx)libc_rtld.a errno.os
-+ $(reloc-link) -o $@.o '-Wl,-(' $(objpfx)dl-allobjs.os $(common-objpfx)libc_rtld.a -lgcc '-Wl,-)' -Wl,-Map,$@T
-+ rm -f $@.o $(common-objpfx)libc_rtld.a
- mv -f $@T $@
-
- $(objpfx)librtld.mk: $(objpfx)librtld.map Makefile
-@@ -242,7 +249,7 @@ $(objpfx)librtld.mk: $(objpfx)librtld.ma
- $< | \
- while read lib file; do \
- case $$lib in \
-- libc_pic.a) \
-+ libc_rtld.a) \
- LC_ALL=C fgrep -l /$$file \
- $(common-objpfx)stamp.os $(common-objpfx)*/stamp.os | \
- LC_ALL=C \
---- elf/dl-errno.c.tls 2004-10-01 14:57:23.000000000 -0700
-+++ elf/dl-errno.c 2004-10-01 15:34:30.000000000 -0700
-@@ -0,0 +1,19 @@
-+/* Copyright (C) 2004 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 Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 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
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <errno.c>
-
+++ /dev/null
-Index: gconv.h
-===================================================================
-RCS file: /cvs/glibc/libc/iconv/gconv.h,v
-retrieving revision 1.26
-retrieving revision 1.27
-diff -u -r1.26 -r1.27
---- libc/iconv/gconv.h 2000/11/20 08:49:09 1.26
-+++ libc/iconv/gconv.h 2000/11/27 17:52:35 1.27
-@@ -168,7 +168,7 @@
- {
- size_t __nsteps;
- struct __gconv_step *__steps;
-- __extension__ struct __gconv_step_data __data[0];
-+ __extension__ struct __gconv_step_data __data __flexarr;
- } *__gconv_t;
-
- #endif /* gconv.h */
-Index: cdefs.h
-===================================================================
-RCS file: /cvs/glibc/libc/misc/sys/cdefs.h,v
-retrieving revision 1.40
-retrieving revision 1.41
-diff -u -r1.40 -r1.41
---- libc/misc/sys/cdefs.h 2000/10/07 22:23:10 1.40
-+++ libc/misc/sys/cdefs.h 2000/11/27 17:51:56 1.41
-@@ -93,6 +93,24 @@
- #endif
-
-
-+/* Support for flexible arrays. */
-+#if __GNUC_PREREQ (2,97)
-+/* GCC 2.97 supports C99 flexible array members. */
-+# define __flexarr []
-+#else
-+# ifdef __GNUC__
-+# define __flexarr [0]
-+# else
-+# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
-+# define __flexarr []
-+# else
-+/* Some other non-C99 compiler. Approximate with [1]. */
-+# define __flexarr [1]
-+# endif
-+# endif
-+#endif
-+
-+
- /* __asm__ ("xyz") is used throughout the headers to rename functions
- at the assembly language level. This is wrapped by the __REDIRECT
- macro, in order to support compilers that can do this some other
+++ /dev/null
-#! /bin/sh -e
-
-# DP: Hack for some ordering in getaddrinfo lookups
-
-if [ $# -ne 2 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;;
- -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
---- glibc/sysdeps/posix/getaddrinfo.c~ 2000/11/18 08:30:02 1.34
-+++ glibc/sysdeps/posix/getaddrinfo.c 2001/01/09 01:46:49
-@@ -264,7 +264,7 @@
- return 0;
- }
-
--#define gethosts(_family, _type) \
-+#define gethosts(_family, _type, _name) \
- { \
- int i, herrno; \
- size_t tmpbuflen; \
-@@ -275,11 +275,12 @@
- do { \
- tmpbuflen *= 2; \
- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen); \
-- rc = __gethostbyname2_r (name, _family, &th, tmpbuf, \
-+ rc = __gethostbyname2_r (_name, _family, &th, tmpbuf, \
- tmpbuflen, &h, &herrno); \
- } while (rc == ERANGE && herrno == NETDB_INTERNAL); \
- if (rc != 0) \
- { \
-+ succeeded--; \
- if (herrno == NETDB_INTERNAL) \
- { \
- __set_h_errno (herrno); \
-@@ -307,6 +308,26 @@
- } \
- }
-
-+/* If we are looking for both IPv4 and IPv6 address we don't
-+ want the lookup functions to automatically promote IPv4
-+ addresses to IPv6 addresses. Currently this is decided
-+ by setting the RES_USE_INET6 bit in _res.options. */
-+#define tryname(__name) \
-+ { \
-+ succeeded = req->ai_family == AF_UNSPEC ? 2 : 1; \
-+ if (req->ai_family == AF_UNSPEC) \
-+ _res.options &= ~RES_USE_INET6; \
-+ if (req->ai_family == AF_UNSPEC || \
-+ req->ai_family == AF_INET6) \
-+ gethosts (AF_INET6, struct in6_addr, __name); \
-+ no_inet6_data = no_data; \
-+ if (req->ai_family == AF_UNSPEC) \
-+ _res.options = old_res_options; \
-+ if (req->ai_family == AF_UNSPEC || \
-+ req->ai_family == AF_INET) \
-+ gethosts (AF_INET, struct in_addr, __name); \
-+ }
-+
- static int
- gaih_inet (const char *name, const struct gaih_service *service,
- const struct addrinfo *req, struct addrinfo **pai)
-@@ -316,6 +337,10 @@
- struct gaih_addrtuple *at = NULL;
- int rc;
-
-+ /* Make sure we are initialized now */
-+ if (!(_res.options & RES_INIT))
-+ res_ninit(&_res);
-+
- if (req->ai_protocol || req->ai_socktype)
- {
- ++tp;
-@@ -489,34 +514,47 @@
- struct gaih_addrtuple **pat = &at;
- int no_data = 0;
- int no_inet6_data;
-+ int succeeded = -1;
- int old_res_options = _res.options;
-
-- /* If we are looking for both IPv4 and IPv6 address we don't
-- want the lookup functions to automatically promote IPv4
-- addresses to IPv6 addresses. Currently this is decided
-- by setting the RES_USE_INET6 bit in _res.options. */
-- if (req->ai_family == AF_UNSPEC)
-- _res.options &= ~RES_USE_INET6;
--
-- if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET6)
-- gethosts (AF_INET6, struct in6_addr);
-- no_inet6_data = no_data;
-+ /* If we have a dotted name, first try an absolute lookup. This
-+ avoids problem where the resolver will try to search domains
-+ even though we may have a fqdn, which is bad since ipv6 lookups
-+ are performed first. */
-+ if (strchr(name, '.') != NULL)
-+ {
-+ int namelen = strlen(name);
-+ char *newname = __alloca(namelen + 2);
-
-- if (req->ai_family == AF_UNSPEC)
-- _res.options = old_res_options;
-+ strcpy(newname, name);
-+ newname[namelen] = '.';
-+ newname[namelen+1] = '\0';
-
-- if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET)
-- gethosts (AF_INET, struct in_addr);
-+ tryname(newname);
-+ }
-
-- if (no_data != 0 && no_inet6_data != 0)
-+ /* If the previous didn't work, or we don't have a dotted name,
-+ we try again like normal, letting the resolver manage domain
-+ searching. */
-+ if (succeeded <= 0)
- {
-- /* If both requests timed out report this. */
-- if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN)
-- return -EAI_AGAIN;
--
-- /* We made requests but they turned out no data. The name
-- is known, though. */
-- return (GAIH_OKIFUNSPEC | -EAI_NODATA);
-+ _res.options = old_res_options;
-+
-+ if (succeeded == 0) /* we've tried absolute, now try searches */
-+ _res.ndots = 99;
-+
-+ tryname(name);
-+
-+ if (no_data != 0 && no_inet6_data != 0)
-+ {
-+ /* If both requests timed out report this. */
-+ if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN)
-+ return -EAI_AGAIN;
-+
-+ /* We made requests but they turned out no data. The name
-+ is known, though. */
-+ return (GAIH_OKIFUNSPEC | -EAI_NODATA);
-+ }
- }
- }
-
+++ /dev/null
-; From GLIBC pre 2.2.1 CVS Repository
-;
-Index: inet/getnameinfo.c
-===================================================================
-RCS file: /cvs/glibc/libc/inet/getnameinfo.c,v
-retrieving revision 1.21
-retrieving revision 1.23
-diff -u -r1.21 -r1.23
---- libc/inet/getnameinfo.c 2000/10/28 00:29:47 1.21
-+++ libc/inet/getnameinfo.c 2000/11/10 05:02:55 1.23
-@@ -175,25 +175,28 @@
- struct hostent th;
- int ok = 0;
-
-+ if (flags & ~(NI_NUMERICHOST|NI_NUMERICSERV|NI_NOFQDN|NI_NAMEREQD|NI_DGRAM))
-+ return EAI_BADFLAGS;
-+
- if (sa == NULL || addrlen < sizeof (sa_family_t))
-- return -1;
-+ return EAI_FAMILY;
-
- switch (sa->sa_family)
- {
- case AF_LOCAL:
- if (addrlen < (socklen_t) (((struct sockaddr_un *) NULL)->sun_path))
-- return -1;
-+ return EAI_FAMILY;
- break;
- case AF_INET:
- if (addrlen < sizeof (struct sockaddr_in))
-- return -1;
-+ return EAI_FAMILY;
- break;
- case AF_INET6:
- if (addrlen < sizeof (struct sockaddr_in6))
-- return -1;
-+ return EAI_FAMILY;
- break;
- default:
-- return -1;
-+ return EAI_FAMILY;
- }
-
- if (host != NULL && hostlen > 0)
-@@ -224,7 +227,7 @@
- {
- __set_h_errno (herrno);
- __set_errno (serrno);
-- return -1;
-+ return EAI_SYSTEM;
- }
- }
- else
-@@ -255,26 +258,23 @@
-
- if (h)
- {
-- if (flags & NI_NOFQDN)
-+ char *c;
-+ if ((flags & NI_NOFQDN) == 0
-+ && (c = nrl_domainname ())
-+ && (c = strstr (h->h_name, c))
-+ && (c != h->h_name) && (*(--c) == '.'))
-+ {
-+ strncpy (host, h->h_name,
-+ min(hostlen, (size_t) (c - h->h_name)));
-+ host[min(hostlen - 1, (size_t) (c - h->h_name))]
-+ = '\0';
-+ ok = 1;
-+ }
-+ else
- {
-- char *c;
-- if ((c = nrl_domainname ()) && (c = strstr(h->h_name, c))
-- && (c != h->h_name) && (*(--c) == '.'))
-- {
-- strncpy (host, h->h_name,
-- min(hostlen, (size_t) (c - h->h_name)));
-- host[min(hostlen - 1, (size_t) (c - h->h_name))]
-- = '\0';
-- ok = 1;
-- }
-- else
-- {
-- strncpy (host, h->h_name, hostlen);
-- ok = 1;
-- }
-+ strncpy (host, h->h_name, hostlen);
-+ ok = 1;
- }
-- strncpy (host, h->h_name, hostlen);
-- ok = 1;
- }
- }
-
-@@ -283,7 +283,7 @@
- if (flags & NI_NAMEREQD)
- {
- __set_errno (serrno);
-- return -1;
-+ return EAI_NONAME;
- }
- else
- {
-@@ -295,40 +295,43 @@
-
- c = inet_ntop (AF_INET6,
- (void *) &sin6p->sin6_addr, host, hostlen);
-- if (addrlen > sizeof (struct sockaddr_in6)
-- && (scopeid = sin6p->sin6_scope_id))
-+ scopeid = sin6p->sin6_scope_id;
-+ if (scopeid != 0)
- {
- /* Buffer is >= IFNAMSIZ+1. */
- char scopebuf[IFNAMSIZ + 1];
-+ char *scopeptr;
- int ni_numericscope = 0;
-+ size_t real_hostlen = __strnlen (host, hostlen);
-+ size_t scopelen = 0;
-+
-+ scopebuf[0] = SCOPE_DELIMITER;
-+ scopebuf[1] = '\0';
-+ scopeptr = &scopebuf[1];
-
- if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr)
- || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr))
- {
-- if (if_indextoname (scopeid, scopebuf) == NULL)
-+ if (if_indextoname (scopeid, scopeptr) == NULL)
- ++ni_numericscope;
-+ else
-+ scopelen = strlen (scopebuf);
- }
- else
- ++ni_numericscope;
-
- if (ni_numericscope)
-- {
-- char *scopeptr = &scopebuf[1];
-- size_t real_hostlen;
-- size_t scopelen;
--
-- scopebuf[0] = SCOPE_DELIMITER;
-- scopelen = 1 + __snprintf (scopeptr,
-- (scopebuf
-- + sizeof scopebuf
-- - scopeptr),
-- "%u", scopeid);
--
-- real_hostlen = __strnlen (host, hostlen);
-- if (real_hostlen + scopelen + 1 > hostlen)
-- return -1;
-- memcpy (host + real_hostlen, scopebuf, scopelen);
-- }
-+ scopelen = 1 + __snprintf (scopeptr,
-+ (scopebuf
-+ + sizeof scopebuf
-+ - scopeptr),
-+ "%u", scopeid);
-+
-+ if (real_hostlen + scopelen + 1 > hostlen)
-+ /* XXX We should not fail here. Simply enlarge
-+ the buffer or return with out of memory. */
-+ return EAI_SYSTEM;
-+ memcpy (host + real_hostlen, scopebuf, scopelen + 1);
- }
- }
- else
-@@ -338,7 +341,7 @@
- if (c == NULL)
- {
- __set_errno (serrno);
-- return -1;
-+ return EAI_SYSTEM;
- }
- }
- ok = 1;
-@@ -360,14 +363,14 @@
- if (flags & NI_NAMEREQD)
- {
- __set_errno (serrno);
-- return -1;
-+ return EAI_NONAME;
- }
-
- strncpy (host, "localhost", hostlen);
- break;
-
- default:
-- return -1;
-+ return EAI_FAMILY;
- }
-
- if (serv && (servlen > 0))
-@@ -392,7 +395,7 @@
- else
- {
- __set_errno (serrno);
-- return -1;
-+ return EAI_SYSTEM;
- }
- }
- else
-Index: getaddrinfo.c
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/posix/getaddrinfo.c,v
-retrieving revision 1.32
-retrieving revision 1.34
-diff -u -r1.32 -r1.34
---- libc/sysdeps/posix/getaddrinfo.c 2000/09/29 05:27:20 1.32
-+++ libc/sysdeps/posix/getaddrinfo.c 2000/11/18 08:30:02 1.34
-@@ -99,13 +99,14 @@
-
- /* Values for `protoflag'. */
- #define GAI_PROTO_NOSERVICE 1
-+#define GAI_PROTO_PROTOANY 2
-
- static struct gaih_typeproto gaih_inet_typeproto[] =
- {
- { 0, 0, NULL, 0 },
- { SOCK_STREAM, IPPROTO_TCP, (char *) "tcp", 0 },
- { SOCK_DGRAM, IPPROTO_UDP, (char *) "udp", 0 },
-- { SOCK_RAW, IPPROTO_RAW, (char *) "raw", GAI_PROTO_NOSERVICE },
-+ { SOCK_RAW, 0, (char *) "raw", GAI_PROTO_PROTOANY|GAI_PROTO_NOSERVICE },
- { 0, 0, NULL, 0 }
- };
-
-@@ -150,6 +151,7 @@
- && ((tp->protoflag & GAI_PROTO_NOSERVICE) != 0
- || (req->ai_socktype != 0 && req->ai_socktype != tp->socktype)
- || (req->ai_protocol != 0
-+ && !(tp->protoflag & GAI_PROTO_PROTOANY)
- && req->ai_protocol != tp->protocol)))
- ++tp;
-
-@@ -229,7 +231,7 @@
-
- static int
- gaih_inet_serv (const char *servicename, struct gaih_typeproto *tp,
-- struct gaih_servtuple *st)
-+ const struct addrinfo *req, struct gaih_servtuple *st)
- {
- struct servent *s;
- size_t tmpbuflen = 1024;
-@@ -255,7 +257,8 @@
-
- st->next = NULL;
- st->socktype = tp->socktype;
-- st->protocol = tp->protocol;
-+ st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
-+ ? req->ai_protocol : tp->protocol);
- st->port = s->s_port;
-
- return 0;
-@@ -268,6 +271,7 @@
- struct hostent th; \
- char *tmpbuf; \
- tmpbuflen = 512; \
-+ no_data = 0; \
- do { \
- tmpbuflen *= 2; \
- tmpbuf = __alloca (tmpbuflen); \
-@@ -282,17 +286,18 @@
- return -EAI_SYSTEM; \
- } \
- if (herrno == TRY_AGAIN) \
-- { \
-- __set_h_errno (herrno); \
-- return -EAI_AGAIN; \
-- } \
-+ no_data = EAI_AGAIN; \
-+ else \
-+ no_data = herrno == NO_DATA; \
- } \
-- if (h != NULL) \
-+ else if (h != NULL) \
- { \
- for (i = 0; h->h_addr_list[i]; i++) \
- { \
-- if (*pat == NULL) \
-+ if (*pat == NULL) { \
- *pat = __alloca (sizeof(struct gaih_addrtuple)); \
-+ (*pat)->scopeid = 0; \
-+ } \
- (*pat)->next = NULL; \
- (*pat)->family = _family; \
- memcpy ((*pat)->addr, h->h_addr_list[i], \
-@@ -300,7 +305,6 @@
- pat = &((*pat)->next); \
- } \
- } \
-- no_data = rc != 0 && herrno == NO_DATA; \
- }
-
- static int
-@@ -319,6 +323,7 @@
- while (tp->name != NULL
- && ((req->ai_socktype != 0 && req->ai_socktype != tp->socktype)
- || (req->ai_protocol != 0
-+ && !(tp->protoflag & GAI_PROTO_PROTOANY)
- && req->ai_protocol != tp->protocol)))
- ++tp;
-
-@@ -343,7 +348,7 @@
- st = (struct gaih_servtuple *)
- __alloca (sizeof (struct gaih_servtuple));
-
-- if ((rc = gaih_inet_serv (service->name, tp, st)))
-+ if ((rc = gaih_inet_serv (service->name, tp, req, st)))
- return rc;
- }
- else
-@@ -359,11 +364,15 @@
- if (req->ai_socktype != 0
- && req->ai_socktype != tp->socktype)
- continue;
-+ if (req->ai_protocol != 0
-+ && !(tp->protoflag & GAI_PROTO_PROTOANY)
-+ && req->ai_protocol != tp->protocol)
-+ continue;
-
- newp = (struct gaih_servtuple *)
- __alloca (sizeof (struct gaih_servtuple));
-
-- if ((rc = gaih_inet_serv (service->name, tp, newp)))
-+ if ((rc = gaih_inet_serv (service->name, tp, req, newp)))
- {
- if (rc & GAIH_OKIFUNSPEC)
- continue;
-@@ -382,7 +391,8 @@
- st = __alloca (sizeof (struct gaih_servtuple));
- st->next = NULL;
- st->socktype = tp->socktype;
-- st->protocol = tp->protocol;
-+ st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
-+ ? req->ai_protocol : tp->protocol);
- st->port = htons (service->num);
- }
- }
-@@ -390,8 +400,9 @@
- {
- st = __alloca (sizeof (struct gaih_servtuple));
- st->next = NULL;
-- st->socktype = req->ai_socktype;
-- st->protocol = req->ai_protocol;
-+ st->socktype = tp->socktype;
-+ st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
-+ ? req->ai_protocol : tp->protocol);
- st->port = 0;
- }
- else
-@@ -498,9 +509,15 @@
- gethosts (AF_INET, struct in_addr);
-
- if (no_data != 0 && no_inet6_data != 0)
-- /* We made requests but they turned out no data. The name
-- is known, though. */
-- return (GAIH_OKIFUNSPEC | -EAI_NODATA);
-+ {
-+ /* If both requests timed out report this. */
-+ if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN)
-+ return -EAI_AGAIN;
-+
-+ /* We made requests but they turned out no data. The name
-+ is known, though. */
-+ return (GAIH_OKIFUNSPEC | -EAI_NODATA);
-+ }
- }
-
- if (at->family == AF_UNSPEC)
-@@ -542,6 +559,7 @@
- struct gaih_servtuple *st2;
- struct gaih_addrtuple *at2 = at;
- size_t socklen, namelen;
-+ sa_family_t family;
-
- /*
- buffer is the size of an unformatted IPv6 address in printable format.
-@@ -597,9 +615,15 @@
- namelen = 0;
-
- if (at2->family == AF_INET6)
-- socklen = sizeof (struct sockaddr_in6);
-+ {
-+ family = AF_INET6;
-+ socklen = sizeof (struct sockaddr_in6);
-+ }
- else
-- socklen = sizeof (struct sockaddr_in);
-+ {
-+ family = AF_INET;
-+ socklen = sizeof (struct sockaddr_in);
-+ }
-
- for (st2 = st; st2 != NULL; st2 = st2->next)
- {
-@@ -608,7 +632,7 @@
- return -EAI_MEMORY;
-
- (*pai)->ai_flags = req->ai_flags;
-- (*pai)->ai_family = at2->family;
-+ (*pai)->ai_family = family;
- (*pai)->ai_socktype = st2->socktype;
- (*pai)->ai_protocol = st2->protocol;
- (*pai)->ai_addrlen = socklen;
-@@ -616,9 +640,9 @@
- #if SALEN
- (*pai)->ai_addr->sa_len = socklen;
- #endif /* SALEN */
-- (*pai)->ai_addr->sa_family = at2->family;
-+ (*pai)->ai_addr->sa_family = family;
-
-- if (at2->family == AF_INET6)
-+ if (family == AF_INET6)
- {
- struct sockaddr_in6 *sin6p =
- (struct sockaddr_in6 *) (*pai)->ai_addr;
-@@ -703,7 +727,7 @@
- else
- /* Can't specify a numerical socket unless a protocol family was
- given. */
-- if (hints->ai_socktype == 0)
-+ if (hints->ai_socktype == 0 && hints->ai_protocol == 0)
- return EAI_SERVICE;
- pservice = &gaih_service;
- }
-
+++ /dev/null
---- libc/configure.in.orig 2004-03-08 04:05:06.000000000 +0000
-+++ libc/configure.in 2004-03-30 14:13:40.812372096 +0000
-@@ -387,7 +387,7 @@
- c4[04]) base_machine=cx0 machine=cx0/c40 ;;
- hppa*64*) base_machine=hppa machine=hppa/hppa64 ;;
- hppa*) base_machine=hppa machine=hppa/hppa1.1 ;;
--i[3456]86) base_machine=i386 machine=i386/$machine ;;
-+i[34567]86) base_machine=i386 machine=i386/$machine ;;
- ia64) base_machine=ia64 machine=ia64 ;;
- m680?0) base_machine=m68k machine=m68k/$machine ;;
- m68k) base_machine=m68k machine=m68k/m68020 ;;
+++ /dev/null
->>>>> Ben Collins writes:
-
->> > %ldconfig
->> > ldconfig: Can't stat .2
->>
->> > Strace output shows this:
->>
->> > stat("/lib/ld-linux.so.2", {st_mode=S_IFREG|0755, st_size=463501, ...}) = 0
->> > stat(".2", 0xefffe5d0) = -1 ENOENT (No such file or directory)
->> > write(2, "ldconfig: ", 10) = 10
->> > write(2, "Can\'t stat .2\n", 14) = 14
->> > write(2, "\n", 1) = 1
->>
->> > %l /lib/ld-*
->> > -rwxr-xr-x 1 root root 463501 Nov 10 00:18 /lib/ld-2.2.so*
->> > lrwxrwxrwx 1 root root 9 Nov 10 00:53 /lib/ld-linux.so.2 -> ld-2.2.so*
-
-
- > Uggh. This was a royal pain in the ass to find. Thinko patch attached.
-
-Argh :-( Did you hear my scream? :-)
-
-Thanks! But you missed one place, I've committed the following to CVS
-now.
-
-Andreas
-
-2000-11-10 Andreas Jaeger <aj@suse.de>
-
- * elf/ldconfig.c (create_links): Fix alloca calculation.
- Patch by Ben Collins <bcollins@debian.org>.
-
-
-
-============================================================
-Index: elf/ldconfig.c
---- elf/ldconfig.c 2000/09/30 00:52:27 1.11
-+++ elf/ldconfig.c 2000/11/10 14:04:18
-@@ -370,13 +370,13 @@
-
- /* Get complete path. */
- full_libname = alloca (strlen (path) + strlen (libname) + 2);
-- full_soname = alloca (strlen (path) + strlen (libname) + 2);
-+ full_soname = alloca (strlen (path) + strlen (soname) + 2);
- sprintf (full_libname, "%s/%s", path, libname);
- sprintf (full_soname, "%s/%s", path, soname);
- if (opt_chroot)
- {
- real_full_libname = alloca (strlen (real_path) + strlen (libname) + 2);
-- real_full_soname = alloca (strlen (real_path) + strlen (libname) + 2);
-+ real_full_soname = alloca (strlen (real_path) + strlen (soname) + 2);
- sprintf (real_full_libname, "%s/%s", real_path, libname);
- sprintf (real_full_soname, "%s/%s", real_path, soname);
- }
-
---
- Andreas Jaeger
- SuSE Labs aj@suse.de
- private aj@arthur.inka.de
- http://www.suse.de/~aj
-
+++ /dev/null
-2002-10-09 Jakub Jelinek <jakub@redhat.com>
-
- * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r,
- _nss_dns_gethostbyaddr_r): Use malloc for host_buffer.
- * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r,
- _nss_dns_getnetbyaddr_r): Use malloc for net_buffer.
- * resolv/res_query.c (res_nquery): Use malloc for buf.
- * resolv/gethnamaddr.c (gethostbyname2, gethostbyaddr): Likewise.
-
---- libc/resolv/nss_dns/dns-host.c.jj Thu Dec 27 14:34:02 2001
-+++ libc/resolv/nss_dns/dns-host.c Wed Oct 9 11:23:19 2002
-@@ -132,11 +132,12 @@ _nss_dns_gethostbyname2_r (const char *n
- char *buffer, size_t buflen, int *errnop,
- int *h_errnop)
- {
-- querybuf host_buffer;
-+ querybuf *host_buffer;
- char tmp[NS_MAXDNAME];
- int size, type, n;
- const char *cp;
- int map = 0;
-+ enum nss_status status;
-
- if ((_res.options & RES_INIT) == 0 && __res_ninit (&_res) == -1)
- return NSS_STATUS_UNAVAIL;
-@@ -168,8 +169,15 @@ _nss_dns_gethostbyname2_r (const char *n
- && (cp = res_hostalias (&_res, name, tmp, sizeof (tmp))) != NULL)
- name = cp;
-
-- n = res_nsearch (&_res, name, C_IN, type, host_buffer.buf,
-- sizeof (host_buffer.buf));
-+ host_buffer = (querybuf *) malloc (sizeof (querybuf));
-+ if (host_buffer == NULL)
-+ {
-+ *errnop = ENOMEM;
-+ return NSS_STATUS_UNAVAIL;
-+ }
-+
-+ n = res_nsearch (&_res, name, C_IN, type, host_buffer->buf,
-+ sizeof (host_buffer->buf));
- if (n < 0)
- {
- enum nss_status status = (errno == ECONNREFUSED
-@@ -181,11 +189,14 @@ _nss_dns_gethostbyname2_r (const char *n
- by having the RES_USE_INET6 bit in _res.options set, we try
- another lookup. */
- if (af == AF_INET6 && (_res.options & RES_USE_INET6))
-- n = res_nsearch (&_res, name, C_IN, T_A, host_buffer.buf,
-- sizeof (host_buffer.buf));
-+ n = res_nsearch (&_res, name, C_IN, T_A, host_buffer->buf,
-+ sizeof (host_buffer->buf));
-
- if (n < 0)
-- return status;
-+ {
-+ free (host_buffer);
-+ return status;
-+ }
-
- map = 1;
-
-@@ -193,8 +204,10 @@ _nss_dns_gethostbyname2_r (const char *n
- result->h_length = INADDRSZ;;
- }
-
-- return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
-- errnop, h_errnop, map);
-+ status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
-+ errnop, h_errnop, map);
-+ free (host_buffer);
-+ return status;
- }
-
-
-@@ -232,7 +245,7 @@ _nss_dns_gethostbyaddr_r (const void *ad
- char *h_addr_ptrs[MAX_NR_ADDRS + 1];
- char linebuffer[0];
- } *host_data = (struct host_data *) buffer;
-- querybuf host_buffer;
-+ querybuf *host_buffer;
- char qbuf[MAXDNAME+1], *qp;
- size_t size;
- int n, status;
-@@ -289,17 +302,26 @@ _nss_dns_gethostbyaddr_r (const void *ad
- break;
- }
-
-- n = res_nquery (&_res, qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
-- sizeof host_buffer);
-+ host_buffer = (querybuf *) malloc (sizeof (querybuf));
-+ if (host_buffer == NULL)
-+ {
-+ *errnop = ENOMEM;
-+ return NSS_STATUS_UNAVAIL;
-+ }
-+
-+ n = res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer->buf,
-+ sizeof (host_buffer->buf));
- if (n < 0)
- {
- *h_errnop = h_errno;
- *errnop = errno;
-+ free (host_buffer);
- return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
- }
-
-- status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
-+ status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
- errnop, h_errnop, 0 /* XXX */);
-+ free (host_buffer);
- if (status != NSS_STATUS_SUCCESS)
- {
- *h_errnop = h_errno;
---- libc/resolv/nss_dns/dns-network.c.jj Mon Jul 9 14:57:48 2001
-+++ libc/resolv/nss_dns/dns-network.c Thu Oct 10 07:27:19 2002
-@@ -110,27 +110,39 @@ _nss_dns_getnetbyname_r (const char *nam
- int *herrnop)
- {
- /* Return entry for network with NAME. */
-- querybuf net_buffer;
-+ querybuf *net_buffer;
- int anslen;
- char *qbuf;
-+ enum nss_status status;
-
- if ((_res.options & RES_INIT) == 0 && __res_ninit (&_res) == -1)
- return NSS_STATUS_UNAVAIL;
-
- qbuf = strdupa (name);
-- anslen = res_nsearch (&_res, qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
-- sizeof (querybuf));
-+
-+ net_buffer = (querybuf *) malloc (sizeof (querybuf));
-+ if (net_buffer == NULL)
-+ {
-+ *errnop = ENOMEM;
-+ return NSS_STATUS_UNAVAIL;
-+ }
-+
-+ anslen = res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer->buf,
-+ sizeof (net_buffer->buf));
- if (anslen < 0)
- {
- /* Nothing found. */
- *errnop = errno;
-+ free (net_buffer);
- return (errno == ECONNREFUSED
- || errno == EPFNOSUPPORT
- || errno == EAFNOSUPPORT)
- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
- }
-
-- return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
-+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
-+ free (net_buffer);
-+ return status;
- }
-
-
-@@ -141,7 +153,7 @@ _nss_dns_getnetbyaddr_r (uint32_t net, i
- {
- /* Return entry for network with NAME. */
- enum nss_status status;
-- querybuf net_buffer;
-+ querybuf *net_buffer;
- unsigned int net_bytes[4];
- char qbuf[MAXDNAME];
- int cnt, anslen;
-@@ -180,19 +192,28 @@ _nss_dns_getnetbyaddr_r (uint32_t net, i
- break;
- }
-
-- anslen = res_nquery (&_res, qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
-- sizeof (querybuf));
-+ net_buffer = (querybuf *) malloc (sizeof (querybuf));
-+ if (net_buffer == NULL)
-+ {
-+ *errnop = ENOMEM;
-+ return NSS_STATUS_UNAVAIL;
-+ }
-+
-+ anslen = res_nquery (&_res, qbuf, C_IN, T_PTR, net_buffer->buf,
-+ sizeof (net_buffer->buf));
- if (anslen < 0)
- {
- /* Nothing found. */
- *errnop = errno;
-+ free (net_buffer);
- return (errno == ECONNREFUSED
- || errno == EPFNOSUPPORT
- || errno == EAFNOSUPPORT)
- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
- }
-
-- status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
-+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
-+ free (net_buffer);
- if (status == NSS_STATUS_SUCCESS)
- {
- /* Strip trailing zeros. */
---- libc/resolv/res_query.c.jj Wed Jan 10 11:04:04 2001
-+++ libc/resolv/res_query.c Wed Oct 9 15:10:46 2002
-@@ -108,28 +108,36 @@ res_nquery(res_state statp,
- u_char *answer, /* buffer to put answer */
- int anslen) /* size of answer buffer */
- {
-- u_char buf[MAXPACKET];
-+ u_char *buf;
- HEADER *hp = (HEADER *) answer;
- int n;
-
- hp->rcode = NOERROR; /* default */
-
-+ buf = malloc (MAXPACKET);
-+ if (buf == NULL) {
-+ __set_h_errno (NETDB_INTERNAL);
-+ return -1;
-+ }
-+
- #ifdef DEBUG
- if (statp->options & RES_DEBUG)
- printf(";; res_query(%s, %d, %d)\n", name, class, type);
- #endif
-
- n = res_nmkquery(statp, QUERY, name, class, type, NULL, 0, NULL,
-- buf, sizeof(buf));
-+ buf, MAXPACKET);
- if (n <= 0) {
- #ifdef DEBUG
- if (statp->options & RES_DEBUG)
- printf(";; res_query: mkquery failed\n");
- #endif
- RES_SET_H_ERRNO(statp, NO_RECOVERY);
-+ free (buf);
- return (n);
- }
- n = res_nsend(statp, buf, n, answer, anslen);
-+ free (buf);
- if (n < 0) {
- #ifdef DEBUG
- if (statp->options & RES_DEBUG)
---- libc/resolv/gethnamaddr.c.jj Thu Dec 27 14:34:00 2001
-+++ libc/resolv/gethnamaddr.c Thu Oct 10 10:05:44 2002
-@@ -510,10 +510,11 @@ gethostbyname2(name, af)
- const char *name;
- int af;
- {
-- querybuf buf;
-+ querybuf *buf;
- register const char *cp;
- char *bp;
- int n, size, type, len;
-+ struct hostent *ret;
- extern struct hostent *_gethtbyname2();
-
- if ((_res.options & RES_INIT) == 0 && __res_ninit(&_res) == -1) {
-@@ -615,13 +616,22 @@ gethostbyname2(name, af)
- break;
- }
-
-- if ((n = res_nsearch(&_res, name, C_IN, type, buf.buf, sizeof(buf.buf))) < 0) {
-+ buf = (querybuf *) malloc (sizeof (*buf));
-+ if (buf == NULL) {
-+ __set_h_errno (NETDB_INTERNAL);
-+ return NULL;
-+ }
-+
-+ if ((n = res_nsearch(&_res, name, C_IN, type, buf->buf, sizeof(buf->buf))) < 0) {
-+ free (buf);
- dprintf("res_nsearch failed (%d)\n", n);
- if (errno == ECONNREFUSED)
- return (_gethtbyname2(name, af));
- return (NULL);
- }
-- return (getanswer(&buf, n, name, type));
-+ ret = getanswer(buf, n, name, type);
-+ free (buf);
-+ return ret;
- }
-
- struct hostent *
-@@ -634,7 +644,7 @@ gethostbyaddr(addr, len, af)
- static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
- static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
- int n, size;
-- querybuf buf;
-+ querybuf *buf;
- register struct hostent *hp;
- char qbuf[MAXDNAME+1], *qp;
- #ifdef SUNSECURITY
-@@ -695,14 +705,22 @@ gethostbyaddr(addr, len, af)
- default:
- abort();
- }
-- n = res_nquery(&_res, qbuf, C_IN, T_PTR, (u_char *)buf.buf, sizeof buf.buf);
-+ buf = (querybuf *) malloc (sizeof (*buf));
-+ if (buf == NULL) {
-+ __set_h_errno (NETDB_INTERNAL);
-+ return NULL;
-+ }
-+ n = res_nquery(&_res, qbuf, C_IN, T_PTR, buf->buf, sizeof buf->buf);
- if (n < 0) {
-+ free (buf);
- dprintf("res_nquery failed (%d)\n", n);
- if (errno == ECONNREFUSED)
- return (_gethtbyaddr(addr, len, af));
- return (NULL);
- }
-- if (!(hp = getanswer(&buf, n, qbuf, T_PTR)))
-+ hp = getanswer(buf, n, qbuf, T_PTR);
-+ free (buf);
-+ if (!hp)
- return (NULL); /* h_errno was set by getanswer() */
- #ifdef SUNSECURITY
- if (af == AF_INET) {
+++ /dev/null
-2002-09-28 Roland McGrath <roland@redhat.com>
-
- * pthread.c (__pthread_reset_main_thread) [FLOATING_STACKS]:
- Don't call setrlimit, since we did no prior bogon we need to undo.
-
---- libc/linuxthreads/pthread.c 20 Sep 2002 20:04:23 -0000 1.105
-+++ libc/linuxthreads/pthread.c 28 Sep 2002 21:58:05 -0000 1.106
-@@ -1044,7 +1044,6 @@ static void pthread_handle_sigdebug(int
- void __pthread_reset_main_thread(void)
- {
- pthread_descr self = thread_self();
-- struct rlimit limit;
-
- if (__pthread_manager_request != -1) {
- /* Free the thread manager stack */
-@@ -1069,11 +1068,19 @@ void __pthread_reset_main_thread(void)
- THREAD_SETMEM(self, p_resp, &_res);
- #endif
-
-- if (getrlimit (RLIMIT_STACK, &limit) == 0
-- && limit.rlim_cur != limit.rlim_max) {
-- limit.rlim_cur = limit.rlim_max;
-- setrlimit(RLIMIT_STACK, &limit);
-- }
-+#ifndef FLOATING_STACKS
-+ /* This is to undo the setrlimit call in __pthread_init_max_stacksize.
-+ XXX This can be wrong if the user set the limit during the run. */
-+ {
-+ struct rlimit limit;
-+ if (getrlimit (RLIMIT_STACK, &limit) == 0
-+ && limit.rlim_cur != limit.rlim_max)
-+ {
-+ limit.rlim_cur = limit.rlim_max;
-+ setrlimit(RLIMIT_STACK, &limit);
-+ }
-+ }
-+#endif
- }
-
- /* Process-wide exec() request */
+++ /dev/null
-diff -Naur sysdeps/unix/sysv/linux/sparc/sparc32.orig/chown.S sysdeps/unix/sysv/linux/sparc/sparc32/chown.S
---- glibc-2.1.2/sysdeps/unix/sysv/linux/sparc/sparc32.orig/chown.S Thu Jan 1 00:00:00 1970
-+++ glibc-2.1.2/sysdeps/unix/sysv/linux/sparc/sparc32/chown.S Mon Aug 24 17:58:59 1998
-@@ -0,0 +1,25 @@
-+/* chown() compatibility for old Debian binaries.
-+ Copyright (C) 1998 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. */
-+
-+#include <sysdep.h>
-+
-+ PSEUDO (__chown, chown, 3)
-+ ret
-+ PSEUDO_END(__chown)
-+ weak_alias (__chown, chown)
-diff -Naur sysdeps/unix/sysv/linux/sparc/sparc32.orig/lchown.S sysdeps/unix/sysv/linux/sparc/sparc32/lchown.S
---- glibc-2.1.2/sysdeps/unix/sysv/linux/sparc/sparc32.orig/lchown.S Thu Jan 1 00:00:00 1970
-+++ glibc-2.1.2/sysdeps/unix/sysv/linux/sparc/sparc32/lchown.S Mon Aug 24 17:58:59 1998
-@@ -0,0 +1,29 @@
-+/* lchown() system call.
-+ Copyright (C) 1998 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. */
-+
-+#include <sysdep.h>
-+
-+ PSEUDO (__lchown, lchown, 3)
-+ ret
-+ PSEUDO_END(__lchown)
-+ weak_alias (__lchown, lchown)
-+
-+#if defined PIC && defined DO_VERSIONING
-+symbol_version (__lchown, chown, GLIBC_2.1);
-+#endif
-
+++ /dev/null
-Index: unsecvars.h
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/generic/unsecvars.h,v
-retrieving revision 1.1
-retrieving revision 1.3
-diff -u -r1.1 -r1.3
---- libc/sysdeps/generic/unsecvars.h 2000/09/26 09:31:25 1.1
-+++ libc/sysdeps/generic/unsecvars.h 2001/01/08 17:54:58 1.3
-@@ -1,11 +1,12 @@
- /* Environment variable to be removed for SUID programs. */
- #define UNSECURE_ENVVARS \
- "GCONV_PATH", \
-+ "HOSTALIASES", \
- "LOCALDOMAIN", \
- "LOCPATH", \
- "MALLOC_TRACE", \
- "NLSPATH", \
-- "RESOLV_HOST_CONF" \
-+ "RESOLV_HOST_CONF", \
- "RES_OPTIONS", \
- "TMPDIR", \
- "TZDIR"
+++ /dev/null
---- ldconfig-970926/ldconfig.c.ewt Tue Oct 21 13:44:27 1997
-+++ ldconfig-970926/ldconfig.c Tue Oct 21 13:45:37 1997
-@@ -182,8 +182,14 @@
- *islink = S_ISLNK(statbuf.st_mode);
-
- /* then try opening it */
-- if (!(file = fopen(buff, "rb")))
-- warn("can't open %s (%s), skipping", buff, strerror(errno));
-+ if (!(file = fopen(buff, "rb"))) {
-+ if (*islink) {
-+ if (strstr(buff, ".so."))
-+ unlink(buff);
-+ } else {
-+ warn("can't open %s (%s), skipping", buff, strerror(errno));
-+ }
-+ }
- else
- {
- /* now make sure it's a shared library */
+++ /dev/null
-diff -Nur ldconfig-980708/ldconfig.c ldconfig-980708.orig/ldconfig.c
---- ldconfig-980708/ldconfig.c Wed Jul 8 19:55:57 1998
-+++ ldconfig-980708.orig/ldconfig.c Tue Oct 6 08:07:23 1998
-@@ -33,7 +33,11 @@
- #include <getopt.h>
- #include <dirent.h>
- #include <unistd.h>
-+#if ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))
-+#include <linux/a.out.h>
-+#else
- #include <a.out.h>
-+#endif /* glibc-2.1 */
- #ifdef _LIBC
- #include <link.h>
- #else
+++ /dev/null
-#!/bin/sh
-#
-# /etc/rc.d/init.d/utmpd
-#
-# utmp Starts the utmpd daemon
-#
-# chkconfig: 2345 25 55
-# description: Utmpd daemon
-# processname: utmpd
-#
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
-# Get service config - may override defaults
-[ -f /etc/sysconfig/utmpd ] && . /etc/sysconfig/utmpd
-
-RETVAL=0
-# See how we were called.
-case "$1" in
- start)
- # Check if the service is already running?
- if [ ! -f /var/lock/subsys/utmpd ]; then
- msg_starting "utmpd"
- daemon utmpd
- RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/utmpd
- else
- msg_already_running "utmpd"
- fi
- ;;
- stop)
- if [ -f /var/lock/subsys/utmpd ]; then
- msg_stopping "utmpd"
- killproc utmpd
- rm -f /var/lock/subsys/utmpd >/dev/null 2>&1
- else
- msg_not_running "utmpd"
- fi
- ;;
- restart|force-reload)
- $0 stop
- $0 start
- exit $?
- ;;
- status)
- status utmpd
- exit $?
- ;;
- *)
- msg_usage "$0 {start|stop|restart|force-reload|status}"
- exit 3
-esac
-
-exit $RETVAL
+++ /dev/null
-# Customized setings for utmpd
-
-# Define nice level for utmpd
-SERVICE_RUN_NICE_LEVEL="+0"