--- glibc-2.3.1-net/ChangeLog.11	14 Nov 2000 18:05:52 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/ChangeLog.11	18 Nov 2000 00:20:10 -0000	1.3
@@ -1352,6 +1352,11 @@
 	* sysdeps/unix/sysv/linux/mips/sys/tas.h: Add missing .mips0 at the
 	end of inline assembler code.
 
+2000-10-02  Jakub Jelinek  <jakub@redhat.com>
+
+	* sunrpc/svc_udp.c (svcudp_recv): Set msg_controllen to all
+	remaining xp_pad space.
+
 2000-10-02  Ulrich Drepper  <drepper@redhat.com>
 
 	* include/features.h [__USE_FILE_OFFSET && !__REDIRECT]: Define
@@ -7786,6 +7791,13 @@
 	* sysdeps/i386/i586/mul_1.S: Likewise.
 	* sysdeps/i386/i586/submul_1.S: Likewise.
 
+2000-06-26  Jakub Jelinek  <jakub@redhat.com>
+
+	* nis/Versions (xdr_ypall): Export in both GLIBC_2.1.2 and GLIBC_2.2
+	for Red Hat compatibility.
+	* nis/yp_xdr.c: Likewise.
+	* Versions.def (libnsl): Add GLIBC_2.1.2 tag.
+
 2000-06-25  Greg McGary  <greg@mcgary.org>
 
 	* sysdeps/i386/i586/memcpy.S: Redefine memcpy as mempcpy,
@@ -9280,6 +9292,12 @@
 	syscall.
 	* sysdeps/unix/sysv/linux/mips/truncate64.c: Likewise.
 
+2000-05-30  Jakub Jelinek  <jakub@redhat.com>
+
+	* resolv/res_query.c (res_nsearch): Remove unused variable
+	root_on_list. If dots >= statp->ndots and as is querydomain
+	fails, keep searching.
+
 2000-05-30  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob): Loose __P.
@@ -9480,6 +9498,11 @@
 	* sysdeps/i386/fpu/bits/mathinline.h: Define expm1 inline only if
 	__FAST_MATH__ is defined.
 
+2000-05-22  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/i386/fpu/bits/mathinline.h (__expm1_code): Avoid using ?:
+	with omitted middle operand.
+
 2000-05-22  Andreas Jaeger  <aj@suse.de>
 
 	* math/Makefile: Add -D__FAST_MATH__ to CFLAGS-test-ifloat.c,
@@ -9717,6 +9740,11 @@
 
 	* manual/arith.texi (Parsing of Integers): Fix typo.
 	Closes PR libc/1744, reported by blp@gnu.org.
+
+2000-05-17  Jakub Jelinek  <jakub@redhat.com>
+
+	* inet/rcmd.c (rcmd_af): If *ahost cannot be resolved, include
+	unresolved hostname in the message.
 
 2000-05-17  Jakub Jelinek  <jakub@redhat.com>
 
--- glibc-2.3.1-net/ChangeLog.12	16 Aug 2001 06:26:18 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/ChangeLog.12	16 Aug 2001 06:55:47 -0000	1.2
@@ -7729,6 +7729,13 @@
 
 	* Versions.def [ld]: Add GLIBC_2.2.1.
 
+2001-01-10  Jakub Jelinek  <jakub@redhat.com>
+
+	* malloc/memusage.c (me): If not SUID/SGID, allow creating new
+	$MEMUSAGE_OUTPUT file.
+	* sysdeps/generic/segfault.c (segfault.c): If not SUID/SGID, allow
+	creating new $SEGFAULT_OUTPUT_NAME file.
+
 2001-01-10  H.J. Lu  <hjl@gnu.org>
 
 	* elf/dl-libc.c (do_dlopen): Call DL_STATIC_INIT for static binaries.
@@ -8129,6 +8136,11 @@
 	* resolv/Versions: Fix bracing.
 	* sysdeps/powerpc/soft-fp/Versions: Likewise.
 	* sysdeps/sparc/sparc64/soft-fp/Versions: Likewise.
+
+2001-01-02  Jakub Jelinek  <jakub@redhat.com>
+
+	* locale/setlocale.c (setlocale): Don't allocate/free category name
+	unnecessarily.
 
 2001-01-02  Franz Sirl	<Franz.Sirl-kernel@lauterbach.com>
 
--- glibc-2.3.1-net/Versions.def	12 Dec 2002 15:24:56 -0000	1.1.1.24
+++ glibc-2.3.1-redhat/Versions.def	12 Dec 2002 16:34:12 -0000	1.22
@@ -42,6 +42,7 @@ libm {
 libnsl {
   GLIBC_2.0
   GLIBC_2.1
+  GLIBC_2.1.2
   GLIBC_2.2
 }
 libnss_compat {
--- glibc-2.3.1-net/ctype/ctype-info.c	28 Sep 2002 20:36:35 -0000	1.1.1.9
+++ glibc-2.3.1-redhat/ctype/ctype-info.c	29 Sep 2002 11:38:50 -0000	1.4
@@ -48,18 +48,32 @@ extern const char _nl_C_LC_CTYPE_class_a
 
 #define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o)
 
+// const unsigned short int *__ctype_b = b (unsigned short int, class, 128);
+// const __uint32_t *__ctype32_b = b (__uint32_t, class32, 0);
+// const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128);
+// const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128);
+// const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128);
+// const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128);
+
+// compat_symbol (libc, __ctype_b, __ctype_b, GLIBC_2_0);
+// compat_symbol (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0);
+// compat_symbol (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0);
+// compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0);
+// compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
+// compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
+
+#endif
+
+/* Temporarily exported until all .a libraries are recompiled.  */
+#undef b
+#define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o)
+extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
 const unsigned short int *__ctype_b = b (unsigned short int, class, 128);
 const __uint32_t *__ctype32_b = b (__uint32_t, class32, 0);
 const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128);
 const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128);
 const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128);
 const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128);
-
-compat_symbol (libc, __ctype_b, __ctype_b, GLIBC_2_0);
-compat_symbol (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0);
-compat_symbol (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0);
-compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0);
-compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
-compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
-
-#endif
--- glibc-2.3.1-net/elf/Versions	4 Dec 2002 14:10:38 -0000	1.1.1.23
+++ glibc-2.3.1-redhat/elf/Versions	4 Dec 2002 14:34:09 -0000	1.15
@@ -32,6 +32,10 @@ ld {
     _r_debug;
   }
   GLIBC_2.1 {
+    # This will be GLIBC_PRIVATE, just to give folks some time
+    # to fix their stuff
+    __libc_stack_end;
+
     # functions used in other libraries
     _dl_mcount;
   }
@@ -41,7 +45,7 @@ ld {
   }
   GLIBC_PRIVATE {
     # Those are in the dynamic linker, but used by libc.so.
-    __libc_enable_secure; __libc_stack_end;
+    __libc_enable_secure; # __libc_stack_end;
     _dl_argv; _dl_catch_error; _dl_check_map_versions;
     _dl_debug_printf; _dl_debug_state; _dl_dst_count;
     _dl_dst_substitute; _dl_init; _dl_lookup_symbol; _dl_lookup_symbol_skip;
--- glibc-2.3.1-net/elf/dl-support.c	5 Feb 2003 09:12:59 -0000	1.1.1.26
+++ glibc-2.3.1-redhat/elf/dl-support.c	5 Feb 2003 09:22:50 -0000	1.7
@@ -224,6 +224,11 @@ _dl_non_dynamic_init (void)
   /* Now determine the length of the platform string.  */
   if (_dl_platform != NULL)
     _dl_platformlen = strlen (_dl_platform);
+
+#if defined (__i386__) && !defined (USE_TLS)
+  /* Load libs not using TLS.  */
+  _dl_osversion = 0x20205;
+#endif
 }
 
 
--- glibc-2.3.1-net/elf/rtld.c	11 Jan 2003 20:34:41 -0000	1.1.1.64
+++ glibc-2.3.1-redhat/elf/rtld.c	16 Jan 2003 11:15:30 -0000	1.82
@@ -924,6 +924,60 @@ of this helper program; chances are you 
   GL(dl_rtld_map).l_prev = GL(dl_loaded);
   ++GL(dl_nloaded);
 
+#if defined(__i386__)
+  /* Force non-TLS libraries for glibc 2.0 binaries, if kernel doesn't have
+     AT_SYSINFO tag or if a buggy binary references non-TLS errno, h_errno,
+     _res.  */
+#ifdef NEED_DL_SYSINFO
+  if (GL(dl_sysinfo) == DL_SYSINFO_DEFAULT)
+    GL(dl_osversion) = 0x20205;
+#endif
+  if (GL(dl_loaded)->l_info[DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERNEED)] == NULL)
+    GL(dl_osversion) = 0x20205;
+  else if (__builtin_expect (mode, normal) != normal
+	   || GL(dl_loaded)->l_info [ADDRIDX (DT_GNU_LIBLIST)] == NULL)
+    {
+      /* Workaround for buggy binaries.  This doesn't handle buggy
+	 libraries.  */
+      bool buggy = false;
+      const ElfW(Sym) *symtab = (const void *) D_PTR (GL(dl_loaded), l_info[DT_SYMTAB]);
+      const char *strtab = (const void *) D_PTR (GL(dl_loaded), l_info[DT_STRTAB]);
+      Elf_Symndx symidx;
+      for (symidx = GL(dl_loaded)->l_buckets[0x6c994f % GL(dl_loaded)->l_nbuckets];
+	   symidx != STN_UNDEF;
+	   symidx = GL(dl_loaded)->l_chain[symidx])
+	{
+	  if (__builtin_expect (strcmp (strtab + symtab[symidx].st_name,
+					"errno") == 0, 0)
+	      && ELFW(ST_TYPE) (symtab[symidx].st_info) != STT_TLS)
+	    buggy = true;
+	}
+      for (symidx = GL(dl_loaded)->l_buckets[0xe5c992f % GL(dl_loaded)->l_nbuckets];
+	   symidx != STN_UNDEF;
+	   symidx = GL(dl_loaded)->l_chain[symidx])
+	{
+	  if (__builtin_expect (strcmp (strtab + symtab[symidx].st_name,
+					"h_errno") == 0, 0)
+	      && ELFW(ST_TYPE) (symtab[symidx].st_info) != STT_TLS)
+	    buggy = true;
+	}
+      for (symidx = GL(dl_loaded)->l_buckets[0x668c3 % GL(dl_loaded)->l_nbuckets];
+	   symidx != STN_UNDEF;
+	   symidx = GL(dl_loaded)->l_chain[symidx])
+	{
+	  if (__builtin_expect (strcmp (strtab + symtab[symidx].st_name,
+					"_res") == 0, 0)
+	      && ELFW(ST_TYPE) (symtab[symidx].st_info) != STT_TLS)
+	    buggy = true;
+	}
+      if (__builtin_expect (buggy, false))
+	{
+	  GL(dl_osversion) = 0x20205;
+	  _dl_printf ("Incorrectly built binary which accesses errno, h_errno or _res directly. Needs to be fixed.\n");
+	}
+    }
+#endif
+
   /* We have two ways to specify objects to preload: via environment
      variable and via the file /etc/ld.so.preload.  The latter can also
      be used when security is enabled.  */
@@ -1046,6 +1100,62 @@ of this helper program; chances are you 
       /* We don't need the file anymore.  */
       __munmap (file, file_size);
     }
+
+
+#if defined(__i386__) || defined(__alpha__) || (defined(__sparc__) && !defined(__arch64__))
+  /*
+   * Modifications by Red Hat Software
+   *
+   * Deal with the broken binaries from the non-versioned ages of glibc.
+   * If a binary does not have version information enabled, we assume that
+   * it is a glibc 2.0 binary and we load a compatibility library to try to
+   * overcome binary incompatibilities.
+   *			Blame: gafton@redhat.com
+   */
+#define LIB_NOVERSION "/lib/libNoVersion.so.1"
+
+  if (GL(dl_loaded)->l_info[DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERNEED)] == NULL) {
+      struct stat test_st;
+      int test_fd;
+      int can_load;
+      
+      HP_TIMING_NOW (start);
+	   
+/*       _dl_sysdep_message("Loading compatibility library... ", NULL); */
+
+      can_load = 1;
+      test_fd = __open (LIB_NOVERSION, O_RDONLY);
+      if (test_fd < 0) {
+	  can_load = 0;
+/* 	  _dl_sysdep_message(" Can't find " LIB_NOVERSION "\n",  NULL); */
+      } else {
+	  if (__fxstat (_STAT_VER, test_fd, &test_st) < 0 || test_st.st_size == 0) {
+	      can_load = 0;
+/* 	      _dl_sysdep_message(" Can't stat " LIB_NOVERSION "\n",  NULL); */
+	  }
+      }
+      
+      if (test_fd >= 0) /* open did no fail.. */
+	  __close(test_fd); /* avoid fd leaks */
+
+      if (can_load != 0) {
+	  struct link_map *new_map;
+	  new_map = INTUSE(_dl_map_object) (GL(dl_loaded), LIB_NOVERSION,
+					    1, lt_library, 0, 0);
+	  if (++new_map->l_opencount == 1) {
+	      /* It is no duplicate.  */
+	      ++npreloads;
+/* 	      _dl_sysdep_message(" DONE\n", NULL); */
+	  } else {
+/* 	      _dl_sysdep_message(" FAILED\n", NULL); */
+	  }
+      }
+	  
+      HP_TIMING_NOW (stop);
+      HP_TIMING_DIFF (diff, start, stop);
+      HP_TIMING_ACCUM_NT (load_time, diff);
+  }
+#endif
 
   if (__builtin_expect (npreloads, 0) != 0)
     {
--- glibc-2.3.1-net/inet/rcmd.c	29 Jan 2003 13:37:09 -0000	1.1.1.18
+++ glibc-2.3.1-redhat/inet/rcmd.c	29 Jan 2003 14:02:16 -0000	1.17
@@ -139,14 +139,23 @@ rcmd_af(ahost, rport, locuser, remuser, 
 	(void)__snprintf(num, sizeof(num), "%d", ntohs(rport));
 	error = getaddrinfo(*ahost, num, &hints, &res);
 	if (error) {
+		if (error == EAI_NONAME && *ahost != NULL) {
 #ifdef USE_IN_LIBIO
-		if (_IO_fwide (stderr, 0) > 0)
-			__fwprintf(stderr, L"rcmd: getaddrinfo: %s\n",
-				   gai_strerror(error));
-		else
+			if (_IO_fwide (stderr, 0) > 0)
+				__fwprintf(stderr, L"%s: Unknown host\n", *ahost);
+			else
 #endif
-			fprintf(stderr, "rcmd: getaddrinfo: %s\n",
-				gai_strerror(error));
+				fprintf(stderr, "%s: Unknown host\n", *ahost);
+		} else {
+#ifdef USE_IN_LIBIO
+			if (_IO_fwide (stderr, 0) > 0)
+				__fwprintf(stderr, L"rcmd: getaddrinfo: %s\n",
+					   gai_strerror(error));
+			else
+#endif
+				fprintf(stderr, "rcmd: getaddrinfo: %s\n",
+					gai_strerror(error));
+		}		
                 return (-1);
 	}
 
--- glibc-2.3.1-net/libio/stdio.h	29 Aug 2002 07:16:42 -0000	1.1.1.13
+++ glibc-2.3.1-redhat/libio/stdio.h	29 Aug 2002 07:34:34 -0000	1.9
@@ -142,10 +142,12 @@ typedef _G_fpos64_t fpos64_t;
 extern struct _IO_FILE *stdin;		/* Standard input stream.  */
 extern struct _IO_FILE *stdout;		/* Standard output stream.  */
 extern struct _IO_FILE *stderr;		/* Standard error output stream.  */
+#ifdef __STDC__
 /* C89/C99 say they're macros.  Make them happy.  */
 #define stdin stdin
 #define stdout stdout
 #define stderr stderr
+#endif
 
 __BEGIN_NAMESPACE_STD
 /* Remove file FILENAME.  */
--- glibc-2.3.1-net/linuxthreads/lockfile.c	18 Dec 2002 12:43:50 -0000	1.1.1.7
+++ glibc-2.3.1-redhat/linuxthreads/lockfile.c	18 Dec 2002 12:48:17 -0000	1.8
@@ -74,7 +74,11 @@ __fresetlockfiles (void)
   __pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE_NP);
 
   for (i = _IO_iter_begin(); i != _IO_iter_end(); i = _IO_iter_next(i))
-    __pthread_mutex_init (_IO_iter_file(i)->_lock, &attr);
+    {
+      _IO_lock_t *_lock = _IO_iter_file(i)->_lock;
+      if (_lock)
+	__pthread_mutex_init (_lock, &attr);
+    }
 
   __pthread_mutexattr_destroy (&attr);
 
--- glibc-2.3.1-net/linuxthreads/semaphore.h	25 Jun 2001 11:31:17 -0000	1.1.1.6
+++ glibc-2.3.1-redhat/linuxthreads/semaphore.h	5 Apr 2002 10:02:50 -0000	1.2
@@ -21,6 +21,7 @@
 # define __need_timespec
 # include <time.h>
 #endif
+#include <bits/pthreadtypes.h>
 
 #ifndef _PTHREAD_DESCR_DEFINED
 /* Thread descriptors.  Needed for `sem_t' definition.  */
--- glibc-2.3.1-net/locale/iso-4217.def	28 Feb 2002 18:25:17 -0000	1.1.1.5
+++ glibc-2.3.1-redhat/locale/iso-4217.def	26 Mar 2002 16:10:36 -0000	1.2
@@ -6,6 +6,7 @@
  *
  * !!! The list has to be sorted !!!
  */
+DEFINE_INT_CURR("ADP ")		/* Andorran Peseta -> EUR  */
 DEFINE_INT_CURR("AED ")		/* United Arab Emirates Dirham  */
 DEFINE_INT_CURR("AFA ")		/* Afghanistan Afgani  */
 DEFINE_INT_CURR("ALL ")		/* Albanian Lek  */
@@ -13,12 +14,14 @@ DEFINE_INT_CURR("AMD ")		/* Armenia Dram
 DEFINE_INT_CURR("ANG ")		/* Netherlands Antilles  */
 DEFINE_INT_CURR("AOA ")		/* Angolan Kwanza  */
 DEFINE_INT_CURR("ARS ")		/* Argentine Peso  */
+DEFINE_INT_CURR("ATS ")		/* Austrian Schilling -> EUR  */
 DEFINE_INT_CURR("AUD ")		/* Australian Dollar  */
 DEFINE_INT_CURR("AWG ")		/* Aruba Guilder  */
 DEFINE_INT_CURR("AZM ")		/* Azerbaijan Manat  */
 DEFINE_INT_CURR("BAK ")		/* Bosnian and Herzegovina Convertible Mark  */
 DEFINE_INT_CURR("BBD ")		/* Barbados Dollar  */
 DEFINE_INT_CURR("BDT ")		/* Bangladesh Taka  */
+DEFINE_INT_CURR("BEF ")		/* Belgian Franc -> EUR  */
 DEFINE_INT_CURR("BGL ")		/* Bulgarian Lev  */
 DEFINE_INT_CURR("BHD ")		/* Bahraini Dinar  */
 DEFINE_INT_CURR("BIF ")		/* Burundi Franc  */
@@ -42,6 +45,7 @@ DEFINE_INT_CURR("CUP ")		/* Cuban Peso  
 DEFINE_INT_CURR("CVE ")		/* Cape Verde Escudo  */
 DEFINE_INT_CURR("CYP ")		/* Cypriot Pound  */
 DEFINE_INT_CURR("CZK ")		/* Czech Koruna  */
+DEFINE_INT_CURR("DEM ")		/* German Mark -> EUR  */
 DEFINE_INT_CURR("DJF ")		/* Djibouti Franc  */
 DEFINE_INT_CURR("DKK ")		/* Danish Krone (Faroe Islands, Greenland)  */
 DEFINE_INT_CURR("DOP ")		/* Dominican Republic  */
@@ -49,16 +53,20 @@ DEFINE_INT_CURR("DZD ")		/* Algerian Din
 DEFINE_INT_CURR("EEK ")		/* Estonian Kroon  */
 DEFINE_INT_CURR("EGP ")		/* Egyptian Pound  */
 DEFINE_INT_CURR("ERN ")		/* Eritrean Nakfa  */
+DEFINE_INT_CURR("ESP ")		/* Spanish Peseta -> EUR  */
 DEFINE_INT_CURR("ETB ")		/* Ethiopian Birr  */
 DEFINE_INT_CURR("EUR ")		/* European Union Euro  */
+DEFINE_INT_CURR("FIM ")		/* Finnish Markka -> EUR  */
 DEFINE_INT_CURR("FJD ")		/* Fiji Dollar  */
 DEFINE_INT_CURR("FKP ")		/* Falkland Islands Pound (Malvinas)  */
+DEFINE_INT_CURR("FRF ")		/* French Franc -> EUR  */
 DEFINE_INT_CURR("GBP ")		/* British Pound  */
 DEFINE_INT_CURR("GEL ")		/* Georgia Lari  */
 DEFINE_INT_CURR("GHC ")		/* Ghana Cedi  */
 DEFINE_INT_CURR("GIP ")		/* Gibraltar Pound  */
 DEFINE_INT_CURR("GMD ")		/* Gambian Dalasi  */
 DEFINE_INT_CURR("GNF ")		/* Guinea Franc  */
+DEFINE_INT_CURR("GRD ")		/* Greek Drachma -> EUR  */
 DEFINE_INT_CURR("GTQ ")		/* Guatemala Quetzal  */
 DEFINE_INT_CURR("GYD ")		/* Guyana Dollar  */
 DEFINE_INT_CURR("HKD ")		/* Hong Kong Dollar  */
@@ -67,12 +75,14 @@ DEFINE_INT_CURR("HRK ")		/* Croatia Kuna
 DEFINE_INT_CURR("HTG ")		/* Haiti Gourde  */
 DEFINE_INT_CURR("HUF ")		/* Hungarian Forint  */
 DEFINE_INT_CURR("IDR ")		/* Indonesia Rupiah  */
+DEFINE_INT_CURR("IEP ")		/* Irish Pound -> EUR  */
 DEFINE_INT_CURR("ILS ")		/* Israeli Shekel  */
 DEFINE_INT_CURR("IMP ")		/* Isle of Man Pounds  */
 DEFINE_INT_CURR("INR ")		/* Indian Rupee (Bhutan)  */
 DEFINE_INT_CURR("IQD ")		/* Iraqi Dinar  */
 DEFINE_INT_CURR("IRR ")		/* Iranian Rial  */
 DEFINE_INT_CURR("ISK ")		/* Iceland Krona  */
+DEFINE_INT_CURR("ITL ")		/* Italian Lira -> EUR  */
 DEFINE_INT_CURR("JMD ")		/* Jamaican Dollar  */
 DEFINE_INT_CURR("JOD ")		/* Jordanian Dinar  */
 DEFINE_INT_CURR("JPY ")		/* Japanese Yen  */
@@ -91,6 +101,7 @@ DEFINE_INT_CURR("LKR ")		/* Sri Lankan R
 DEFINE_INT_CURR("LRD ")		/* Liberian Dollar  */
 DEFINE_INT_CURR("LSL ")		/* Lesotho Maloti  */
 DEFINE_INT_CURR("LTL ")		/* Lithuanian Litas  */
+DEFINE_INT_CURR("LUF ")		/* Luxembourg Franc -> EUR  */
 DEFINE_INT_CURR("LVL ")		/* Latvia Lat  */
 DEFINE_INT_CURR("LYD ")		/* Libyan Arab Jamahiriya Dinar  */
 DEFINE_INT_CURR("MAD ")		/* Moroccan Dirham  */
@@ -111,6 +122,7 @@ DEFINE_INT_CURR("MZM ")		/* Mozambique M
 DEFINE_INT_CURR("NAD ")		/* Namibia Dollar  */
 DEFINE_INT_CURR("NGN ")		/* Nigeria Naira  */
 DEFINE_INT_CURR("NIO ")		/* Nicaragua Cordoba Oro  */
+DEFINE_INT_CURR("NLG ")		/* Netherlands Guilder -> EUR  */
 DEFINE_INT_CURR("NOK ")		/* Norwegian Krone  */
 DEFINE_INT_CURR("NPR ")		/* Nepalese Rupee  */
 DEFINE_INT_CURR("NZD ")		/* New Zealand Dollar  */
@@ -121,6 +133,7 @@ DEFINE_INT_CURR("PGK ")		/* Papau New Gu
 DEFINE_INT_CURR("PHP ")		/* Philippines Peso  */
 DEFINE_INT_CURR("PKR ")		/* Pakistan Rupee  */
 DEFINE_INT_CURR("PLN ")		/* Polish Zloty  */
+DEFINE_INT_CURR("PTE ")		/* Portugese Escudo -> EUR  */
 DEFINE_INT_CURR("PYG ")		/* Paraguay Guarani  */
 DEFINE_INT_CURR("QAR ")		/* Qatar Rial  */
 DEFINE_INT_CURR("ROL ")		/* Romanian Leu  */
--- glibc-2.3.1-net/locale/lc-ctype.c	28 Sep 2002 20:37:14 -0000	1.1.1.8
+++ glibc-2.3.1-redhat/locale/lc-ctype.c	29 Sep 2002 11:38:51 -0000	1.5
@@ -75,18 +75,32 @@ _nl_postload_ctype (void)
      We need those relocations so that a versioned definition with a COPY
      reloc in an executable will override the libc.so definition.  */
 
-compat_symbol (libc, __ctype_b, __ctype_b, GLIBC_2_0);
-compat_symbol (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0);
-compat_symbol (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0);
-compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0);
-compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
-compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
+// compat_symbol (libc, __ctype_b, __ctype_b, GLIBC_2_0);
+// compat_symbol (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0);
+// compat_symbol (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0);
+// compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0);
+// compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
+// compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
 
+//  __ctype_b = current (uint16_t, CLASS, 128);
+//  __ctype_toupper = current (uint32_t, TOUPPER, 128);
+//  __ctype_tolower = current (uint32_t, TOLOWER, 128);
+//  __ctype32_b = current (uint32_t, CLASS32, 0);
+//  __ctype32_toupper = current (uint32_t, TOUPPER32, 0);
+//  __ctype32_tolower = current (uint32_t, TOLOWER32, 0);
+#endif
+
+  /* Temporary.  */
+  extern __const unsigned short int *__ctype_b; /* Characteristics.  */
+  extern __const __int32_t *__ctype_tolower; /* Case conversions.  */
+  extern __const __int32_t *__ctype_toupper; /* Case conversions.  */
+  extern const uint32_t *__ctype32_b;
+  extern const uint32_t *__ctype32_toupper;
+  extern const uint32_t *__ctype32_tolower;
   __ctype_b = current (uint16_t, CLASS, 128);
   __ctype_toupper = current (uint32_t, TOUPPER, 128);
   __ctype_tolower = current (uint32_t, TOLOWER, 128);
   __ctype32_b = current (uint32_t, CLASS32, 0);
   __ctype32_toupper = current (uint32_t, TOUPPER32, 0);
   __ctype32_tolower = current (uint32_t, TOLOWER32, 0);
-#endif
 }
--- glibc-2.3.1-net/locale/setlocale.c	8 Nov 2002 00:18:17 -0000	1.1.1.15
+++ glibc-2.3.1-redhat/locale/setlocale.c	8 Nov 2002 00:24:48 -0000	1.11
@@ -330,9 +330,15 @@ setlocale (int category, const char *loc
 	    /* Make a copy of locale name.  */
 	    if (newnames[category] != _nl_C_name)
 	      {
-		newnames[category] = __strdup (newnames[category]);
-		if (newnames[category] == NULL)
-		  break;
+		if (! strcmp (newnames[category],
+			      _nl_global_locale.__names[category]))
+		  newnames[category] = _nl_global_locale.__names[category];
+		else
+		  {
+		    newnames[category] = __strdup (newnames[category]);
+		    if (newnames[category] == NULL)
+		      break;
+		  }
 	      }
 	  }
 
@@ -356,7 +362,8 @@ setlocale (int category, const char *loc
 	}
       else
 	for (++category; category < __LC_LAST; ++category)
-	  if (category != LC_ALL && newnames[category] != _nl_C_name)
+	  if (category != LC_ALL && newnames[category] != _nl_C_name
+	      && newnames[category] != _nl_global_locale.__names[category])
 	    free ((char *) newnames[category]);
 
       /* Critical section left.  */
--- glibc-2.3.1-net/localedata/Makefile	5 Feb 2003 09:13:42 -0000	1.1.1.28
+++ glibc-2.3.1-redhat/localedata/Makefile	5 Feb 2003 09:22:50 -0000	1.31
@@ -215,6 +215,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo
 	echo -n '...'; \
 	input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
 	$(LOCALEDEF) --alias-file=../intl/locale.alias \
+		     --no-archive \
 		     -i locales/$$input -c -f charmaps/$$charset \
 		     $(addprefix --prefix=,$(install_root)) $$locale; \
 	echo ' done'; \
--- glibc-2.3.1-net/localedata/SUPPORTED	25 Feb 2002 15:55:58 -0000	1.1.1.15
+++ glibc-2.3.1-redhat/localedata/SUPPORTED	25 Mar 2002 19:59:09 -0000	1.20
@@ -30,6 +30,7 @@ ca_ES@euro/ISO-8859-15 \
 cs_CZ/ISO-8859-2 \
 cy_GB/ISO-8859-14 \
 da_DK/ISO-8859-1 \
+da_DK.ISO-8859-15/ISO-8859-15 \
 de_AT/ISO-8859-1 \
 de_AT@euro/ISO-8859-15 \
 de_BE/ISO-8859-1 \
@@ -45,6 +46,7 @@ en_BW/ISO-8859-1 \
 en_CA/ISO-8859-1 \
 en_DK/ISO-8859-1 \
 en_GB/ISO-8859-1 \
+en_GB.ISO-8859-15/ISO-8859-15 \
 en_HK/ISO-8859-1 \
 en_IE/ISO-8859-1 \
 en_IE@euro/ISO-8859-15 \
@@ -53,6 +55,7 @@ en_NZ/ISO-8859-1 \
 en_PH/ISO-8859-1 \
 en_SG/ISO-8859-1 \
 en_US/ISO-8859-1 \
+en_US.ISO-8859-15/ISO-8859-15 \
 en_ZA/ISO-8859-1 \
 en_ZW/ISO-8859-1 \
 es_AR/ISO-8859-1 \
@@ -143,6 +146,7 @@ sr_YU@cyrillic/ISO-8859-5 \
 sv_FI/ISO-8859-1 \
 sv_FI@euro/ISO-8859-15 \
 sv_SE/ISO-8859-1 \
+sv_SE.ISO-8859-15/ISO-8859-15 \
 ta_IN/UTF-8 \
 te_IN/UTF-8 \
 tg_TJ/KOI8-T \
@@ -163,3 +167,134 @@ zh_CN.GBK/GBK \
 zh_HK/BIG5-HKSCS \
 zh_TW/BIG5 \
 zh_TW.EUC-TW/EUC-TW \
+ar_AE.UTF-8/UTF-8 \
+ar_BH.UTF-8/UTF-8 \
+ar_DZ.UTF-8/UTF-8 \
+ar_EG.UTF-8/UTF-8 \
+ar_IQ.UTF-8/UTF-8 \
+ar_JO.UTF-8/UTF-8 \
+ar_KW.UTF-8/UTF-8 \
+ar_LB.UTF-8/UTF-8 \
+ar_LY.UTF-8/UTF-8 \
+ar_MA.UTF-8/UTF-8 \
+ar_OM.UTF-8/UTF-8 \
+ar_QA.UTF-8/UTF-8 \
+ar_SA.UTF-8/UTF-8 \
+ar_SD.UTF-8/UTF-8 \
+ar_SY.UTF-8/UTF-8 \
+ar_TN.UTF-8/UTF-8 \
+ar_YE.UTF-8/UTF-8 \
+be_BY.UTF-8/UTF-8 \
+bg_BG.UTF-8/UTF-8 \
+ca_ES.UTF-8/UTF-8 \
+ca_ES.UTF-8@euro/UTF-8 \
+cs_CZ.UTF-8/UTF-8 \
+da_DK.UTF-8/UTF-8 \
+de_AT.UTF-8/UTF-8 \
+de_AT.UTF-8@euro/UTF-8 \
+de_BE.UTF-8/UTF-8 \
+de_BE.UTF-8@euro/UTF-8 \
+de_CH.UTF-8/UTF-8 \
+de_DE.UTF-8/UTF-8 \
+de_DE.UTF-8@euro/UTF-8 \
+de_LU.UTF-8/UTF-8 \
+de_LU.UTF-8@euro/UTF-8 \
+el_GR.UTF-8/UTF-8 \
+en_AU.UTF-8/UTF-8 \
+en_BW.UTF-8/UTF-8 \
+en_CA.UTF-8/UTF-8 \
+en_DK.UTF-8/UTF-8 \
+en_GB.UTF-8/UTF-8 \
+en_HK.UTF-8/UTF-8 \
+en_IE.UTF-8/UTF-8 \
+en_IE.UTF-8@euro/UTF-8 \
+en_NZ.UTF-8/UTF-8 \
+en_PH.UTF-8/UTF-8 \
+en_SG.UTF-8/UTF-8 \
+en_US.UTF-8/UTF-8 \
+en_ZA.UTF-8/UTF-8 \
+en_ZW.UTF-8/UTF-8 \
+es_AR.UTF-8/UTF-8 \
+es_BO.UTF-8/UTF-8 \
+es_CL.UTF-8/UTF-8 \
+es_CO.UTF-8/UTF-8 \
+es_CR.UTF-8/UTF-8 \
+es_DO.UTF-8/UTF-8 \
+es_EC.UTF-8/UTF-8 \
+es_ES.UTF-8/UTF-8 \
+es_ES.UTF-8@euro/UTF-8 \
+es_GT.UTF-8/UTF-8 \
+es_HN.UTF-8/UTF-8 \
+es_MX.UTF-8/UTF-8 \
+es_NI.UTF-8/UTF-8 \
+es_PA.UTF-8/UTF-8 \
+es_PE.UTF-8/UTF-8 \
+es_PR.UTF-8/UTF-8 \
+es_PY.UTF-8/UTF-8 \
+es_SV.UTF-8/UTF-8 \
+es_US.UTF-8/UTF-8 \
+es_UY.UTF-8/UTF-8 \
+es_VE.UTF-8/UTF-8 \
+et_EE.UTF-8/UTF-8 \
+eu_ES.UTF-8/UTF-8 \
+eu_ES.UTF-8@euro/UTF-8 \
+fi_FI.UTF-8/UTF-8 \
+fi_FI.UTF-8@euro/UTF-8 \
+fo_FO.UTF-8/UTF-8 \
+fr_BE.UTF-8/UTF-8 \
+fr_BE.UTF-8@euro/UTF-8 \
+fr_CA.UTF-8/UTF-8 \
+fr_CH.UTF-8/UTF-8 \
+fr_FR.UTF-8/UTF-8 \
+fr_FR.UTF-8@euro/UTF-8 \
+fr_LU.UTF-8/UTF-8 \
+fr_LU.UTF-8@euro/UTF-8 \
+ga_IE.UTF-8/UTF-8 \
+ga_IE.UTF-8@euro/UTF-8 \
+gl_ES.UTF-8/UTF-8 \
+gl_ES.UTF-8@euro/UTF-8 \
+gv_GB.UTF-8/UTF-8 \
+he_IL.UTF-8/UTF-8 \
+hr_HR.UTF-8/UTF-8 \
+hu_HU.UTF-8/UTF-8 \
+id_ID.UTF-8/UTF-8 \
+is_IS.UTF-8/UTF-8 \
+it_CH.UTF-8/UTF-8 \
+it_IT.UTF-8/UTF-8 \
+it_IT.UTF-8@euro/UTF-8 \
+iw_IL.UTF-8/UTF-8 \
+ja_JP.UTF-8/UTF-8 \
+kl_GL.UTF-8/UTF-8 \
+kw_GB.UTF-8/UTF-8 \
+lt_LT.UTF-8/UTF-8 \
+lv_LV.UTF-8/UTF-8 \
+mk_MK.UTF-8/UTF-8 \
+ms_MY.UTF-8/UTF-8 \
+mt_MT.UTF-8/UTF-8 \
+nl_BE.UTF-8/UTF-8 \
+nl_BE.UTF-8@euro/UTF-8 \
+nl_NL.UTF-8/UTF-8 \
+nl_NL.UTF-8@euro/UTF-8 \
+nn_NO.UTF-8/UTF-8 \
+no_NO.UTF-8/UTF-8 \
+pl_PL.UTF-8/UTF-8 \
+pt_BR.UTF-8/UTF-8 \
+pt_PT.UTF-8/UTF-8 \
+pt_PT.UTF-8@euro/UTF-8 \
+ro_RO.UTF-8/UTF-8 \
+ru_RU.UTF-8/UTF-8 \
+ru_UA.UTF-8/UTF-8 \
+sk_SK.UTF-8/UTF-8 \
+sl_SI.UTF-8/UTF-8 \
+sq_AL.UTF-8/UTF-8 \
+sr_YU.UTF-8/UTF-8 \
+sr_YU.UTF-8@cyrillic/UTF-8 \
+sv_FI.UTF-8/UTF-8 \
+sv_FI.UTF-8@euro/UTF-8 \
+sv_SE.UTF-8/UTF-8 \
+th_TH.UTF-8/UTF-8 \
+tr_TR.UTF-8/UTF-8 \
+uk_UA.UTF-8/UTF-8 \
+zh_CN.UTF-8/UTF-8 \
+zh_HK.UTF-8/UTF-8 \
+zh_TW.UTF-8/UTF-8 \
--- glibc-2.3.1-net/localedata/locales/en_GB	30 Oct 2000 08:02:31 -0000	1.1.1.5
+++ glibc-2.3.1-redhat/localedata/locales/en_GB	29 Jan 2003 14:02:16 -0000	1.2
@@ -112,8 +112,8 @@ mon         "<U004A><U0061><U006E><U0075
 d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
 d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
 t_fmt       "<U0025><U0054>"
-am_pm       "";""
-t_fmt_ampm  ""
+am_pm       "<U0041><U004D>";"<U0050><U004D>"
+t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
 date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 <U0025><U005A><U0020><U0025><U0059>"
--- glibc-2.3.1-net/localedata/locales/zh_TW	28 Sep 2002 20:37:49 -0000	1.1.1.5
+++ glibc-2.3.1-redhat/localedata/locales/zh_TW	28 Sep 2002 21:31:32 -0000	1.3
@@ -1,7 +1,7 @@
 comment_char %
 escape_char /
 %
-% Chinese language locale for Taiwan R.O.C.
+% Chinese language locale for Taiwan
 % charmap: BIG5-CP950
 %
 % Original Author:
@@ -17,7 +17,7 @@ escape_char /
 % Reference:	http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
 
 LC_IDENTIFICATION
-title      "Chinese locale for Taiwan R.O.C."
+title      "Chinese locale for Taiwan"
 source     ""
 address    ""
 contact    ""
@@ -25,7 +25,7 @@ email      "bug-glibc@gnu.org"
 tel        ""
 fax        ""
 language   "Chinese"
-territory  "Taiwan R.O.C."
+territory  "Taiwan"
 revision   "0.2"
 date       "2000-08-02"
 %
--- glibc-2.3.1-net/nis/Versions	3 Feb 2002 09:34:48 -0000	1.1.1.4
+++ glibc-2.3.1-redhat/nis/Versions	3 Feb 2002 09:49:28 -0000	1.6
@@ -54,6 +54,9 @@ libnsl {
     __nisbind_destroy;    __nisbind_next;
     readColdStartFile;    writeColdStartFile;
   }
+  GLIBC_2.1.2 {
+    xdr_ypall;
+  }
   GLIBC_2.2 {
     xdr_ypall;
   }
--- glibc-2.3.1-net/nis/yp_xdr.c	4 Jan 2000 16:11:52 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/nis/yp_xdr.c	26 Jun 2000 08:46:39 -0000	1.4
@@ -29,6 +29,7 @@
 
 #include <rpcsvc/yp.h>
 #include <rpcsvc/ypclnt.h>
+#include <shlib-compat.h>
 
 bool_t
 xdr_ypstat (XDR *xdrs, ypstat *objp)
@@ -301,7 +302,10 @@ xdr_ypbind_setdom (XDR *xdrs, ypbind_set
 }
 
 bool_t
-xdr_ypall(XDR *xdrs, struct ypall_callback *incallback)
+__xdr_ypall(XDR *xdrs, struct ypall_callback *incallback);
+
+bool_t
+__xdr_ypall(XDR *xdrs, struct ypall_callback *incallback)
 {
     struct ypresp_key_val out;
     char key[YPMAXRECORD], val[YPMAXRECORD];
@@ -343,3 +347,10 @@ xdr_ypall(XDR *xdrs, struct ypall_callba
 	    return FALSE;
     }
 }
+
+#if SHLIB_COMPAT (libnsl, GLIBC_2_1_2, GLIBC_2_2)
+strong_alias (__xdr_ypall, __xdr_old_ypall);
+compat_symbol (libnsl, __xdr_old_ypall, xdr_ypall, GLIBC_2_1_2);
+#endif
+
+versioned_symbol (libnsl, __xdr_ypall, xdr_ypall, GLIBC_2_2);
--- glibc-2.3.1-net/nptl/alloca_cutoff.c	27 Nov 2002 11:30:26 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/nptl/alloca_cutoff.c	3 Dec 2002 22:25:18 -0000	1.2
@@ -3,16 +3,16 @@
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nptl/tst-unload.c	27 Nov 2002 11:30:26 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/nptl/tst-unload.c	3 Dec 2002 22:25:18 -0000	1.2
@@ -3,16 +3,16 @@
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
 
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nptl/sysdeps/pthread/allocalim.h	27 Nov 2002 11:30:26 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/nptl/sysdeps/pthread/allocalim.h	3 Dec 2002 22:25:18 -0000	1.2
@@ -3,16 +3,16 @@
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nptl/sysdeps/pthread/pt-initfini.c	31 Dec 2002 09:13:46 -0000	1.1.1.2
+++ glibc-2.3.1-redhat/nptl/sysdeps/pthread/pt-initfini.c	31 Dec 2002 09:18:42 -0000	1.3
@@ -3,11 +3,11 @@
    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
+   and/or modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.
 
-   In addition to the permissions in the GNU Library General Public
+   In addition to the permissions in the GNU Lesser General Public
    License, the Free Software Foundation gives you unlimited
    permission to link the compiled version of this file with other
    programs, and to distribute those programs without any restriction
@@ -19,9 +19,9 @@
    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.
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; see the file COPYING.LIB.  If not,
    write to the Free Software Foundation, 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
--- glibc-2.3.1-net/nptl/sysdeps/pthread/bits/libc-lock.h	5 Feb 2003 09:14:28 -0000	1.1.1.8
+++ glibc-2.3.1-redhat/nptl/sysdeps/pthread/bits/libc-lock.h	5 Feb 2003 09:22:50 -0000	1.9
@@ -3,16 +3,16 @@
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nptl/sysdeps/pthread/bits/sigthread.h	27 Nov 2002 11:30:26 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/nptl/sysdeps/pthread/bits/sigthread.h	3 Dec 2002 22:25:18 -0000	1.2
@@ -3,16 +3,16 @@
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h	17 Feb 2003 22:59:51 -0000	1.1.1.3
+++ glibc-2.3.1-redhat/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h	17 Feb 2003 23:06:37 -0000	1.4
@@ -3,16 +3,16 @@
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h	18 Feb 2003 14:16:42 -0000	1.1.1.4
+++ glibc-2.3.1-redhat/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h	18 Feb 2003 15:53:02 -0000	1.4
@@ -3,16 +3,16 @@
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nptl/sysdeps/unix/sysv/linux/i386/system.c 1 Jan 1970 00:00:00 -0000
+++ glibc-2.3.1-redhat/nptl/sysdeps/unix/sysv/linux/i386/system.c	7 Jan 2003 09:50:52 -0000	1.2
@@ -0,0 +1,5 @@
+#include <kernel-features.h>
+#ifndef __ASSUME_CLONE_THREAD_FLAGS
+# define __ASSUME_CLONE_THREAD_FLAGS	1
+#endif
+#include <sysdeps/unix/sysv/linux/i386/system.c>
--- glibc-2.3.1-net/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h	18 Feb 2003 14:16:42 -0000	1.1.1.2
+++ glibc-2.3.1-redhat/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h	18 Feb 2003 15:53:02 -0000	1.3
@@ -3,16 +3,16 @@
    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
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
+   You should have received a copy of the GNU Lesser 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.  */
--- glibc-2.3.1-net/nscd/connections.c	16 Jan 2003 11:06:32 -0000	1.1.1.12
+++ glibc-2.3.1-redhat/nscd/connections.c	16 Jan 2003 11:15:30 -0000	1.13
@@ -575,7 +575,6 @@ start_threads (void)
   nscd_run ((void *) 0);
 }
 
-
 /* Look up the uid, gid, and supplementary groups to run nscd as. When
    this function is called, we are not listening on the nscd socket yet so
    we can just use the ordinary lookup functions without causing a lockup  */
@@ -639,3 +638,18 @@ finish_drop_privileges (void)
       exit (1);
     }
 }
+
+/* Handle the HUP signal which will force a dump of the cache */
+void
+sighup_handler (int signum)
+{
+    /* Prune the password database */
+    prune_cache (&dbs[pwddb], LONG_MAX);
+    
+    /* Prune the group database */
+    prune_cache (&dbs[grpdb], LONG_MAX);
+
+    /* Prune the host database */
+    prune_cache (&dbs[hstdb], LONG_MAX);
+}
+
--- glibc-2.3.1-net/nscd/nscd.c	16 Jan 2003 11:06:32 -0000	1.1.1.8
+++ glibc-2.3.1-redhat/nscd/nscd.c	16 Jan 2003 11:15:30 -0000	1.9
@@ -106,6 +106,9 @@ static struct argp argp =
   options, parse_opt, NULL, doc,
 };
 
+/* The SIGHUP handler is extern to this file */
+extern void sighup_handler(int signum);
+
 int
 main (int argc, char **argv)
 {
@@ -202,12 +205,13 @@ main (int argc, char **argv)
       /* Ignore job control signals.  */
       signal (SIGTTOU, SIG_IGN);
       signal (SIGTTIN, SIG_IGN);
-      signal (SIGTSTP, SIG_IGN);
+      signal (SIGTSTP, SIG_IGN);      
     }
 
   signal (SIGINT, termination_handler);
   signal (SIGQUIT, termination_handler);
   signal (SIGTERM, termination_handler);
+  signal (SIGHUP, sighup_handler);
   signal (SIGPIPE, SIG_IGN);
 
   /* Cleanup files created by a previous `bind'.  */
--- glibc-2.3.1-net/nscd/nscd.conf	9 May 2000 11:47:54 -0000	1.1.1.2
+++ glibc-2.3.1-redhat/nscd/nscd.conf	17 Jul 2000 14:10:35 -0000	1.2
@@ -23,7 +23,7 @@
 
 #	logfile			/var/log/nscd.log
 #	threads			6
-#	server-user		nobody
+	server-user		nscd
 	debug-level		0
 
 	enable-cache		passwd		yes
--- glibc-2.3.1-net/nscd/nscd.init	4 Jan 2000 16:11:52 -0000	1.1.1.1
+++ glibc-2.3.1-redhat/nscd/nscd.init	8 Apr 2001 20:41:59 -0000	1.14
@@ -1,13 +1,13 @@
-#!/bin/sh
+#!/bin/bash
 #
 # nscd:		Starts the Name Switch Cache Daemon
 #
-# chkconfig: - 30 80
+# chkconfig: - 30 74
 # description:  This is a daemon which handles passwd and group lookups \
 #		for running programs and cache the results for the next \
-#		query.  You should start this daemon only if you use \
-#		slow Services like NIS or NIS+
-# processname: nscd
+#		query.  You should start this daemon if you use \
+#		slow naming services like NIS, NIS+, LDAP, or hesiod.
+# processname: /usr/sbin/nscd
 # config: /etc/nscd.conf
 #
 
@@ -16,7 +16,7 @@
 [ -x /usr/sbin/nscd ] || exit 0
 
 # Source function library.
-. /etc/rc.d/init.d/functions
+. /etc/init.d/functions
 
 # nscd does not run on any kernel lower than 2.2.0 because of threading
 # problems, so we require that in first place.
@@ -34,51 +34,78 @@ case $(uname -r) in
 esac
 
 RETVAL=0
+prog=nscd
+
+start () {
+    secure=""
+#   for table in passwd group
+#   do
+#   	if egrep '^'$table':.*nisplus' /etc/nsswitch.conf >/dev/null
+#   	then
+#   		/usr/lib/nscd_nischeck $table ||
+#   			secure="$secure -S $table,yes"
+#   	fi
+#   done
+    echo -n $"Starting $prog: "
+    daemon /usr/sbin/nscd $secure
+    RETVAL=$?
+    echo
+    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
+    return $RETVAL
+}
+
+stop () {
+    echo -n $"Stopping $prog: "
+    /usr/sbin/nscd -K
+    RETVAL=$?
+    if [ $RETVAL -eq 0 ]; then
+       	rm -f /var/lock/subsys/nscd
+	# nscd won't be able to remove these if it is running as
+	# a non-privileged user
+	rm -f /var/run/nscd.pid
+	rm -f /var/run/.nscd_socket
+       	success $"$prog shutdown"
+    else
+       	failure $"$prog shutdown"
+    fi
+    echo
+    return $RETVAL
+}
+
+restart() {
+    stop
+    start
+}
 
 # See how we were called.
 case "$1" in
     start)
-	secure=""
-#	for table in passwd group
-#	do
-#		if egrep '^'$table':.*nisplus' /etc/nsswitch.conf >/dev/null
-#		then
-#			/usr/lib/nscd_nischeck $table ||
-#				secure="$secure -S $table,yes"
-#		fi
-#	done
-        echo -n "Starting Name Switch Cache Daemon: "
-	daemon nscd $secure
+	start
 	RETVAL=$?
-        echo
-        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
 	;;
     stop)
-	echo -n "Stopping Name Switch Cache Daemon: "
-	/usr/sbin/nscd -K
+	stop
 	RETVAL=$?
-	if [ $RETVAL -eq 0 ]; then
-		rm -f /var/lock/subsys/nscd
-        	echo nscd
-	else
-		echo
-	fi
 	;;
-  status)
+    status)
         status nscd
 	RETVAL=$?
         ;;
-  restart)
-        $0 stop
-        $0 start
+    restart)
+	restart
+	RETVAL=$?
+	;;
+    condrestart)
+	[ -e /var/lock/subsys/nscd ] && restart
 	RETVAL=$?
 	;;
-  reload)
-  	killproc -HUP nscd
+    reload)
+  	killproc /usr/sbin/nscd -HUP
 	RETVAL=$?
         ;;
     *)
-	echo "Usage: $0 {start|stop|status|restart}"
+	echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
+	RETVAL=1
 	;;
 esac
 exit $RETVAL
--- glibc-2.3.1-net/posix/Versions	27 Nov 2002 11:30:12 -0000	1.1.1.12
+++ glibc-2.3.1-redhat/posix/Versions	27 Nov 2002 11:44:46 -0000	1.11
@@ -3,6 +3,9 @@ libc {
     # functions with special/multiple interfaces
     __bsd_getpgrp; __setpgid; __getpgid;
 
+    # This will be GLIBC_PRIVATE, just give Sun JDK some time to catch up
+    __libc_wait; __libc_waitpid;
+
     # functions with required interface outside normal name space
     _exit;
 
@@ -83,6 +86,9 @@ libc {
   GLIBC_2.1.2 {
     # functions used in other libraries
     __vfork;
+
+    # This will be GLIBC_PRIVATE, just give wine some time to catch up
+    __libc_fork; 
   }
   GLIBC_2.2 {
     # p*
@@ -121,7 +127,8 @@ libc {
   GLIBC_PRIVATE {
     # functions which have an additional interface since they are
     # are cancelable.
-    __libc_wait; __libc_waitpid; __libc_pause; __libc_nanosleep; __libc_fork;
+    # __libc_wait; __libc_waitpid;
+    __libc_pause; __libc_nanosleep; # __libc_fork;
     __libc_pread; __libc_pread64; __libc_pwrite; __libc_pwrite64;
     __waitid; __pselect;
   }
--- glibc-2.3.1-net/sysdeps/i386/fpu/bits/mathinline.h	17 Dec 2002 15:50:39 -0000	1.1.1.12
+++ glibc-2.3.1-redhat/sysdeps/i386/fpu/bits/mathinline.h	17 Dec 2002 15:57:24 -0000	1.10
@@ -381,7 +381,8 @@ __sincosl (long double __x, long double 
     ("fscale			# 2^int(x * log2(e))\n\t"		      \
      : "=t" (__temp) : "0" (1.0), "u" (__exponent));			      \
   __temp -= 1.0;							      \
-  return __temp + __value ?: __x
+  __temp += __value;							      \
+  return __temp ? __temp : __x
 __inline_mathcodeNP_ (long double, __expm1l, __x, __expm1_code)
 
 
--- glibc-2.3.1-net/sysdeps/ia64/Makefile	20 May 2002 22:00:56 -0000	1.1.1.8
+++ glibc-2.3.1-redhat/sysdeps/ia64/Makefile	5 Jun 2002 15:43:34 -0000	1.3
@@ -12,8 +12,8 @@ static-only-routines += hp-timing
 
 ifeq (yes,$(build-shared))
 # Compatibility
-sysdep_routines += ia64libgcc
-shared-only-routines += ia64libgcc
+sysdep_routines += libgcc-compat
+shared-only-routines += libgcc-compat
 endif
 endif
 
--- glibc-2.3.1-net/sysdeps/ia64/ia64libgcc.S	20 May 2002 22:00:56 -0000	1.1.1.2
+++ glibc-2.3.1-redhat/sysdeps/ia64/ia64libgcc.S	5 Jun 2002 15:43:34 -0000	1.3
@@ -1,350 +0,0 @@
-/* From the Intel IA-64 Optimization Guide, choose the minimum latency
-   alternative.  */
-
-#include <sysdep.h>
-#undef ret
-
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
-
-/* __divtf3
-   Compute a 80-bit IEEE double-extended quotient.
-   farg0 holds the dividend.  farg1 holds the divisor.  */
-
-ENTRY(___divtf3)
-	cmp.eq p7, p0 = r0, r0
-	frcpa.s0 f10, p6 = farg0, farg1
-	;;
-(p6)	cmp.ne p7, p0 = r0, r0
-	.pred.rel.mutex p6, p7
-(p6)	fnma.s1 f11 = farg1, f10, f1
-(p6)	fma.s1 f12 = farg0, f10, f0
-	;;
-(p6)	fma.s1 f13 = f11, f11, f0
-(p6)	fma.s1 f14 = f11, f11, f11
-	;;
-(p6)	fma.s1 f11 = f13, f13, f11
-(p6)	fma.s1 f13 = f14, f10, f10
-	;;
-(p6)	fma.s1 f10 = f13, f11, f10
-(p6)	fnma.s1 f11 = farg1, f12, farg0
-	;;
-(p6)	fma.s1 f11 = f11, f10, f12
-(p6)	fnma.s1 f12 = farg1, f10, f1
-	;;
-(p6)	fma.s1 f10 = f12, f10, f10
-(p6)	fnma.s1 f12 = farg1, f11, farg0
-	;;
-(p6)	fma.s0 fret0 = f12, f10, f11
-(p7)	mov fret0 = f10
-	br.ret.sptk rp
-END(___divtf3)
-	.symver ___divtf3, __divtf3@GLIBC_2.2
-
-/* __divdf3
-   Compute a 64-bit IEEE double quotient.
-   farg0 holds the dividend.  farg1 holds the divisor.  */
-
-ENTRY(___divdf3)
-	cmp.eq p7, p0 = r0, r0
-	frcpa.s0 f10, p6 = farg0, farg1
-	;;
-(p6)	cmp.ne p7, p0 = r0, r0
-	.pred.rel.mutex p6, p7
-(p6)	fmpy.s1 f11 = farg0, f10
-(p6)	fnma.s1 f12 = farg1, f10, f1
-	;;
-(p6)	fma.s1 f11 = f12, f11, f11
-(p6)	fmpy.s1 f13 = f12, f12
-	;;
-(p6)	fma.s1 f10 = f12, f10, f10
-(p6)	fma.s1 f11 = f13, f11, f11
-	;;
-(p6)	fmpy.s1 f12 = f13, f13
-(p6)	fma.s1 f10 = f13, f10, f10
-	;;
-(p6)	fma.d.s1 f11 = f12, f11, f11
-(p6)	fma.s1 f10 = f12, f10, f10
-	;;
-(p6)	fnma.d.s1 f8 = farg1, f11, farg0
-	;;
-(p6)	fma.d fret0 = f8, f10, f11
-(p7)	mov fret0 = f10
-	br.ret.sptk rp
-	;;
-END(___divdf3)
-	.symver	___divdf3, __divdf3@GLIBC_2.2
-
-/* __divsf3
-   Compute a 32-bit IEEE float quotient.
-   farg0 holds the dividend.  farg1 holds the divisor.  */
-
-ENTRY(___divsf3)
-	cmp.eq p7, p0 = r0, r0
-	frcpa.s0 f10, p6 = farg0, farg1
-	;;
-(p6)	cmp.ne p7, p0 = r0, r0
-	.pred.rel.mutex p6, p7
-(p6)	fmpy.s1 f8 = farg0, f10
-(p6)	fnma.s1 f9 = farg1, f10, f1
-	;;
-(p6)	fma.s1 f8 = f9, f8, f8
-(p6)	fmpy.s1 f9 = f9, f9
-	;;
-(p6)	fma.s1 f8 = f9, f8, f8
-(p6)	fmpy.s1 f9 = f9, f9
-	;;
-(p6)	fma.d.s1 f10 = f9, f8, f8
-	;;
-(p6)	fnorm.s.s0 fret0 = f10
-(p7)	mov fret0 = f10
-	br.ret.sptk rp
-	;;
-END(___divsf3)
-	.symver	___divsf3, __divsf3@GLIBC_2.2
-
-/* __divdi3
-   Compute a 64-bit integer quotient.
-   in0 holds the dividend.  in1 holds the divisor.  */
-
-ENTRY(___divdi3)
-	.regstk 2,0,0,0
-	/* Transfer inputs to FP registers.  */
-	setf.sig f8 = in0
-	setf.sig f9 = in1
-	;;
-	/* Convert the inputs to FP, so that they won't be treated as
-	   unsigned.  */
-	fcvt.xf f8 = f8
-	fcvt.xf f9 = f9
-	;;
-	/* Compute the reciprocal approximation.  */
-	frcpa.s1 f10, p6 = f8, f9
-	;;
-	/* 3 Newton-Raphson iterations.  */
-(p6)	fnma.s1 f11 = f9, f10, f1
-(p6)	fmpy.s1 f12 = f8, f10
-	;;
-(p6)	fmpy.s1 f13 = f11, f11
-(p6)	fma.s1 f12 = f11, f12, f12
-	;;
-(p6)	fma.s1 f10 = f11, f10, f10
-(p6)	fma.s1 f11 = f13, f12, f12
-	;;
-(p6)	fma.s1 f10 = f13, f10, f10
-(p6)	fnma.s1 f12 = f9, f11, f8
-	;;
-(p6)	fma.s1 f10 = f12, f10, f11
-	;;
-	/* Round quotient to an integer.  */
-	fcvt.fx.trunc.s1 f10 = f10
-	;;
-	/* Transfer result to GP registers.  */
-	getf.sig ret0 = f10
-	br.ret.sptk rp
-	;;
-END(___divdi3)
-	.symver	___divdi3, __divdi3@GLIBC_2.2
-
-/* __moddi3
-   Compute a 64-bit integer modulus.
-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
-
-ENTRY(___moddi3)
-	.regstk 2,0,0,0
-	/* Transfer inputs to FP registers.  */
-	setf.sig f14 = in0
-	setf.sig f9 = in1
-	;;
-	/* Convert the inputs to FP, so that they won't be treated as
-	   unsigned.  */
-	fcvt.xf f8 = f14
-	fcvt.xf f9 = f9
-	;;
-	/* Compute the reciprocal approximation.  */
-	frcpa.s1 f10, p6 = f8, f9
-	;;
-	/* 3 Newton-Raphson iterations.  */
-(p6)	fmpy.s1 f12 = f8, f10
-(p6)	fnma.s1 f11 = f9, f10, f1
-	;;
-(p6)	fma.s1 f12 = f11, f12, f12
-(p6)	fmpy.s1 f13 = f11, f11
-	;;
-(p6)	fma.s1 f10 = f11, f10, f10
-(p6)	fma.s1 f11 = f13, f12, f12
-	;;
-	sub in1 = r0, in1
-(p6)	fma.s1 f10 = f13, f10, f10
-(p6)	fnma.s1 f12 = f9, f11, f8
-	;;
-	setf.sig f9 = in1
-(p6)	fma.s1 f10 = f12, f10, f11
-	;;
-	fcvt.fx.trunc.s1 f10 = f10
-	;;
-	/* r = q * (-b) + a  */
-	xma.l f10 = f10, f9, f14
-	;;
-	/* Transfer result to GP registers.  */
-	getf.sig ret0 = f10
-	br.ret.sptk rp
-	;;
-END(___moddi3)
-	.symver ___moddi3, __moddi3@GLIBC_2.2
-
-/* __udivdi3
-   Compute a 64-bit unsigned integer quotient.
-   in0 holds the dividend.  in1 holds the divisor.  */
-
-ENTRY(___udivdi3)
-	.regstk 2,0,0,0
-	/* Transfer inputs to FP registers.  */
-	setf.sig f8 = in0
-	setf.sig f9 = in1
-	;;
-	/* Convert the inputs to FP, to avoid FP software-assist faults.  */
-	fcvt.xuf.s1 f8 = f8
-	fcvt.xuf.s1 f9 = f9
-	;;
-	/* Compute the reciprocal approximation.  */
-	frcpa.s1 f10, p6 = f8, f9
-	;;
-	/* 3 Newton-Raphson iterations.  */
-(p6)	fnma.s1 f11 = f9, f10, f1
-(p6)	fmpy.s1 f12 = f8, f10
-	;;
-(p6)	fmpy.s1 f13 = f11, f11
-(p6)	fma.s1 f12 = f11, f12, f12
-	;;
-(p6)	fma.s1 f10 = f11, f10, f10
-(p6)	fma.s1 f11 = f13, f12, f12
-	;;
-(p6)	fma.s1 f10 = f13, f10, f10
-(p6)	fnma.s1 f12 = f9, f11, f8
-	;;
-(p6)	fma.s1 f10 = f12, f10, f11
-	;;
-	/* Round quotient to an unsigned integer.  */
-	fcvt.fxu.trunc.s1 f10 = f10
-	;;
-	/* Transfer result to GP registers.  */
-	getf.sig ret0 = f10
-	br.ret.sptk rp
-	;;
-END(___udivdi3)
-	.symver	___udivdi3, __udivdi3@GLIBC_2.2
-
-/* __umoddi3
-   Compute a 64-bit unsigned integer modulus.
-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
-
-ENTRY(___umoddi3)
-	.regstk 2,0,0,0
-	/* Transfer inputs to FP registers.  */
-	setf.sig f14 = in0
-	setf.sig f9 = in1
-	;;
-	/* Convert the inputs to FP, to avoid FP software assist faults.  */
-	fcvt.xuf.s1 f8 = f14
-	fcvt.xuf.s1 f9 = f9
-	;;
-	/* Compute the reciprocal approximation.  */
-	frcpa.s1 f10, p6 = f8, f9
-	;;
-	/* 3 Newton-Raphson iterations.  */
-(p6)	fmpy.s1 f12 = f8, f10
-(p6)	fnma.s1 f11 = f9, f10, f1
-	;;
-(p6)	fma.s1 f12 = f11, f12, f12
-(p6)	fmpy.s1 f13 = f11, f11
-	;;
-(p6)	fma.s1 f10 = f11, f10, f10
-(p6)	fma.s1 f11 = f13, f12, f12
-	;;
-	sub in1 = r0, in1
-(p6)	fma.s1 f10 = f13, f10, f10
-(p6)	fnma.s1 f12 = f9, f11, f8
-	;;
-	setf.sig f9 = in1
-(p6)	fma.s1 f10 = f12, f10, f11
-	;;
-	/* Round quotient to an unsigned integer.  */
-	fcvt.fxu.trunc.s1 f10 = f10
-	;;
-	/* r = q * (-b) + a  */
-	xma.l f10 = f10, f9, f14
-	;;
-	/* Transfer result to GP registers.  */
-	getf.sig ret0 = f10
-	br.ret.sptk rp
-	;;
-END(___umoddi3)
-	.symver	___umoddi3, __umoddi3@GLIBC_2.2
-
-/* __multi3
-   Compute a 128-bit multiply of 128-bit multiplicands.
-   in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b).  */
-
-ENTRY(___multi3)
-	.regstk 4,0,0,0
-	setf.sig f6 = in1
-	movl r19 = 0xffffffff
-	setf.sig f7 = in2
-	;;
-	and r14 = r19, in0
-	;;
-	setf.sig f10 = r14
-	and r14 = r19, in2
-	xmpy.l f9 = f6, f7
-	;;
-	setf.sig f6 = r14
-	shr.u r14 = in0, 32
-	;;
-	setf.sig f7 = r14
-	shr.u r14 = in2, 32
-	;;
-	setf.sig f8 = r14
-	xmpy.l f11 = f10, f6
-	xmpy.l f6 = f7, f6
-	;;
-	getf.sig r16 = f11
-	xmpy.l f7 = f7, f8
-	;;
-	shr.u r14 = r16, 32
-	and r16 = r19, r16
-	getf.sig r17 = f6
-	setf.sig f6 = in0
-	;;
-	setf.sig f11 = r14
-	getf.sig r21 = f7
-	setf.sig f7 = in3
-	;;
-	xma.l f11 = f10, f8, f11
-	xma.l f6 = f6, f7, f9
-	;;
-	getf.sig r18 = f11
-	;;
-	add r18 = r18, r17
-	;;
-	and r15 = r19, r18
-	cmp.ltu p7, p6 = r18, r17
-	;;
-	getf.sig r22 = f6
-(p7)	adds r14 = 1, r19
-	;;
-(p7)	add r21 = r21, r14
-	shr.u r14 = r18, 32
-	shl r15 = r15, 32
-	;;
-	add r20 = r21, r14
-	;;
-	add ret0 = r15, r16
-	add ret1 = r22, r20
-	br.ret.sptk rp
-	;;
-END(___multi3)
-	.symver	___multi3, __multi3@GLIBC_2.2
-
-#endif
--- glibc-2.3.1-net/sysdeps/ia64/libgcc-compat.c 1 Jan 1970 00:00:00 -0000
+++ glibc-2.3.1-redhat/sysdeps/ia64/libgcc-compat.c	5 Jun 2002 15:43:34 -0000	1.1
@@ -0,0 +1,84 @@
+/* pre-.hidden libgcc compatibility
+   Copyright (C) 2002 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 <stdint.h>
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
+
+typedef int int128_t __attribute__((__mode__(TI)));
+
+extern long double __divtf3 (long double, long double) attribute_hidden;
+long double INTUSE (__divtf3) (long double x, long double y)
+{
+  return __divtf3 (x, y);
+}
+symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2);
+
+extern double __divdf3 (double, double) attribute_hidden;
+double INTUSE (__divdf3) (double x, double y)
+{
+  return __divdf3 (x, y);
+}
+symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2);
+
+extern float __divsf3 (float, float) attribute_hidden;
+float INTUSE (__divsf3) (float x, float y)
+{
+  return __divsf3 (x, y);
+}
+symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2);
+
+extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden;
+int64_t INTUSE (__divdi3) (int64_t x, int64_t y)
+{
+  return __divdi3 (x, y);
+}
+symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2);
+
+extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden;
+int64_t INTUSE (__moddi3) (int64_t x, int64_t y)
+{
+  return __moddi3 (x, y);
+}
+symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2);
+
+extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden;
+uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y)
+{
+  return __udivdi3 (x, y);
+}
+symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2);
+
+extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden;
+uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y)
+{
+  return __umoddi3 (x, y);
+}
+symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2);
+
+extern int128_t __multi3 (int128_t, int128_t) attribute_hidden;
+int128_t INTUSE (__multi3) (int128_t x, int128_t y)
+{
+  return __multi3 (x, y);
+}
+symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
+
+#endif
--- glibc-2.3.1-net/sysdeps/unix/nice.c	28 Sep 2002 20:39:24 -0000	1.1.1.4
+++ glibc-2.3.1-redhat/sysdeps/unix/nice.c	19 Apr 2002 10:27:37 -0000	1.3
@@ -41,7 +41,12 @@ nice (int incr)
 	__set_errno (save);
     }
 
-  result = setpriority (PRIO_PROCESS, 0, prio + incr);
+  prio += incr;
+  if (prio < PRIO_MIN)
+    prio = PRIO_MIN;
+  else if (prio >= PRIO_MAX)
+    prio = PRIO_MAX - 1;
+  result = setpriority (PRIO_PROCESS, 0, prio);
   if (result != -1)
     return getpriority (PRIO_PROCESS, 0);
   else
--- glibc-2.3.1-net/sysdeps/unix/sysv/linux/paths.h	18 Nov 2000 00:03:05 -0000	1.1.1.2
+++ glibc-2.3.1-redhat/sysdeps/unix/sysv/linux/paths.h	18 Nov 2000 00:20:14 -0000	1.4
@@ -61,7 +61,7 @@
 #define	_PATH_TTY	"/dev/tty"
 #define	_PATH_UNIX	"/boot/vmlinux"
 #define _PATH_UTMP	"/var/run/utmp"
-#define	_PATH_VI	"/usr/bin/vi"
+#define	_PATH_VI	"/bin/vi"
 #define _PATH_WTMP	"/var/log/wtmp"
 
 /* Provide trailing slash, since mostly used for building pathnames. */
