about summary refs log tree commit diff
path: root/fedora
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-12-22 20:10:10 +0000
committerUlrich Drepper <drepper@redhat.com>2004-12-22 20:10:10 +0000
commita334319f6530564d22e775935d9c91663623a1b4 (patch)
treeb5877475619e4c938e98757d518bb1e9cbead751 /fedora
parent0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (diff)
downloadglibc-a334319f6530564d22e775935d9c91663623a1b4.tar.gz
glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.xz
glibc-a334319f6530564d22e775935d9c91663623a1b4.zip
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
Diffstat (limited to 'fedora')
-rw-r--r--fedora/.cvsignore5
-rw-r--r--fedora/Makefile193
-rw-r--r--fedora/branch.mk7
-rw-r--r--fedora/build-locale-archive.c162
-rw-r--r--fedora/glibc-ia64-lib64.patch92
-rw-r--r--fedora/glibc-rh234946.patch32
-rw-r--r--fedora/glibc-x86_64-memcpy.patch1439
-rw-r--r--fedora/glibc.spec.in4512
-rw-r--r--fedora/glibc_post_upgrade.c340
-rw-r--r--fedora/hardlink.c344
-rw-r--r--fedora/libc-lock.h340
-rw-r--r--fedora/makepatch.awk58
-rw-r--r--fedora/nsswitch.conf63
-rw-r--r--fedora/power6emul.c242
-rw-r--r--fedora/tzdata-update.c589
15 files changed, 0 insertions, 8418 deletions
diff --git a/fedora/.cvsignore b/fedora/.cvsignore
deleted file mode 100644
index 11718c84e2..0000000000
--- a/fedora/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-glibc-*.tar.bz2
-glibc-*.src.rpm
-glibc-*fedora.patch
-glibc.spec
-update.log
diff --git a/fedora/Makefile b/fedora/Makefile
deleted file mode 100644
index 73a6fd2287..0000000000
--- a/fedora/Makefile
+++ /dev/null
@@ -1,193 +0,0 @@
-# Makefile for maintaining glibc fedora-branch and creating Fedora source RPMs.
-
-glibc.spec: # The default target.
-
-tag-prefix := fedora-
-
-.PHONY: update commit-merge tag archive finish_archive srpm rpm
-
-snapshot-date-fmt := +'%Y-%m-%d %H:%M %Z'
-snapshot-name-fmt := +'%Y%m%dT%H%M'
-
-include branch.mk
-
-
-on-branch = $(filter-out HEAD,$(glibc-base))
-
-snapshot-date := $($(glibc-branch)-sync-date)
-snapshot-name := $(shell date -u -d '$(snapshot-date)' $(snapshot-name-fmt))
-
-tag-name := glibc$(patsubst glibc-%-branch,-%,\
-			    $(filter-out HEAD,$(glibc-base)))
-tar-name := $(subst _,.,$(tag-name))
-select-snapshot = -r '$($(glibc-branch)-sync-tag)'
-snapshot-id = $($(glibc-branch)-sync-tag)
-
-branch-name := $(patsubst %-$(patsubst glibc-%,%,$(tag-name)),%,\
-			  $(glibc-branch))
-
-branch.mk-vars = glibc-branch glibc-base DIST_BRANCH COLLECTION \
-		 releases-url
-
-ifeq (,$(upstream-tag))
-ifneq (,$(upstream))
-upstream-tag := glibc-$(subst .,_,$(upstream))
-endif
-endif
-
-update:
-	now=`date -u $(snapshot-date-fmt)`; \
-	$(if $(upstream-tag),new='$(upstream-tag)';,\
-	name=`date -u -d "$$now" $(snapshot-name-fmt)`; \
-	new="$(tag-prefix)$(tag-name)-$$name"; \
-	cvs -Q rtag $(if $(on-branch),-r $(glibc-base),-D "$$now") $$new libc;\
-	)\
-	(echo '# This file is updated automatically by Makefile.'; \
-	 $(foreach var,$(branch.mk-vars) $(if $(upstream-tag),upstream),\
-		   $(if $($(var)),echo '$(var) := $($(var))';)) \
-	 echo "$(glibc-branch)-sync-date := $$now"; \
-	 echo "$(glibc-branch)-sync-tag := $$new"; \
-	) > branch.mk; \
-	cd ..; (set -x; cvs -q update -d -P \
-			    -j'$($(glibc-branch)-sync-tag)' -j"$$new") \
-		   2>&1 | tee fedora/update.log
-
-.PHONY: snapshot-time
-snapshot-time: branch.mk
-	date -d '$(snapshot-date)'
-
-commit-merge:
-	cd ..; cvs -Q commit -m"Updated to $(snapshot-id)"
-
-glibc.spec: glibc.spec.in ../version.h branch.mk
-	(echo '%define glibcdate $(snapshot-name)'; \
-	 echo '%define glibcname $(tar-name)'; \
-	 echo '%define glibcsrcdir $(srcdir-name)'; \
-	 echo '%define glibc_release_tarballs $(if $(upstream),1,0)'; \
-	 sed -n '/VERSION/s/^.*"\([^"]*\)"$$/%define glibcversion \1/p' \
-	     ../version.h; \
-	 cat $<) > $@.new
-	mv -f $@.new $@
-
-ifeq (,$(wildcard glibc.spec))
-Makefile: glibc.spec ;
-else
-
-spec-nvr := $(shell rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' \
-			--specfile glibc.spec | sed 1q)
-spec-tag = $(subst .,_,$(spec-nvr))
-
-ifeq ($(tagged),no)
-select-release = -r $(glibc-branch)-branch
-else
-select-release = -r $(tag-prefix)$(spec-tag)
-endif
-
-tag: glibc.spec
-	cd ..; cvs -Q tag -c $(tag-prefix)$(spec-tag)
-
-force-tag: glibc.spec
-	cd ..; cvs -Q tag -F -c $(tag-prefix)$(spec-tag)
-
-ifeq (,$(upstream))
-srcdir-name = $(tar-name)-$(snapshot-name)
-else
-tar-name = glibc-$(upstream)
-srcdir-name = $(tar-name)
-
-ifneq ($($(glibc-branch)-sync-tag),$(upstream-tag))
-define upstream-tag-check
-	@echo Need to run make update upstream=$(upstream); exit 1
-endef
-endif
-endif
-
-# Note this rule assumes that your working directory (..) is up to date.
-$(tar-name)-$(branch-name).patch: makepatch.awk glibc.spec \
-				  ../ChangeLog ../*/ChangeLog
-	$(upstream-tag-check)
-# Use -kk to suppress patches for $ Id $ differences between branches.
-	(cd ..; cvs -q diff -kk -upN $(select-snapshot) $(select-release)) | \
-	awk -v OLDVER=$(srcdir-name) \
-	    -v NEWVER=$(srcdir-name)-$(branch-name) \
-	    -f $< > patch.tmp
-	mv -f patch.tmp $@
-
-# makepatch.awk omits these files from the patch; we put them in a tar file.
-outside-patch = fedora c_stubs rtkaio powerpc-cpu \
-		localedata/charmaps/GB18030 iconvdata/gb18030.c
-
-$(tar-name)-$(branch-name)-$(snapshot-name).tar.bz2: Makefile branch.mk \
-						     ../ChangeLog \
-						     ../*/ChangeLog
-	$(upstream-tag-check)
-	@rm -rf libc
-	cvs -Q export $(select-release) $(addprefix libc/,$(outside-patch))
-	tar cf - -C libc $(outside-patch) | bzip2 -9 > $@.new
-	rm -rf libc
-	mv -f $@.new $@
-
-glibc-tarballs = $(srcdir-name).tar.bz2
-ifeq (,$(upstream))
-$(srcdir-name).tar.bz2: Makefile branch.mk
-	@rm -rf $(srcdir-name)
-	cvs -Q export -d $(srcdir-name) $(select-snapshot) libc
-	tar cf - $(srcdir-name) | bzip2 -9 > $@.new
-	rm -rf $(srcdir-name)
-	mv -f $@.new $@
-else
-glibc-tarballs += $(srcdir-name:glibc-%=glibc-linuxthreads-%).tar.bz2 \
-		  $(srcdir-name:glibc-%=glibc-libidn-%).tar.bz2
-
-$(glibc-tarballs):
-	curl -O $(releases-url)/$@
-endif
-
-archives = $(glibc-tarballs) \
-	   $(tar-name)-$(branch-name)-$(snapshot-name).tar.bz2 \
-	   $(tar-name)-$(branch-name).patch
-
-finish_archive: $(archives)
-
-archive: glibc.spec
-	$(MAKE) tag finish_archive
-
-rpm srpm: $(spec-nvr).src.rpm
-$(spec-nvr).src.rpm: glibc.spec $(archives)
-	rpmbuild --define "_sourcedir `pwd`" \
-		 --define "_specdir `pwd`" \
-		 --define "_srcrpmdir `pwd`" \
-		 --nodeps -bs $<
-
-###
-# These rules are for dealing with the Fedora package repository
-# and the Red Hat internal build system.
-#
-# To use this, put in ~/.cvsdistrc at least a line:
-#	DIST_COMMON = /some/checkout/of/dist/common
-# We will find cvs-import.sh there and use its CVS/Root for where to commit.
-
-.PHONY: dist-import
-
--include ~/.cvsdistrc
-
-ifdef DIST_COMMON
-DIST_BRANCH ?= devel
-COLLECTION ?= dist-fc4
-BHC_FLAGS ?= -n
-
-bhc-baseurl := cvs://cvs.devel.redhat.com/cvs/dist?rpms
-bhc-url = $(bhc-baseurl)/glibc/$(DIST_BRANCH)\#$(spec-tag)
-
-dist-import: $(spec-nvr).src.rpm
-	$(DIST_COMMON)/cvs-import.sh -b $(DIST_BRANCH) $<
-	rpm -qp $< --queryformat '[%{FILEMD5S}  %{FILENAMES}\n]' > $@.new
-	mv -f $@.new $@
-
-dist-build: dist-import
-	bhc $(BHC_FLAGS) $(COLLECTION) '$(bhc-url)'
-
-endif
-###
-
-endif
diff --git a/fedora/branch.mk b/fedora/branch.mk
deleted file mode 100644
index 7bcc3af1ba..0000000000
--- a/fedora/branch.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file is updated automatically by Makefile.
-glibc-branch := fedora-2_5
-glibc-base := glibc-2_5-branch
-DIST_BRANCH := FC-6
-COLLECTION := dist-fc6
-fedora-2_5-sync-date := 2007-07-12 17:01 UTC
-fedora-2_5-sync-tag := fedora-glibc-2_5-20070712T1701
diff --git a/fedora/build-locale-archive.c b/fedora/build-locale-archive.c
deleted file mode 100644
index a35171736e..0000000000
--- a/fedora/build-locale-archive.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#define _GNU_SOURCE
-#include <stdlib.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <errno.h>
-#include <string.h>
-#include <stdbool.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include "../locale/hashval.h"
-
-const char *alias_file = DATADIR "/locale/locale.alias";
-const char *locar_file = PREFIX "/lib/locale/locale-archive";
-const char *loc_path = PREFIX "/lib/locale/";
-int be_quiet = 1;
-int verbose = 0;
-int max_locarchive_open_retry = 10;
-const char *output_prefix;
-
-static int
-is_prime (unsigned long candidate)
-{
-  /* No even number and none less than 10 will be passed here.  */
-  unsigned long int divn = 3;
-  unsigned long int sq = divn * divn;
-
-  while (sq < candidate && candidate % divn != 0)
-    {
-      ++divn;
-      sq += 4 * divn;
-      ++divn;
-    }
-
-  return candidate % divn != 0;
-}
-
-unsigned long
-next_prime (unsigned long seed)
-{
-  /* Make it definitely odd.  */
-  seed |= 1;
-
-  while (!is_prime (seed))
-    seed += 2;
-
-  return seed;
-}
-
-/* xmalloc is only used by show_archive_content.  */
-void *
-xmalloc (size_t size)
-{
-  exit (255);
-}
-
-void
-error (int status, int errnum, const char *message, ...)
-{
-  va_list args;
-
-  va_start (args, message);
-  fflush (stdout);
-  fprintf (stderr, "%s: ", program_invocation_name);
-  vfprintf (stderr, message, args);
-  va_end (args);
-  if (errnum)
-    fprintf (stderr, ": %s", strerror (errnum));
-  putc ('\n', stderr);
-  fflush (stderr);
-  if (status)
-    exit (errnum == EROFS ? 0 : status);
-}
-
-extern int add_locales_to_archive (size_t nlist, char *list[], bool replace);
-
-int main ()
-{
-  char path[4096];
-  DIR *dirp;
-  struct dirent64 *d;
-  struct stat64 st;
-  char *list[16384], *primary;
-  unsigned int cnt = 0;
-
-  unlink (locar_file);
-  dirp = opendir (loc_path);
-  if (dirp == NULL)
-    error (EXIT_FAILURE, errno, "cannot open directory \"%s\"", loc_path);
-
-  primary = getenv ("LC_ALL");
-  if (primary == NULL)
-    primary = getenv ("LANG");
-  if (primary != NULL)
-    {
-      if (strncmp (primary, "ja", 2) != 0
-	  && strncmp (primary, "ko", 2) != 0
-	  && strncmp (primary, "zh", 2) != 0)
-	{
-	  char *ptr = malloc (strlen (primary) + strlen (".utf8") + 1), *p, *q;
-
-	  if (ptr)
-	    {
-	      p = ptr;
-	      q = primary;
-	      while (*q && *q != '.' && *q != '@')
-		*p++ = *q++;
-	      if (*q == '.')
-		while (*q && *q != '@')
-		  q++;
-	      p = stpcpy (p, ".utf8");
-	      strcpy (p, q);
-	      primary = ptr;
-	    }
-	  else
-	    primary = ".....";
-	}
-      strcpy (stpcpy (path, loc_path), primary);
-      if (stat64 (path, &st) >= 0 && S_ISDIR (st.st_mode))
-	{
-          list[cnt] = strdup (path);
-          if (list[cnt] == NULL)
-	    error (0, errno, "cannot add file to list \"%s\"", path);
-	  else
-	    cnt++;
-	}
-      if (cnt == 0)
-	primary = NULL;
-    }
-
-  while ((d = readdir64 (dirp)) != NULL)
-    {
-      if (strcmp (d->d_name, ".") == 0 || strcmp (d->d_name, "..") == 0)
-	continue;
-
-      if (primary && strcmp (d->d_name, primary) == 0)
-	continue;
-
-      strcpy (stpcpy (path, loc_path), d->d_name);
-      if (stat64 (path, &st) < 0)
-	{
-	  error (0, errno, "cannot stat \"%s\"", path);
-	  continue;
-	}
-      if (! S_ISDIR (st.st_mode))
-	continue;
-      if (cnt == 16384)
-	error (EXIT_FAILURE, 0, "too many directories in \"%s\"", loc_path);
-      list[cnt] = strdup (path);
-      if (list[cnt] == NULL)
-	{
-	  error (0, errno, "cannot add file to list \"%s\"", path);
-	  continue;
-	}
-      cnt++;
-    }
-  closedir (dirp);
-  add_locales_to_archive (cnt, list, 0);
-  char *argv[] = { "/usr/sbin/tzdata-update", NULL };
-  execve (argv[0], (char *const *)argv, (char *const *)&argv[1]);
-  exit (0);
-}
diff --git a/fedora/glibc-ia64-lib64.patch b/fedora/glibc-ia64-lib64.patch
deleted file mode 100644
index 05fd922969..0000000000
--- a/fedora/glibc-ia64-lib64.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-2004-05-14  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/configure.in: Use */lib64 even for ia64.
-	* sysdeps/unix/sysv/linux/configure: Rebuilt.
-	* sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
-	* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Change /lib64/ld*
-	into /lib/ld*.  Add LD_LIBRARY_VERSION.
-	* sysdeps/unix/sysv/linux/ia64/ldconfig.h
-	(SYSDEP_KNOWN_INTERPRETER_NAMES): Add /lib64/ld-linux-ia64.so.2.
-	* sysdeps/unix/sysv/linux/ia64/dl-cache.h: Include sparc-linux
-	dl-cache.h instead of generic dl-cache.h.
-
---- libc/sysdeps/unix/sysv/linux/configure.jj	2003-03-23 03:10:04.000000000 +0100
-+++ libc/sysdeps/unix/sysv/linux/configure	2004-05-14 15:54:35.669802684 +0200
-@@ -225,7 +225,7 @@ case "$prefix" in
-   # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
-   case $machine in
-   sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
--  mips/mips64/n64/* )
-+  mips/mips64/n64/* | ia64 )
-     libc_cv_slibdir="/lib64"
-     if test "$libdir" = '${exec_prefix}/lib'; then
-       libdir='${exec_prefix}/lib64';
---- libc/sysdeps/unix/sysv/linux/configure.in.jj	2003-03-23 03:10:04.000000000 +0100
-+++ libc/sysdeps/unix/sysv/linux/configure.in	2004-05-14 15:53:44.355998785 +0200
-@@ -158,7 +158,7 @@ case "$prefix" in
-   # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
-   case $machine in
-   sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
--  mips/mips64/n64/* )
-+  mips/mips64/n64/* | ia64 )
-     libc_cv_slibdir="/lib64"
-     if test "$libdir" = '${exec_prefix}/lib'; then
-       libdir='${exec_prefix}/lib64';
---- libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c.jj	2004-05-14 15:42:09.307560515 +0200
-+++ libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c	2003-09-30 00:23:24.000000000 +0200
-@@ -0,0 +1,5 @@
-+#ifdef IS_IN_ldconfig
-+#include <sysdeps/i386/dl-procinfo.c>
-+#else
-+#include <sysdeps/generic/dl-procinfo.c>
-+#endif
---- libc/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed.jj	2002-01-17 07:49:28.000000000 +0100
-+++ libc/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed	2004-05-14 16:21:03.041325040 +0200
-@@ -1 +1,4 @@
--s_^\(RTLDLIST=\)\([^ 	]*\)-ia64\(\.so\.[0-9.]*\)[ 	]*$_\1"\2-ia64\3 \2\3"_
-+/LD_TRACE_LOADED_OBJECTS=1/a\
-+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
-+s_^\(RTLDLIST=\)/lib64/ld\([^ 	]*\)-ia64\(\.so\.[0-9.]*\)[ 	]*$_\1"/lib/ld\2-ia64\3 /lib/ld\2\3"_
-+s_^\(RTLDLIST=\)\([^"][^ 	]*\)-ia64\(\.so\.[0-9.]*\)[ 	]*$_\1"\2-ia64\3 \2\3"_
---- libc/sysdeps/unix/sysv/linux/ia64/ldconfig.h.jj	2001-07-06 06:56:17.000000000 +0200
-+++ libc/sysdeps/unix/sysv/linux/ia64/ldconfig.h	2004-05-14 15:45:40.103783087 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2001 Free Software Foundation, Inc.
-+/* Copyright (C) 2001, 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
-@@ -19,7 +19,8 @@
- #include <sysdeps/generic/ldconfig.h>
- 
- #define SYSDEP_KNOWN_INTERPRETER_NAMES \
--  { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 },
-+  { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, \
-+  { "/lib64/ld-linux-ia64.so.2", FLAG_ELF_LIBC6 },
- #define SYSDEP_KNOWN_LIBRARY_NAMES \
-   { "libc.so.6", FLAG_ELF_LIBC6 },	\
-   { "libm.so.6", FLAG_ELF_LIBC6 },
---- libc/sysdeps/unix/sysv/linux/ia64/dl-cache.h.jj	2001-07-06 06:56:17.000000000 +0200
-+++ libc/sysdeps/unix/sysv/linux/ia64/dl-cache.h	2004-05-14 15:41:11.658891907 +0200
-@@ -1,5 +1,5 @@
- /* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
--   Copyright (C) 2000 Free Software Foundation, Inc.
-+   Copyright (C) 2000, 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
-@@ -22,4 +22,4 @@
- #define _dl_cache_check_flags(flags) \
-   ((flags) == _DL_CACHE_DEFAULT_ID)
- 
--#include_next <dl-cache.h>
-+#include <sysdeps/unix/sysv/linux/sparc/dl-cache.h>
---- libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h.jj	2004-05-14 15:42:13.018895395 +0200
-+++ libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h	2003-07-23 00:06:23.000000000 +0200
-@@ -0,0 +1,5 @@
-+#ifdef IS_IN_ldconfig
-+#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
-+#else
-+#include <sysdeps/generic/dl-procinfo.h>
-+#endif
diff --git a/fedora/glibc-rh234946.patch b/fedora/glibc-rh234946.patch
deleted file mode 100644
index add3f8023f..0000000000
--- a/fedora/glibc-rh234946.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-2006-12-25  Sripathi Kodi  <sripathik@in.ibm.com>
-
-	* include/link.h: Declare new flag l_fini_called in struct link_map.
-	* elf/dl-fini.c: In _dl_fini, set l_fini_called to 1 instead of 
-	l_init_called to 0.
-
---- libc/elf/dl-fini.c	2006-12-22 01:54:22.000000000 -0600
-+++ libc/elf/dl-fini.c	2006-12-24 22:51:52.000000000 -0600
-@@ -215,10 +215,10 @@ _dl_fini (void)
- 	{
- 	  l = maps[i];
- 
--	  if (l->l_init_called)
-+	  if (l->l_init_called && !l->l_fini_called)
- 	    {
- 	      /* Make sure nothing happens if we are called twice.  */
--	      l->l_init_called = 0;
-+	      l->l_fini_called = 1;
- 
- 	      /* Is there a destructor function?  */
- 	      if (l->l_info[DT_FINI_ARRAY] != NULL
---- libc/include/link.h	2006-12-22 01:54:22.000000000 -0600
-+++ libc/include/link.h	2006-12-24 22:53:29.000000000 -0600
-@@ -185,6 +185,8 @@ struct link_map
-     unsigned int l_contiguous:1; /* Nonzero if inter-segment holes are
- 				    mprotected or if no holes are present at
- 				    all.  */
-+    unsigned int l_fini_called:1; /* Nonzero if _dl_fini has processed
-+				     this object */
- 
-     /* Array with version names.  */
-     unsigned int l_nversions;
diff --git a/fedora/glibc-x86_64-memcpy.patch b/fedora/glibc-x86_64-memcpy.patch
deleted file mode 100644
index 3888134df8..0000000000
--- a/fedora/glibc-x86_64-memcpy.patch
+++ /dev/null
@@ -1,1439 +0,0 @@
-2007-05-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Pass correct value
-	as second parameter to handle_intel.
-
-	* sysdeps/unix/sysv/linux/x86_64/sysconf.c: Move cache information
-	handling to ...
-	* sysdeps/x86_64/cacheinfo.c: ... here.  New file.
-	* sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add
-	cacheinfo.
-	* sysdeps/x86_64/memcpy.S: Complete rewrite.
-	* sysdeps/x86_64/mempcpy.S: Adjust appropriately.
-	Patch by Evandro Menezes <evandro.menezes@amd.com>.
-
---- libc/sysdeps/x86_64/Makefile	16 Aug 2004 06:46:14 -0000	1.4
-+++ libc/sysdeps/x86_64/Makefile	21 May 2007 19:20:45 -0000	1.5
-@@ -9,3 +9,7 @@ endif
- ifeq ($(subdir),gmon)
- sysdep_routines += _mcount
- endif
-+
-+ifeq ($(subdir),string)
-+sysdep_routines += cacheinfo
-+endif
---- libc/sysdeps/x86_64/cacheinfo.c	1 Jan 1970 00:00:00 -0000
-+++ libc/sysdeps/x86_64/cacheinfo.c	21 May 2007 22:37:45 -0000	1.2
-@@ -0,0 +1,451 @@
-+/* x86_64 cache info.
-+   Copyright (C) 2003, 2004, 2006, 2007 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 <assert.h>
-+#include <stdbool.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+
-+static const struct intel_02_cache_info
-+{
-+  unsigned int idx;
-+  int name;
-+  long int size;
-+  long int assoc;
-+  long int linesize;
-+} intel_02_known [] =
-+  {
-+    { 0x06, _SC_LEVEL1_ICACHE_SIZE,    8192,  4, 32 },
-+    { 0x08, _SC_LEVEL1_ICACHE_SIZE,   16384,  4, 32 },
-+    { 0x0a, _SC_LEVEL1_DCACHE_SIZE,    8192,  2, 32 },
-+    { 0x0c, _SC_LEVEL1_DCACHE_SIZE,   16384,  4, 32 },
-+    { 0x22, _SC_LEVEL3_CACHE_SIZE,   524288,  4, 64 },
-+    { 0x23, _SC_LEVEL3_CACHE_SIZE,  1048576,  8, 64 },
-+    { 0x25, _SC_LEVEL3_CACHE_SIZE,  2097152,  8, 64 },
-+    { 0x29, _SC_LEVEL3_CACHE_SIZE,  4194304,  8, 64 },
-+    { 0x2c, _SC_LEVEL1_DCACHE_SIZE,   32768,  8, 64 },
-+    { 0x30, _SC_LEVEL1_ICACHE_SIZE,   32768,  8, 64 },
-+    { 0x39, _SC_LEVEL2_CACHE_SIZE,   131072,  4, 64 },
-+    { 0x3a, _SC_LEVEL2_CACHE_SIZE,   196608,  6, 64 },
-+    { 0x3b, _SC_LEVEL2_CACHE_SIZE,   131072,  2, 64 },
-+    { 0x3c, _SC_LEVEL2_CACHE_SIZE,   262144,  4, 64 },
-+    { 0x3d, _SC_LEVEL2_CACHE_SIZE,   393216,  6, 64 },
-+    { 0x3e, _SC_LEVEL2_CACHE_SIZE,   524288,  4, 64 },
-+    { 0x41, _SC_LEVEL2_CACHE_SIZE,   131072,  4, 32 },
-+    { 0x42, _SC_LEVEL2_CACHE_SIZE,   262144,  4, 32 },
-+    { 0x43, _SC_LEVEL2_CACHE_SIZE,   524288,  4, 32 },
-+    { 0x44, _SC_LEVEL2_CACHE_SIZE,  1048576,  4, 32 },
-+    { 0x45, _SC_LEVEL2_CACHE_SIZE,  2097152,  4, 32 },
-+    { 0x46, _SC_LEVEL3_CACHE_SIZE,  4194304,  4, 64 },
-+    { 0x47, _SC_LEVEL3_CACHE_SIZE,  8388608,  8, 64 },
-+    { 0x49, _SC_LEVEL2_CACHE_SIZE,  4194304, 16, 64 },
-+    { 0x4a, _SC_LEVEL3_CACHE_SIZE,  6291456, 12, 64 },
-+    { 0x4b, _SC_LEVEL3_CACHE_SIZE,  8388608, 16, 64 },
-+    { 0x4c, _SC_LEVEL3_CACHE_SIZE, 12582912, 12, 64 },
-+    { 0x4d, _SC_LEVEL3_CACHE_SIZE, 16777216, 16, 64 },
-+    { 0x60, _SC_LEVEL1_DCACHE_SIZE,   16384,  8, 64 },
-+    { 0x66, _SC_LEVEL1_DCACHE_SIZE,    8192,  4, 64 },
-+    { 0x67, _SC_LEVEL1_DCACHE_SIZE,   16384,  4, 64 },
-+    { 0x68, _SC_LEVEL1_DCACHE_SIZE,   32768,  4, 64 },
-+    { 0x78, _SC_LEVEL2_CACHE_SIZE,  1048576,  8, 64 },
-+    { 0x79, _SC_LEVEL2_CACHE_SIZE,   131072,  8, 64 },
-+    { 0x7a, _SC_LEVEL2_CACHE_SIZE,   262144,  8, 64 },
-+    { 0x7b, _SC_LEVEL2_CACHE_SIZE,   524288,  8, 64 },
-+    { 0x7c, _SC_LEVEL2_CACHE_SIZE,  1048576,  8, 64 },
-+    { 0x7d, _SC_LEVEL2_CACHE_SIZE,  2097152,  8, 64 },
-+    { 0x7f, _SC_LEVEL2_CACHE_SIZE,   524288,  2, 64 },
-+    { 0x82, _SC_LEVEL2_CACHE_SIZE,   262144,  8, 32 },
-+    { 0x83, _SC_LEVEL2_CACHE_SIZE,   524288,  8, 32 },
-+    { 0x84, _SC_LEVEL2_CACHE_SIZE,  1048576,  8, 32 },
-+    { 0x85, _SC_LEVEL2_CACHE_SIZE,  2097152,  8, 32 },
-+    { 0x86, _SC_LEVEL2_CACHE_SIZE,   524288,  4, 64 },
-+    { 0x87, _SC_LEVEL2_CACHE_SIZE,  1048576,  8, 64 },
-+  };
-+
-+#define nintel_02_known (sizeof (intel_02_known) / sizeof (intel_02_known [0]))
-+
-+static int
-+intel_02_known_compare (const void *p1, const void *p2)
-+{
-+  const struct intel_02_cache_info *i1;
-+  const struct intel_02_cache_info *i2;
-+
-+  i1 = (const struct intel_02_cache_info *) p1;
-+  i2 = (const struct intel_02_cache_info *) p2;
-+
-+  if (i1->idx == i2->idx)
-+    return 0;
-+
-+  return i1->idx < i2->idx ? -1 : 1;
-+}
-+
-+
-+static long int
-+__attribute__ ((noinline))
-+intel_check_word (int name, unsigned int value, bool *has_level_2,
-+		  bool *no_level_2_or_3)
-+{
-+  if ((value & 0x80000000) != 0)
-+    /* The register value is reserved.  */
-+    return 0;
-+
-+  /* Fold the name.  The _SC_ constants are always in the order SIZE,
-+     ASSOC, LINESIZE.  */
-+  int folded_name = (_SC_LEVEL1_ICACHE_SIZE
-+		     + ((name - _SC_LEVEL1_ICACHE_SIZE) / 3) * 3);
-+
-+  while (value != 0)
-+    {
-+      unsigned int byte = value & 0xff;
-+
-+      if (byte == 0x40)
-+	{
-+	  *no_level_2_or_3 = true;
-+
-+	  if (folded_name == _SC_LEVEL3_CACHE_SIZE)
-+	    /* No need to look further.  */
-+	    break;
-+	}
-+      else
-+	{
-+	  if (byte == 0x49 && folded_name == _SC_LEVEL3_CACHE_SIZE)
-+	    {
-+	      /* Intel reused this value.  For family 15, model 6 it
-+		 specifies the 3rd level cache.  Otherwise the 2nd
-+		 level cache.  */
-+	      unsigned int eax;
-+	      unsigned int ebx;
-+	      unsigned int ecx;
-+	      unsigned int edx;
-+	      asm volatile ("cpuid"
-+			    : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+			    : "0" (1));
-+
-+	      unsigned int family = ((eax >> 20) & 0xff) + ((eax >> 8) & 0xf);
-+	      unsigned int model = ((((eax >>16) & 0xf) << 4)
-+				    + ((eax >> 4) & 0xf));
-+	      if (family == 15 && model == 6)
-+		{
-+		  /* The level 3 cache is encoded for this model like
-+		     the level 2 cache is for other models.  Pretend
-+		     the caller asked for the level 2 cache.  */
-+		  name = (_SC_LEVEL2_CACHE_SIZE
-+			  + (name - _SC_LEVEL3_CACHE_SIZE));
-+		  folded_name = _SC_LEVEL3_CACHE_SIZE;
-+		}
-+	    }
-+
-+	  struct intel_02_cache_info *found;
-+	  struct intel_02_cache_info search;
-+
-+	  search.idx = byte;
-+	  found = bsearch (&search, intel_02_known, nintel_02_known,
-+			   sizeof (intel_02_known[0]), intel_02_known_compare);
-+	  if (found != NULL)
-+	    {
-+	      if (found->name == folded_name)
-+		{
-+		  unsigned int offset = name - folded_name;
-+
-+		  if (offset == 0)
-+		    /* Cache size.  */
-+		    return found->size;
-+		  if (offset == 1)
-+		    return found->assoc;
-+
-+		  assert (offset == 2);
-+		  return found->linesize;
-+		}
-+
-+	      if (found->name == _SC_LEVEL2_CACHE_SIZE)
-+		*has_level_2 = true;
-+	    }
-+	}
-+
-+      /* Next byte for the next round.  */
-+      value >>= 8;
-+    }
-+
-+  /* Nothing found.  */
-+  return 0;
-+}
-+
-+
-+static long int __attribute__ ((noinline))
-+handle_intel (int name, unsigned int maxidx)
-+{
-+  assert (maxidx >= 2);
-+
-+  /* OK, we can use the CPUID instruction to get all info about the
-+     caches.  */
-+  unsigned int cnt = 0;
-+  unsigned int max = 1;
-+  long int result = 0;
-+  bool no_level_2_or_3 = false;
-+  bool has_level_2 = false;
-+
-+  while (cnt++ < max)
-+    {
-+      unsigned int eax;
-+      unsigned int ebx;
-+      unsigned int ecx;
-+      unsigned int edx;
-+      asm volatile ("cpuid"
-+		    : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		    : "0" (2));
-+
-+      /* The low byte of EAX in the first round contain the number of
-+	 rounds we have to make.  At least one, the one we are already
-+	 doing.  */
-+      if (cnt == 1)
-+	{
-+	  max = eax & 0xff;
-+	  eax &= 0xffffff00;
-+	}
-+
-+      /* Process the individual registers' value.  */
-+      result = intel_check_word (name, eax, &has_level_2, &no_level_2_or_3);
-+      if (result != 0)
-+	return result;
-+
-+      result = intel_check_word (name, ebx, &has_level_2, &no_level_2_or_3);
-+      if (result != 0)
-+	return result;
-+
-+      result = intel_check_word (name, ecx, &has_level_2, &no_level_2_or_3);
-+      if (result != 0)
-+	return result;
-+
-+      result = intel_check_word (name, edx, &has_level_2, &no_level_2_or_3);
-+      if (result != 0)
-+	return result;
-+    }
-+
-+  if (name >= _SC_LEVEL2_CACHE_SIZE && name <= _SC_LEVEL3_CACHE_LINESIZE
-+      && no_level_2_or_3)
-+    return -1;
-+
-+  return 0;
-+}
-+
-+
-+static long int __attribute__ ((noinline))
-+handle_amd (int name)
-+{
-+  unsigned int eax;
-+  unsigned int ebx;
-+  unsigned int ecx;
-+  unsigned int edx;
-+  asm volatile ("cpuid"
-+		: "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		: "0" (0x80000000));
-+
-+  if (name >= _SC_LEVEL3_CACHE_SIZE)
-+    return 0;
-+
-+  unsigned int fn = 0x80000005 + (name >= _SC_LEVEL2_CACHE_SIZE);
-+  if (eax < fn)
-+    return 0;
-+
-+  asm volatile ("cpuid"
-+		: "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		: "0" (fn));
-+
-+  if (name < _SC_LEVEL1_DCACHE_SIZE)
-+    {
-+      name += _SC_LEVEL1_DCACHE_SIZE - _SC_LEVEL1_ICACHE_SIZE;
-+      ecx = edx;
-+    }
-+
-+  switch (name)
-+    {
-+    case _SC_LEVEL1_DCACHE_SIZE:
-+      return (ecx >> 14) & 0x3fc00;
-+    case _SC_LEVEL1_DCACHE_ASSOC:
-+      ecx >>= 16;
-+      if ((ecx & 0xff) == 0xff)
-+	/* Fully associative.  */
-+	return (ecx << 2) & 0x3fc00;
-+      return ecx & 0xff;
-+    case _SC_LEVEL1_DCACHE_LINESIZE:
-+      return ecx & 0xff;
-+    case _SC_LEVEL2_CACHE_SIZE:
-+      return (ecx & 0xf000) == 0 ? 0 : (ecx >> 6) & 0x3fffc00;
-+    case _SC_LEVEL2_CACHE_ASSOC:
-+      ecx >>= 12;
-+      switch (ecx & 0xf)
-+        {
-+        case 0:
-+        case 1:
-+        case 2:
-+        case 4:
-+	  return ecx & 0xf;
-+	case 6:
-+	  return 8;
-+	case 8:
-+	  return 16;
-+	case 0xf:
-+	  return (ecx << 6) & 0x3fffc00;
-+	default:
-+	  return 0;
-+        }
-+    case _SC_LEVEL2_CACHE_LINESIZE:
-+      return (ecx & 0xf000) == 0 ? 0 : ecx & 0xff;
-+    default:
-+      assert (! "cannot happen");
-+    }
-+  return -1;
-+}
-+
-+
-+/* Get the value of the system variable NAME.  */
-+long int
-+attribute_hidden
-+__cache_sysconf (int name)
-+{
-+  /* Find out what brand of processor.  */
-+  unsigned int eax;
-+  unsigned int ebx;
-+  unsigned int ecx;
-+  unsigned int edx;
-+  asm volatile ("cpuid"
-+		: "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		: "0" (0));
-+
-+  /* This spells out "GenuineIntel".  */
-+  if (ebx == 0x756e6547 && ecx == 0x6c65746e && edx == 0x49656e69)
-+    return handle_intel (name, eax);
-+
-+  /* This spells out "AuthenticAMD".  */
-+  if (ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
-+    return handle_amd (name);
-+
-+  // XXX Fill in more vendors.
-+
-+  /* CPU not known, we have no information.  */
-+  return 0;
-+}
-+
-+
-+/* Half the core cache size for use in memory and string routines, typically
-+   L1 size. */
-+long int __x86_64_core_cache_size_half attribute_hidden = 32 * 1024 / 2;
-+/* Shared cache size for use in memory and string routines, typically
-+   L2 or L3 size. */
-+long int __x86_64_shared_cache_size_half attribute_hidden = 1024 * 1024 / 2;
-+/* PREFETCHW support flag for use in memory and string routines. */
-+int __x86_64_prefetchw attribute_hidden;
-+
-+
-+static void
-+__attribute__((constructor))
-+init_cacheinfo (void)
-+{
-+  /* Find out what brand of processor.  */
-+  unsigned int eax;
-+  unsigned int ebx;
-+  unsigned int ecx;
-+  unsigned int edx;
-+  int max_cpuid;
-+  int max_cpuid_ex;
-+  long int core = -1;
-+  long int shared = -1;
-+  unsigned int level;
-+  unsigned int threads = 0;
-+
-+  asm volatile ("cpuid"
-+		: "=a" (max_cpuid), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		: "0" (0));
-+
-+  /* This spells out "GenuineIntel".  */
-+  if (ebx == 0x756e6547 && ecx == 0x6c65746e && edx == 0x49656e69)
-+    {
-+      core = handle_intel (_SC_LEVEL1_DCACHE_SIZE, max_cpuid);
-+
-+      /* Try L3 first. */
-+      level  = 3;
-+      shared = handle_intel (_SC_LEVEL3_CACHE_SIZE, max_cpuid);
-+
-+      if (shared <= 0)
-+        {
-+	  /* Try L2 otherwise. */
-+          level  = 2;
-+          shared = handle_intel (_SC_LEVEL2_CACHE_SIZE, max_cpuid);
-+	}
-+
-+      /* Figure out the number of logical threads that share the
-+	 highest cache level. */
-+      if (max_cpuid >= 4)
-+        {
-+	  int i = 0;
-+
-+	  /* Query until desired cache level is enumerated. */
-+	  do
-+	    {
-+              asm volatile ("cpuid"
-+		            : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		            : "0" (4), "2" (i++));
-+	    }
-+          while (((eax >> 5) & 0x7) != level);
-+
-+	  threads = ((eax >> 14) & 0x3ff) + 1;
-+	}
-+      else
-+        {
-+	  /* Assume that all logical threads share the highest cache level. */
-+          asm volatile ("cpuid"
-+		        : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		        : "0" (1));
-+
-+	  threads = (ebx >> 16) & 0xff;
-+	}
-+
-+      /* Cap usage of highest cache level to the number of supported
-+	 threads. */
-+      if (shared > 0 && threads > 0)
-+        shared /= threads;
-+    }
-+  /* This spells out "AuthenticAMD".  */
-+  else if (ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
-+    {
-+      core   = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
-+      shared = handle_amd (_SC_LEVEL2_CACHE_SIZE);
-+
-+      asm volatile ("cpuid"
-+		    : "=a" (max_cpuid_ex), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+		    : "0" (0x80000000));
-+
-+      if (max_cpuid_ex >= 0x80000001)
-+	{
-+	  asm volatile ("cpuid"
-+			: "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
-+			: "0" (0x80000001));
-+	  /*  PREFETCHW     || 3DNow! */
-+	  if ((ecx & 0x100) || (edx & 0x80000000))
-+	    __x86_64_prefetchw = -1;
-+	}
-+    }
-+
-+  if (core > 0)
-+    __x86_64_core_cache_size_half = core / 2;
-+
-+  if (shared > 0)
-+    __x86_64_shared_cache_size_half = shared / 2;
-+}
---- libc/sysdeps/x86_64/memcpy.S	18 Oct 2004 04:17:08 -0000	1.5
-+++ libc/sysdeps/x86_64/memcpy.S	21 May 2007 19:21:01 -0000	1.6
-@@ -1,7 +1,10 @@
--/* Highly optimized version for x86-64.
--   Copyright (C) 1997, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
-+/*
-+   Optimized memcpy for x86-64.
-+
-+   Copyright (C) 2007 Free Software Foundation, Inc.
-+   Contributed by Evandro Menezes <evandro.menezes@amd.com>, 2007.
-+
-    This file is part of the GNU C Library.
--   Based on i586 version contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-@@ -16,86 +19,556 @@
-    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.  */
-+   02111-1307 USA.
-+*/
- 
- #include <sysdep.h>
- #include "asm-syntax.h"
--#include "bp-sym.h"
--#include "bp-asm.h"
- 
--/* BEWARE: `#ifdef memcpy' means that memcpy is redefined as `mempcpy',
--   and the return value is the byte after the last one copied in
--   the destination. */
--#define MEMPCPY_P (defined memcpy)
-+/* Stack slots in the red-zone. */
-+
-+#ifdef USE_AS_MEMPCPY
-+#  define RETVAL	(0)
-+#else
-+#  define RETVAL	(-8)
-+#endif
-+#define SAVE0	(RETVAL - 8)
-+#define SAVE1	(SAVE0	- 8)
-+#define SAVE2	(SAVE1	- 8)
-+#define SAVE3	(SAVE2	- 8)
- 
-         .text
-+
- #if defined PIC && !defined NOT_IN_libc
- ENTRY (__memcpy_chk)
-+
- 	cmpq	%rdx, %rcx
- 	jb	HIDDEN_JUMPTARGET (__chk_fail)
-+
- END (__memcpy_chk)
- #endif
--ENTRY (BP_SYM (memcpy))
--	/* Cutoff for the big loop is a size of 32 bytes since otherwise
--	   the loop will never be entered.  */
-+
-+ENTRY(memcpy)				/* (void *, const void*, size_t) */
-+
-+/* Handle tiny blocks. */
-+
-+L(1try):				/* up to 32B */
- 	cmpq	$32, %rdx
--	movq	%rdx, %rcx
--#if !MEMPCPY_P
--	movq	%rdi, %r10	/* Save value. */
-+#ifndef USE_AS_MEMPCPY
-+	movq	%rdi, %rax		/* save return value */
- #endif
-+	jae	L(1after)
- 
--	/* We need this in any case.  */
--	cld
-+L(1):					/* 1-byte once */
-+	testb	$1, %dl
-+	jz	L(1a)
- 
--	jbe	1f
-+	movzbl	(%rsi),	%ecx
-+	movb	%cl, (%rdi)
- 
--	/* Align destination.  */
--	movq	%rdi, %rax
--	negq	%rax
--	andq	$7, %rax
--	subq	%rax, %rcx
--	xchgq	%rax, %rcx
-+	incq	%rsi
-+	incq	%rdi
-+
-+	.p2align 4,, 4
-+
-+L(1a):					/* 2-byte once */
-+	testb	$2, %dl
-+	jz	L(1b)
-+
-+	movzwl	(%rsi),	%ecx
-+	movw	%cx, (%rdi)
- 
--	rep; movsb
-+	addq	$2, %rsi
-+	addq	$2, %rdi
- 
--	movq	%rax, %rcx
--	subq	$32, %rcx
--	js	2f
-+	.p2align 4,, 4
-+
-+L(1b):					/* 4-byte once */
-+	testb	$4, %dl
-+	jz	L(1c)
-+
-+	movl	(%rsi),	%ecx
-+	movl	%ecx, (%rdi)
-+
-+	addq	$4, %rsi
-+	addq	$4, %rdi
-+
-+	.p2align 4,, 4
-+
-+L(1c):					/* 8-byte once */
-+	testb	$8, %dl
-+	jz	L(1d)
-+
-+	movq	(%rsi), %rcx
-+	movq	%rcx, (%rdi)
-+
-+	addq	$8, %rsi
-+	addq	$8, %rdi
-+
-+	.p2align 4,, 4
-+
-+L(1d):					/* 16-byte loop */
-+	andl	$0xf0, %edx
-+	jz	L(exit)
- 
- 	.p2align 4
--3:
- 
--	/* Now correct the loop counter.  Please note that in the following
--	   code the flags are not changed anymore.  */
--	subq	$32, %rcx
-+L(1loop):
-+	movq	  (%rsi), %rcx
-+	movq	8 (%rsi), %r8
-+	movq	%rcx,   (%rdi)
-+	movq	 %r8, 8 (%rdi)
-+
-+	subl	$16, %edx
-+
-+	leaq	16 (%rsi), %rsi
-+	leaq	16 (%rdi), %rdi
-+
-+	jnz	L(1loop)
-+
-+	.p2align 4,, 4
-+
-+L(exit):				/* exit */
-+#ifdef USE_AS_MEMPCPY
-+	movq	%rdi, %rax		/* return value */
-+#else
-+	rep
-+#endif
-+	retq
-+
-+	.p2align 4
-+
-+L(1after):
-+#ifndef USE_AS_MEMPCPY
-+	movq	%rax, RETVAL (%rsp)	/* save return value */
-+#endif
-+
-+/* Align to the natural word size. */
-+
-+L(aligntry):
-+	movl	%esi, %ecx      	/* align by destination */
-+
-+	andl	$7, %ecx
-+	jz	L(alignafter)  		/* already aligned */
-+
-+L(align):		      		/* align */
-+	leaq	-8 (%rcx, %rdx), %rdx	/* calculate remaining bytes */
-+	subl	$8, %ecx
-+
-+	.p2align 4
-+
-+L(alignloop):				/* 1-byte alignment loop */
-+	movzbl	(%rsi), %eax
-+	movb	%al, (%rdi)
-+
-+	incl	%ecx
-+
-+	leaq	1 (%rsi), %rsi
-+	leaq	1 (%rdi), %rdi
-+
-+	jnz	L(alignloop)
-+
-+	.p2align 4
-+
-+L(alignafter):
-+
-+/* Loop to handle mid-sized blocks. */
-+
-+L(32try):				/* up to 1KB */
-+	cmpq	$1024, %rdx
-+	ja	L(32after)
-+
-+L(32):					/* 32-byte loop */
-+	movl	%edx, %ecx
-+	shrl	$5, %ecx
-+	jz	L(32skip)
-+
-+	.p2align 4
-+
-+L(32loop):
-+	decl	%ecx
- 
- 	movq	(%rsi), %rax
--	movq	8(%rsi), %rdx
--	movq	16(%rsi), %r8
--	movq	24(%rsi), %r9
-+	movq	 8 (%rsi), %r8
-+	movq	16 (%rsi), %r9
-+	movq	24 (%rsi), %r10
-+
- 	movq	%rax, (%rdi)
--	movq	%rdx, 8(%rdi)
--	movq	%r8, 16(%rdi)
--	movq	%r9, 24(%rdi)
-+	movq	 %r8,  8 (%rdi)
-+	movq	 %r9, 16 (%rdi)
-+	movq	%r10, 24 (%rdi)
- 
- 	leaq	32(%rsi), %rsi
- 	leaq	32(%rdi), %rdi
- 
--	jns	3b
-+	jz	L(32skip)		/* help out smaller blocks */
-+
-+	decl	%ecx
-+
-+	movq	   (%rsi), %rax
-+	movq	 8 (%rsi), %r8
-+	movq	16 (%rsi), %r9
-+	movq	24 (%rsi), %r10
-+
-+	movq	%rax,    (%rdi)
-+	movq	 %r8,  8 (%rdi)
-+	movq	 %r9, 16 (%rdi)
-+	movq	%r10, 24 (%rdi)
-+
-+	leaq	32 (%rsi), %rsi
-+	leaq	32 (%rdi), %rdi
-+
-+	jnz	L(32loop)
-+
-+	.p2align 4
- 
--	/* Correct extra loop counter modification.  */
--2:	addq	$32, %rcx
--1:	rep; movsb
-+L(32skip):
-+	andl	$31, %edx		/* check for left overs */
-+#ifdef USE_AS_MEMPCPY
-+	jnz	L(1)
- 
--#if MEMPCPY_P
--	movq	%rdi, %rax		/* Set return value.  */
-+	movq	%rdi, %rax
- #else
--	movq	%r10, %rax		/* Set return value.  */
-+	movq	RETVAL (%rsp), %rax
-+	jnz	L(1)
- 	
-+	rep
-+#endif
-+	retq				/* exit */
-+
-+	.p2align 4
-+
-+L(32after):
-+
-+/*
-+	In order to minimize code-size in RTLD, algorithms specific for
-+	larger blocks are excluded when building for RTLD.
-+*/
-+
-+/* Handle large blocks smaller than 1/2 L1. */
-+
-+L(fasttry):				/* first 1/2 L1 */
-+#ifndef NOT_IN_libc			/* only up to this algorithm outside of libc.so */
-+	movq	__x86_64_core_cache_size_half (%rip), %r11
-+	cmpq	%rdx, %r11		/* calculate the smaller of */
-+	cmovaq	%rdx, %r11		/* remaining bytes and 1/2 L1 */
-+#endif
-+
-+L(fast):				/* good ol' MOVS */
-+#ifndef NOT_IN_libc
-+	movq	%r11, %rcx
-+	andq	$-8, %r11
-+#else
-+	movq	%rdx, %rcx
-+#endif
-+	shrq	$3, %rcx
-+	jz	L(fastskip)
-+
-+	rep
-+	movsq
-+
-+	.p2align 4,, 4
-+
-+L(fastskip):
-+#ifndef NOT_IN_libc
-+	subq	%r11, %rdx		/* check for more */
-+	testq	$-8, %rdx
-+	jnz	L(fastafter)
- #endif
--	ret
- 
--END (BP_SYM (memcpy))
--#if !MEMPCPY_P
-+	andl	$7, %edx		/* check for left overs */
-+#ifdef USE_AS_MEMPCPY
-+	jnz	L(1)
-+
-+	movq	%rdi, %rax
-+#else
-+	movq	RETVAL (%rsp), %rax
-+	jnz	L(1)
-+
-+	rep
-+#endif
-+	retq				/* exit */
-+
-+#ifndef NOT_IN_libc			/* none of the algorithms below for RTLD */
-+
-+	.p2align 4
-+
-+L(fastafter):
-+
-+/* Handle large blocks smaller than 1/2 L2. */
-+
-+L(pretry):				/* first 1/2 L2 */
-+	movq	__x86_64_shared_cache_size_half (%rip), %r8
-+	cmpq	%rdx, %r8		/* calculate the lesser of */
-+	cmovaq	%rdx, %r8		/* remaining bytes and 1/2 L2 */
-+
-+L(pre):					/* 64-byte with prefetching */
-+	movq	%r8, %rcx
-+	andq	$-64, %r8
-+	shrq	$6, %rcx
-+	jz	L(preskip)
-+
-+	movq	%r14, SAVE0 (%rsp)
-+	cfi_rel_offset (%r14, SAVE0)
-+	movq	%r13, SAVE1 (%rsp)
-+	cfi_rel_offset (%r13, SAVE1)
-+	movq	%r12, SAVE2 (%rsp)
-+	cfi_rel_offset (%r12, SAVE2)
-+	movq	%rbx, SAVE3 (%rsp)
-+	cfi_rel_offset (%rbx, SAVE3)
-+
-+	cmpl	$0, __x86_64_prefetchw (%rip)
-+	jz	L(preloop)		/* check if PREFETCHW OK */
-+
-+	.p2align 4
-+
-+/* ... when PREFETCHW is available (less cache-probe traffic in MP systems). */
-+
-+L(prewloop):				/* cache-line in state M */
-+	decq	%rcx
-+
-+	movq	   (%rsi), %rax
-+	movq	 8 (%rsi), %rbx
-+	movq	16 (%rsi), %r9
-+	movq	24 (%rsi), %r10
-+	movq	32 (%rsi), %r11
-+	movq	40 (%rsi), %r12
-+	movq	48 (%rsi), %r13
-+	movq	56 (%rsi), %r14
-+
-+	prefetcht0	 0 + 896 (%rsi)
-+	prefetcht0	64 + 896 (%rsi)
-+
-+	movq	%rax,    (%rdi)
-+	movq	%rbx,  8 (%rdi)
-+	movq	 %r9, 16 (%rdi)
-+	movq	%r10, 24 (%rdi)
-+	movq	%r11, 32 (%rdi)
-+	movq	%r12, 40 (%rdi)
-+	movq	%r13, 48 (%rdi)
-+	movq	%r14, 56 (%rdi)
-+
-+	leaq	64 (%rsi), %rsi
-+	leaq	64 (%rdi), %rdi
-+
-+	jz	L(prebail)
-+
-+	decq	%rcx
-+
-+	movq	   (%rsi), %rax
-+	movq	 8 (%rsi), %rbx
-+	movq	16 (%rsi), %r9
-+	movq	24 (%rsi), %r10
-+	movq	32 (%rsi), %r11
-+	movq	40 (%rsi), %r12
-+	movq	48 (%rsi), %r13
-+	movq	56 (%rsi), %r14
-+
-+	movq	%rax,    (%rdi)
-+	movq	%rbx,  8 (%rdi)
-+	movq	 %r9, 16 (%rdi)
-+	movq	%r10, 24 (%rdi)
-+	movq	%r11, 32 (%rdi)
-+	movq	%r12, 40 (%rdi)
-+	movq	%r13, 48 (%rdi)
-+	movq	%r14, 56 (%rdi)
-+
-+	prefetchw	896 - 64 (%rdi)
-+	prefetchw	896 -  0 (%rdi)
-+
-+	leaq	64 (%rsi), %rsi
-+	leaq	64 (%rdi), %rdi
-+
-+	jnz	L(prewloop)
-+	jmp	L(prebail)
-+
-+	.p2align 4
-+
-+/* ... when PREFETCHW is not available. */
-+
-+L(preloop):				/* cache-line in state E */
-+	decq	%rcx
-+
-+	movq	   (%rsi), %rax
-+	movq	 8 (%rsi), %rbx
-+	movq	16 (%rsi), %r9
-+	movq	24 (%rsi), %r10
-+	movq	32 (%rsi), %r11
-+	movq	40 (%rsi), %r12
-+	movq	48 (%rsi), %r13
-+	movq	56 (%rsi), %r14
-+
-+	prefetcht0	896 +  0 (%rsi)
-+	prefetcht0	896 + 64 (%rsi)
-+
-+	movq	%rax,    (%rdi)
-+	movq	%rbx,  8 (%rdi)
-+	movq	 %r9, 16 (%rdi)
-+	movq	%r10, 24 (%rdi)
-+	movq	%r11, 32 (%rdi)
-+	movq	%r12, 40 (%rdi)
-+	movq	%r13, 48 (%rdi)
-+	movq	%r14, 56 (%rdi)
-+
-+	leaq	64 (%rsi), %rsi
-+	leaq	64 (%rdi), %rdi
-+
-+	jz	L(prebail)
-+
-+	decq	%rcx
-+
-+	movq	   (%rsi), %rax
-+	movq	 8 (%rsi), %rbx
-+	movq	16 (%rsi), %r9
-+	movq	24 (%rsi), %r10
-+	movq	32 (%rsi), %r11
-+	movq	40 (%rsi), %r12
-+	movq	48 (%rsi), %r13
-+	movq	56 (%rsi), %r14
-+
-+	prefetcht0	896 - 64 (%rdi)
-+	prefetcht0	896 -  0 (%rdi)
-+
-+	movq	%rax,    (%rdi)
-+	movq	%rbx,  8 (%rdi)
-+	movq	 %r9, 16 (%rdi)
-+	movq	%r10, 24 (%rdi)
-+	movq	%r11, 32 (%rdi)
-+	movq	%r12, 40 (%rdi)
-+	movq	%r13, 48 (%rdi)
-+	movq	%r14, 56 (%rdi)
-+
-+	leaq	64 (%rsi), %rsi
-+	leaq	64 (%rdi), %rdi
-+
-+	jnz	L(preloop)
-+
-+L(prebail):
-+	movq	SAVE3 (%rsp), %rbx
-+	cfi_restore (%rbx)
-+	movq	SAVE2 (%rsp), %r12
-+	cfi_restore (%r12)
-+	movq	SAVE1 (%rsp), %r13
-+	cfi_restore (%r13)
-+	movq	SAVE0 (%rsp), %r14
-+	cfi_restore (%r14)
-+
-+/*       .p2align 4 */
-+
-+L(preskip):
-+	subq	%r8, %rdx		/* check for more */
-+	testq	$-64, %rdx
-+	jnz	L(preafter)
-+
-+	andl	$63, %edx		/* check for left overs */
-+#ifdef USE_AS_MEMPCPY
-+	jnz	L(1)
-+
-+	movq	%rdi, %rax
-+#else
-+	movq	RETVAL (%rsp), %rax
-+	jnz	L(1)
-+
-+	rep
-+#endif
-+	retq				/* exit */
-+
-+	.p2align 4
-+
-+L(preafter):
-+
-+/* Loop to handle huge blocks. */
-+
-+L(NTtry):
-+
-+L(NT):					/* non-temporal 128-byte */
-+	movq	%rdx, %rcx
-+	shrq	$7, %rcx
-+	jz	L(NTskip)
-+
-+	movq	%r14, SAVE0 (%rsp)
-+	cfi_rel_offset (%r14, SAVE0)
-+	movq	%r13, SAVE1 (%rsp)
-+	cfi_rel_offset (%r13, SAVE1)
-+	movq	%r12, SAVE2 (%rsp)
-+	cfi_rel_offset (%r12, SAVE2)
-+
-+       .p2align 4
-+
-+L(NTloop):
-+	prefetchnta	768 (%rsi)
-+	prefetchnta	832 (%rsi)
-+
-+	decq	%rcx
-+
-+	movq	   (%rsi), %rax
-+	movq	 8 (%rsi), %r8
-+	movq	16 (%rsi), %r9
-+	movq	24 (%rsi), %r10
-+	movq	32 (%rsi), %r11
-+	movq	40 (%rsi), %r12
-+	movq	48 (%rsi), %r13
-+	movq	56 (%rsi), %r14
-+
-+	movntiq	%rax,    (%rdi)
-+	movntiq	 %r8,  8 (%rdi)
-+	movntiq	 %r9, 16 (%rdi)
-+	movntiq	%r10, 24 (%rdi)
-+	movntiq	%r11, 32 (%rdi)
-+	movntiq	%r12, 40 (%rdi)
-+	movntiq	%r13, 48 (%rdi)
-+	movntiq	%r14, 56 (%rdi)
-+
-+	movq	 64 (%rsi), %rax
-+	movq	 72 (%rsi), %r8
-+	movq	 80 (%rsi), %r9
-+	movq	 88 (%rsi), %r10
-+	movq	 96 (%rsi), %r11
-+	movq	104 (%rsi), %r12
-+	movq	112 (%rsi), %r13
-+	movq	120 (%rsi), %r14
-+
-+	movntiq	%rax,  64 (%rdi)
-+	movntiq	 %r8,  72 (%rdi)
-+	movntiq	 %r9,  80 (%rdi)
-+	movntiq	%r10,  88 (%rdi)
-+	movntiq	%r11,  96 (%rdi)
-+	movntiq	%r12, 104 (%rdi)
-+	movntiq	%r13, 112 (%rdi)
-+	movntiq	%r14, 120 (%rdi)
-+
-+	leaq	128 (%rsi), %rsi
-+	leaq	128 (%rdi), %rdi
-+
-+	jnz	L(NTloop)
-+
-+	sfence				/* serialize memory stores */
-+
-+	movq	SAVE2 (%rsp), %r12
-+	cfi_restore (%r12)
-+	movq	SAVE1 (%rsp), %r13
-+	cfi_restore (%r13)
-+	movq	SAVE0 (%rsp), %r14
-+	cfi_restore (%r14)
-+
-+L(NTskip):
-+	andl	$127, %edx		/* check for left overs */
-+#ifdef USE_AS_MEMPCPY
-+	jnz	L(1)
-+
-+	movq	%rdi, %rax
-+#else
-+	movq	RETVAL (%rsp), %rax
-+	jnz	L(1)
-+
-+	rep
-+#endif
-+	retq				/* exit */
-+
-+#endif /* !NOT_IN_libc */
-+
-+END(memcpy)
-+
-+#ifndef USE_AS_MEMPCPY
- libc_hidden_builtin_def (memcpy)
- #endif
---- libc/sysdeps/x86_64/mempcpy.S	18 Oct 2004 04:17:08 -0000	1.3
-+++ libc/sysdeps/x86_64/mempcpy.S	21 May 2007 19:21:16 -0000	1.4
-@@ -1,3 +1,4 @@
-+#define USE_AS_MEMPCPY
- #define memcpy __mempcpy
- #define __memcpy_chk __mempcpy_chk
- #include <sysdeps/x86_64/memcpy.S>
---- libc/sysdeps/unix/sysv/linux/x86_64/sysconf.c	10 Nov 2006 07:31:55 -0000	1.7
-+++ libc/sysdeps/unix/sysv/linux/x86_64/sysconf.c	21 May 2007 19:18:37 -0000	1.8
-@@ -24,328 +24,17 @@
- 
- 
- static long int linux_sysconf (int name);
--
--
--static const struct intel_02_cache_info
--{
--  unsigned int idx;
--  int name;
--  long int size;
--  long int assoc;
--  long int linesize;
--} intel_02_known[] =
--  {
--    { 0x06, _SC_LEVEL1_ICACHE_SIZE, 8192, 4, 32 },
--    { 0x08, _SC_LEVEL1_ICACHE_SIZE, 16384, 4, 32 },
--    { 0x0a, _SC_LEVEL1_DCACHE_SIZE, 8192, 2, 32 },
--    { 0x0c, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 32 },
--    { 0x22, _SC_LEVEL3_CACHE_SIZE, 524288, 4, 64 },
--    { 0x23, _SC_LEVEL3_CACHE_SIZE, 1048576, 8, 64 },
--    { 0x25, _SC_LEVEL3_CACHE_SIZE, 2097152, 8, 64 },
--    { 0x29, _SC_LEVEL3_CACHE_SIZE, 4194304, 8, 64 },
--    { 0x2c, _SC_LEVEL1_DCACHE_SIZE, 32768, 8, 64 },
--    { 0x30, _SC_LEVEL1_ICACHE_SIZE, 32768, 8, 64 },
--    { 0x39, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 64 },
--    { 0x3a, _SC_LEVEL2_CACHE_SIZE, 196608, 6, 64 },
--    { 0x3b, _SC_LEVEL2_CACHE_SIZE, 131072, 2, 64 },
--    { 0x3c, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 64 },
--    { 0x3d, _SC_LEVEL2_CACHE_SIZE, 393216, 6, 64 },
--    { 0x3e, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 },
--    { 0x41, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 32 },
--    { 0x42, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 32 },
--    { 0x43, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 32 },
--    { 0x44, _SC_LEVEL2_CACHE_SIZE, 1048576, 4, 32 },
--    { 0x45, _SC_LEVEL2_CACHE_SIZE, 2097152, 4, 32 },
--    { 0x46, _SC_LEVEL3_CACHE_SIZE, 4194304, 4, 64 },
--    { 0x47, _SC_LEVEL3_CACHE_SIZE, 8388608, 8, 64 },
--    { 0x49, _SC_LEVEL2_CACHE_SIZE, 4194304, 16, 64 },
--    { 0x4a, _SC_LEVEL3_CACHE_SIZE, 6291456, 12, 64 },
--    { 0x4b, _SC_LEVEL3_CACHE_SIZE, 8388608, 16, 64 },
--    { 0x4c, _SC_LEVEL3_CACHE_SIZE, 12582912, 12, 64 },
--    { 0x4d, _SC_LEVEL3_CACHE_SIZE, 16777216, 16, 64 },
--    { 0x60, _SC_LEVEL1_DCACHE_SIZE, 16384, 8, 64 },
--    { 0x66, _SC_LEVEL1_DCACHE_SIZE, 8192, 4, 64 },
--    { 0x67, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 },
--    { 0x68, _SC_LEVEL1_DCACHE_SIZE, 32768, 4, 64 },
--    { 0x78, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 },
--    { 0x79, _SC_LEVEL2_CACHE_SIZE, 131072, 8, 64 },
--    { 0x7a, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 64 },
--    { 0x7b, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 64 },
--    { 0x7c, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 },
--    { 0x7d, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 64 },
--    { 0x7f, _SC_LEVEL2_CACHE_SIZE, 524288, 2, 64 },
--    { 0x82, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 32 },
--    { 0x83, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 32 },
--    { 0x84, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 32 },
--    { 0x85, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 32 },
--    { 0x86, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 },
--    { 0x87, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 },
--  };
--#define nintel_02_known (sizeof (intel_02_known) / sizeof (intel_02_known[0]))
--
--
--static int
--intel_02_known_compare (const void *p1, const void *p2)
--{
--  const struct intel_02_cache_info *i1;
--  const struct intel_02_cache_info *i2;
--
--  i1 = (const struct intel_02_cache_info *) p1;
--  i2 = (const struct intel_02_cache_info *) p2;
--
--  if (i1->idx == i2->idx)
--    return 0;
--
--  return i1->idx < i2->idx ? -1 : 1;
--}
--
--
--static long int
--__attribute__ ((noinline))
--intel_check_word (int name, unsigned int value, bool *has_level_2,
--		  bool *no_level_2_or_3)
--{
--  if ((value & 0x80000000) != 0)
--    /* The register value is reserved.  */
--    return 0;
--
--  /* Fold the name.  The _SC_ constants are always in the order SIZE,
--     ASSOC, LINESIZE.  */
--  int folded_name = (_SC_LEVEL1_ICACHE_SIZE
--		     + ((name - _SC_LEVEL1_ICACHE_SIZE) / 3) * 3);
--
--  while (value != 0)
--    {
--      unsigned int byte = value & 0xff;
--
--      if (byte == 0x40)
--	{
--	  *no_level_2_or_3 = true;
--
--	  if (folded_name == _SC_LEVEL3_CACHE_SIZE)
--	    /* No need to look further.  */
--	    break;
--	}
--      else
--	{
--	  if (byte == 0x49 && folded_name == _SC_LEVEL3_CACHE_SIZE)
--	    {
--	      /* Intel reused this value.  For family 15, model 6 it
--		 specifies the 3rd level cache.  Otherwise the 2nd
--		 level cache.  */
--	      unsigned int eax;
--	      unsigned int ebx;
--	      unsigned int ecx;
--	      unsigned int edx;
--	      asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
--			    : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
--			    : "0" (1));
--
--	      unsigned int family = ((eax >> 20) & 0xff) + ((eax >> 8) & 0xf);
--	      unsigned int model = ((((eax >>16) & 0xf) << 4)
--				    + ((eax >> 4) & 0xf));
--	      if (family == 15 && model == 6)
--		{
--		  /* The level 3 cache is encoded for this model like
--		     the level 2 cache is for other models.  Pretend
--		     the caller asked for the level 2 cache.  */
--		  name = (_SC_LEVEL2_CACHE_SIZE
--			  + (name - _SC_LEVEL3_CACHE_SIZE));
--		  folded_name = _SC_LEVEL3_CACHE_SIZE;
--		}
--	    }
--
--	  struct intel_02_cache_info *found;
--	  struct intel_02_cache_info search;
--
--	  search.idx = byte;
--	  found = bsearch (&search, intel_02_known, nintel_02_known,
--			   sizeof (intel_02_known[0]), intel_02_known_compare);
--	  if (found != NULL)
--	    {
--	      if (found->name == folded_name)
--		{
--		  unsigned int offset = name - folded_name;
--
--		  if (offset == 0)
--		    /* Cache size.  */
--		    return found->size;
--		  if (offset == 1)
--		    return found->assoc;
--
--		  assert (offset == 2);
--		  return found->linesize;
--		}
--
--	      if (found->name == _SC_LEVEL2_CACHE_SIZE)
--		*has_level_2 = true;
--	    }
--	}
--
--      /* Next byte for the next round.  */
--      value >>= 8;
--    }
--
--  /* Nothing found.  */
--  return 0;
--}
--
--
--static long int __attribute__ ((noinline))
--handle_intel (int name, unsigned int maxidx)
--{
--  assert (maxidx >= 2);
--
--  /* OK, we can use the CPUID instruction to get all info about the
--     caches.  */
--  unsigned int cnt = 0;
--  unsigned int max = 1;
--  long int result = 0;
--  bool no_level_2_or_3 = false;
--  bool has_level_2 = false;
--  while (cnt++ < max)
--    {
--      unsigned int eax;
--      unsigned int ebx;
--      unsigned int ecx;
--      unsigned int edx;
--      asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
--		    : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
--		    : "0" (2));
--
--      /* The low byte of EAX in the first round contain the number of
--	 rounds we have to make.  At least one, the one we are already
--	 doing.  */
--      if (cnt == 1)
--	{
--	  max = eax & 0xff;
--	  eax &= 0xffffff00;
--	}
--
--      /* Process the individual registers' value.  */
--      result = intel_check_word (name, eax, &has_level_2, &no_level_2_or_3);
--      if (result != 0)
--	return result;
--
--      result = intel_check_word (name, ebx, &has_level_2, &no_level_2_or_3);
--      if (result != 0)
--	return result;
--
--      result = intel_check_word (name, ecx, &has_level_2, &no_level_2_or_3);
--      if (result != 0)
--	return result;
--
--      result = intel_check_word (name, edx, &has_level_2, &no_level_2_or_3);
--      if (result != 0)
--	return result;
--    }
--
--  if (name >= _SC_LEVEL2_CACHE_SIZE && name <= _SC_LEVEL3_CACHE_LINESIZE
--      && no_level_2_or_3)
--    return -1;
--
--  return 0;
--}
--
--
--static long int __attribute__ ((noinline))
--handle_amd (int name)
--{
--  unsigned int eax;
--  unsigned int ebx;
--  unsigned int ecx;
--  unsigned int edx;
--  asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
--		: "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
--		: "0" (0x80000000));
--
--  if (name >= _SC_LEVEL3_CACHE_SIZE)
--    return 0;
--
--  unsigned int fn = 0x80000005 + (name >= _SC_LEVEL2_CACHE_SIZE);
--  if (eax < fn)
--    return 0;
--
--  asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
--		: "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
--		: "0" (fn));
--
--  if (name < _SC_LEVEL1_DCACHE_SIZE)
--    {
--      name += _SC_LEVEL1_DCACHE_SIZE - _SC_LEVEL1_ICACHE_SIZE;
--      ecx = edx;
--    }
--
--  switch (name)
--    {
--    case _SC_LEVEL1_DCACHE_SIZE:
--      return (ecx >> 14) & 0x3fc00;
--    case _SC_LEVEL1_DCACHE_ASSOC:
--      ecx >>= 16;
--      if ((ecx & 0xff) == 0xff)
--	/* Fully associative.  */
--	return (ecx << 2) & 0x3fc00;
--      return ecx & 0xff;
--    case _SC_LEVEL1_DCACHE_LINESIZE:
--      return ecx & 0xff;
--    case _SC_LEVEL2_CACHE_SIZE:
--      return (ecx & 0xf000) == 0 ? 0 : (ecx >> 6) & 0x3fffc00;
--    case _SC_LEVEL2_CACHE_ASSOC:
--      ecx >>= 12;
--      switch (ecx & 0xf)
--        {
--        case 0:
--        case 1:
--        case 2:
--        case 4:
--	  return ecx & 0xf;
--	case 6:
--	  return 8;
--	case 8:
--	  return 16;
--	case 0xf:
--	  return (ecx << 6) & 0x3fffc00;
--	default:
--	  return 0;
--        }
--    case _SC_LEVEL2_CACHE_LINESIZE:
--      return (ecx & 0xf000) == 0 ? 0 : ecx & 0xff;
--    default:
--      assert (! "cannot happen");
--    }
--  return -1;
--}
-+extern long int __cache_sysconf (int) attribute_hidden;
- 
- 
- /* Get the value of the system variable NAME.  */
- long int
- __sysconf (int name)
- {
--  /* We only handle the cache information here (for now).  */
--  if (name < _SC_LEVEL1_ICACHE_SIZE || name > _SC_LEVEL4_CACHE_LINESIZE)
--    return linux_sysconf (name);
--
--  /* Find out what brand of processor.  */
--  unsigned int eax;
--  unsigned int ebx;
--  unsigned int ecx;
--  unsigned int edx;
--  asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
--		: "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
--		: "0" (0));
--
--  /* This spells out "GenuineIntel".  */
--  if (ebx == 0x756e6547 && ecx == 0x6c65746e && edx == 0x49656e69)
--    return handle_intel (name, eax);
--
--  /* This spells out "AuthenticAMD".  */
--  if (ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
--    return handle_amd (name);
--
--  // XXX Fill in more vendors.
-+  if (name >= _SC_LEVEL1_ICACHE_SIZE && name <= _SC_LEVEL4_CACHE_LINESIZE)
-+    return __cache_sysconf (name);
- 
--  /* CPU not known, we have no information.  */
--  return 0;
-+  return linux_sysconf (name);
- }
- 
- /* Now the generic Linux version.  */
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
deleted file mode 100644
index 5e13ea805a..0000000000
--- a/fedora/glibc.spec.in
+++ /dev/null
@@ -1,4512 +0,0 @@
-%define glibcrelease 18.1
-%define auxarches i586 i686 athlon sparcv9 alphaev6
-%define xenarches i686 athlon
-%ifarch %{xenarches}
-%define buildxen 1
-%define xenpackage 0
-%else
-%define buildxen 0
-%define xenpackage 0
-%endif
-%ifarch ppc ppc64
-%define buildpower6 1
-%else
-%define buildpower6 0
-%endif
-%define rtkaioarches %{ix86} x86_64 ia64 ppc ppc64 s390 s390x
-%define debuginfocommonarches %{ix86} alpha alphaev6 sparc sparcv9
-%define _unpackaged_files_terminate_build 0
-Summary: The GNU libc libraries.
-Name: glibc
-Version: %{glibcversion}
-Release: %{glibcrelease}
-License: LGPL
-Group: System Environment/Libraries
-Source0: %{glibcsrcdir}.tar.bz2
-%if %{glibc_release_tarballs}
-Source1: %(echo %{glibcsrcdir} | sed s/glibc-/glibc-linuxthreads-/).tar.bz2
-Source2: %(echo %{glibcsrcdir} | sed s/glibc-/glibc-libidn-/).tar.bz2
-%define glibc_release_unpack -a1 -a2
-%endif
-Source3: %{glibcname}-fedora-%{glibcdate}.tar.bz2
-Patch0: %{glibcname}-fedora.patch
-Patch1: %{name}-ia64-lib64.patch
-Patch2: glibc-rh234946.patch
-Patch3: glibc-x86_64-memcpy.patch
-Buildroot: %{_tmppath}/glibc-%{PACKAGE_VERSION}-root
-Obsoletes: zoneinfo, libc-static, libc-devel, libc-profile, libc-headers,
-Obsoletes: gencat, locale, ldconfig, locale-ja, glibc-profile
-Provides: ldconfig
-# The dynamic linker supports DT_GNU_HASH
-Provides: rtld(GNU_HASH)
-Autoreq: false
-Requires: glibc-common = %{version}-%{release}
-%ifarch sparc
-Obsoletes: libc
-%endif
-# Require libgcc in case some program calls pthread_cancel in its %%post
-Prereq: basesystem, libgcc
-# This is for building auxiliary programs like memusage, nscd
-# For initial glibc bootstraps it can be commented out
-BuildPreReq: gd-devel libpng-devel zlib-devel texinfo, libselinux-devel >= 1.17.10-1
-BuildPreReq: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext
-BuildPreReq: /bin/ps, /bin/kill, /bin/awk
-# This is to ensure that __frame_state_for is exported by glibc
-# will be compatible with egcs 1.x.y
-BuildPreReq: gcc >= 3.2
-Conflicts: rpm <= 4.0-0.65
-Conflicts: glibc-devel < 2.2.3
-Conflicts: gcc4 <= 4.0.0-0.6
-%ifarch x86_64 %{ix86}
-# Need gdb that understands DW_CFA_val_expression
-Conflicts: gdb < 6.3.0.0-1.111
-%endif
-# Earlier shadow-utils packages had too restrictive permissions on
-# /etc/default
-Conflicts: shadow-utils < 2:4.0.3-20
-Conflicts: nscd < 2.3.3-52
-Conflicts: kernel < 2.6.9
-%define enablekernel 2.6.9
-%ifarch i386
-%define nptl_target_cpu i486
-%else
-%define nptl_target_cpu %{_target_cpu}
-%endif
-# Need AS_NEEDED directive
-# Need --hash-style=* support
-BuildRequires: binutils >= 2.17.50.0.2-5
-BuildRequires: gcc >= 3.2.1-5
-%ifarch ppc s390 s390x
-BuildRequires: gcc >= 4.1.0-0.17
-%endif
-%if "%{_enable_debug_packages}" == "1"
-BuildPreReq: elfutils >= 0.72
-BuildPreReq: rpm >= 4.2-0.56
-%endif
-%define __find_provides %{_builddir}/%{glibcsrcdir}/find_provides.sh
-%define _filter_GLIBC_PRIVATE 1
-
-%description
-The glibc package contains standard libraries which are used by
-multiple programs on the system. In order to save disk space and
-memory, as well as to make upgrading easier, common system code is
-kept in one place and shared between programs. This particular package
-contains the most important sets of shared libraries: the standard C
-library and the standard math library. Without these two libraries, a
-Linux system will not function.
-
-%if %{xenpackage}
-%package xen
-Summary: The GNU libc libraries (optimized for running under Xen)
-Group: System Environment/Libraries
-Requires: glibc = %{version}-%{release}, glibc-utils = %{version}-%{release}
-
-%description xen
-The standard glibc package is optimized for native kernels and does not
-perform as well under the Xen hypervisor.  This package provides alternative
-library binaries that will be selected instead when running under Xen.
-
-Install glibc-xen if you might run your system under the Xen hypervisor.
-%endif
-
-%package devel
-Summary: Object files for development using standard C libraries.
-Group: Development/Libraries
-Conflicts: texinfo < 3.11
-# Need AS_NEEDED directive
-Conflicts: binutils < 2.15.94.0.2-1
-Prereq: /sbin/install-info
-Obsoletes: libc-debug, libc-headers, libc-devel, linuxthreads-devel
-Obsoletes: glibc-debug, nptl-devel
-Prereq: %{name}-headers
-Requires: %{name}-headers = %{version}-%{release}, %{name} = %{version}-%{release}
-%ifarch %{ix86}
-# Earlier gcc's had atexit reference in crtendS.o, which does not
-# work with this glibc where atexit is in libc_nonshared.a
-Conflicts: gcc < 2.96-79
-%endif
-Autoreq: true
-
-%description devel
-The glibc-devel package contains the object files necessary
-for developing programs which use the standard C libraries (which are
-used by nearly all programs).  If you are developing programs which
-will use the standard C libraries, your system needs to have these
-standard object files available in order to create the
-executables.
-
-Install glibc-devel if you are going to develop programs which will
-use the standard C libraries.
-
-%package headers
-Summary: Header files for development using standard C libraries.
-Group: Development/Libraries
-Provides: %{name}-headers(%{_target_cpu})
-%ifarch x86_64
-# If both -m32 and -m64 is to be supported on AMD64, x86_64 glibc-headers
-# have to be installed, not i386 ones.
-Obsoletes: %{name}-headers(i386)
-%endif
-Obsoletes: libc-debug, libc-headers, libc-devel
-Prereq: kernel-headers
-Requires: kernel-headers >= 2.2.1, %{name} = %{version}-%{release}
-Autoreq: true
-
-%description headers
-The glibc-headers package contains the header files necessary
-for developing programs which use the standard C libraries (which are
-used by nearly all programs).  If you are developing programs which
-will use the standard C libraries, your system needs to have these
-standard header files available in order to create the
-executables.
-
-Install glibc-headers if you are going to develop programs which will
-use the standard C libraries.
-
-%package common
-Summary: Common binaries and locale data for glibc
-Conflicts: %{name} < %{version}
-Conflicts: %{name} > %{version}
-Autoreq: false
-Requires: tzdata >= 2003a
-Group: System Environment/Base
-
-%description common
-The glibc-common package includes common binaries for the GNU libc
-libraries, as well as national language (locale) support.
-
-%package -n nscd
-Summary: A Name Service Caching Daemon (nscd).
-Group: System Environment/Daemons
-Conflicts: kernel < 2.2.0
-Requires: libselinux >= 1.17.10-1, audit-libs >= 1.1.3
-Conflicts: selinux-policy-targeted < 1.17.30-2.2
-Prereq: /sbin/chkconfig, /usr/sbin/useradd, /usr/sbin/userdel, sh-utils
-Autoreq: true
-
-%description -n nscd
-Nscd caches name service lookups and can dramatically improve
-performance with NIS+, and may help with DNS as well.
-
-%package utils
-Summary: Development utilities from GNU C library
-Group: Development/Tools
-Requires: glibc = %{version}-%{release}
-
-%description utils
-The glibc-utils package contains memusage, a memory usage profiler,
-mtrace, a memory leak tracer and xtrace, a function call tracer
-which can be helpful during program debugging.
-
-If unsure if you need this, don't install this package.
-
-%if "%{_enable_debug_packages}" == "1"
-%define debug_package %{nil}
-
-%package debuginfo
-Summary: Debug information for package %{name}
-Group: Development/Debug
-%ifarch %{debuginfocommonarches}
-Requires: glibc-debuginfo-common = %{version}-%{release}
-%endif
-
-%description debuginfo
-This package provides debug information for package %{name}.
-Debug information is useful when developing applications that use this
-package or when debugging this package.
-
-This package also contains static standard C libraries with
-debugging information.  You need this only if you want to step into
-C library routines during debugging programs statically linked against
-one or more of the standard C libraries.
-To use this debugging information, you need to link binaries
-with -static -L%{_prefix}/lib/debug%{_prefix}/%{_lib} compiler options.
-
-%ifarch %{debuginfocommonarches}
-
-%package debuginfo-common
-Summary: Debug information for package %{name}
-Group: Development/Debug
-
-%description debuginfo-common
-This package provides debug information for package %{name}.
-Debug information is useful when developing applications that use this
-package or when debugging this package.
-
-%endif
-%endif
-
-%prep
-%setup -q -n %{glibcsrcdir} %{glibc_release_unpack} -a3
-%patch0 -E -p1
-%ifarch ia64
-%if "%{_lib}" == "lib64"
-%patch1 -p1
-%endif
-%endif
-%patch2 -p1
-# Postpone until this is enough tested in F7
-#%patch3 -p1
-
-# Hack till glibc-kernheaders get updated, argh
-mkdir -p override_headers/linux
-cat > override_headers/linux/version.h <<EOF
-#define UTS_RELEASE "2.6.9"
-#define LINUX_VERSION_CODE 132617
-#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
-EOF
-mkdir -p override_headers/asm
-cat > override_headers/asm/unistd.h <<EOF
-#ifndef _HACK_ASM_UNISTD_H
-#include_next <asm/unistd.h>
-%ifarch alpha
-#ifndef __NR_stat64
-#define __NR_stat64			425
-#define __NR_lstat64			426
-#define __NR_fstat64			427
-#endif
-#ifndef __NR_mq_open
-#define __NR_mq_open			432
-#define __NR_mq_unlink			433
-#define __NR_mq_timedsend		434
-#define __NR_mq_timedreceive		435
-#define __NR_mq_notify			436
-#define __NR_mq_getsetattr		437
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid			438
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init		444
-#define __NR_inotify_add_watch		445
-#define __NR_inotify_rm_watch		446
-#endif
-%endif
-%ifarch %{ix86}
-#ifndef __NR_mq_open
-#define __NR_mq_open 		277
-#define __NR_mq_unlink		(__NR_mq_open+1)
-#define __NR_mq_timedsend	(__NR_mq_open+2)
-#define __NR_mq_timedreceive	(__NR_mq_open+3)
-#define __NR_mq_notify		(__NR_mq_open+4)
-#define __NR_mq_getsetattr	(__NR_mq_open+5)
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		284
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	291
-#define __NR_inotify_add_watch	292
-#define __NR_inotify_rm_watch	293
-#endif
-#ifndef __NR_openat
-#define __NR_openat		295
-#define __NR_mkdirat		296
-#define __NR_mknodat		297
-#define __NR_fchownat		298
-#define __NR_futimesat		299
-#define __NR_unlinkat		301
-#define __NR_renameat		302
-#define __NR_linkat		303
-#define __NR_symlinkat		304
-#define __NR_readlinkat		305
-#define __NR_fchmodat		306
-#define __NR_faccessat		307
-#endif
-#ifndef __NR_fstatat64
-#define __NR_fstatat64		300
-#endif
-#ifndef __NR_pselect6
-#define __NR_pselect6		308
-#define __NR_ppoll		309
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		310
-#endif
-#ifndef __NR_set_robust_list
-#define __NR_set_robust_list	311
-#define __NR_get_robust_list	312
-#endif
-#ifndef __NR_splice
-#define __NR_splice		313
-#endif
-#ifndef __NR_sync_file_range
-#define __NR_sync_file_range	314
-#endif
-#ifndef __NR_tee
-#define __NR_tee		315
-#endif
-#ifndef __NR_vmsplice
-#define __NR_vmsplice		316
-#endif
-%endif
-%ifarch ia64
-#ifndef __NR_timer_create
-#define __NR_timer_create	1248
-#define __NR_timer_settime	1249
-#define __NR_timer_gettime	1250
-#define __NR_timer_getoverrun	1251
-#define __NR_timer_delete	1252
-#define __NR_clock_settime	1253
-#define __NR_clock_gettime	1254
-#define __NR_clock_getres	1255
-#define __NR_clock_nanosleep	1256
-#endif
-#ifndef __NR_mq_open
-#define __NR_mq_open		1262
-#define __NR_mq_unlink		1263
-#define __NR_mq_timedsend	1264
-#define __NR_mq_timedreceive	1265
-#define __NR_mq_notify		1266
-#define __NR_mq_getsetattr	1267
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		1270
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	1277
-#define __NR_inotify_add_watch	1278
-#define __NR_inotify_rm_watch	1279
-#endif
-#ifndef __NR_openat
-#define __NR_openat		1281
-#define __NR_mkdirat		1282
-#define __NR_mknodat		1283
-#define __NR_fchownat		1284
-#define __NR_futimesat		1285
-#define __NR_newfstatat		1286
-#define __NR_unlinkat		1287
-#define __NR_renameat		1288
-#define __NR_linkat		1289
-#define __NR_symlinkat		1290
-#define __NR_readlinkat		1291
-#define __NR_fchmodat		1292
-#define __NR_faccessat		1293
-#endif
-#if 0
-#ifndef __NR_pselect6
-#define __NR_pselect6		1294
-#define __NR_ppoll		1295
-#endif
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		1296
-#endif
-#ifndef __NR_splice
-#define __NR_splice		1297
-#endif
-#ifndef __NR_set_robust_list
-#define __NR_set_robust_list	1298
-#define __NR_get_robust_list	1299
-#endif
-#ifndef __NR_sync_file_range
-#define __NR_sync_file_range	1300
-#endif
-#ifndef __NR_tee
-#define __NR_tee		1301
-#endif
-#ifndef __NR_vmsplice
-#define __NR_vmsplice		1302
-#endif
-%endif
-%ifarch ppc
-#ifndef __NR_utimes
-#define __NR_utimes		251
-#endif
-#ifndef __NR_statfs64
-#define __NR_statfs64		252
-#define __NR_fstatfs64		253
-#endif
-#ifndef __NR_fadvise64_64
-#define __NR_fadvise64_64	254
-#endif
-#ifndef __NR_mq_open
-#define __NR_mq_open		262
-#define __NR_mq_unlink		263
-#define __NR_mq_timedsend	264
-#define __NR_mq_timedreceive	265
-#define __NR_mq_notify		266
-#define __NR_mq_getsetattr	267
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		272
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	275
-#define __NR_inotify_add_watch	276
-#define __NR_inotify_rm_watch	277
-#endif
-#ifndef __NR_pselect6
-#define __NR_pselect6		280
-#define __NR_ppoll		281
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		282
-#endif
-#ifndef __NR_splice
-#define __NR_splice		283
-#endif
-#ifndef __NR_tee
-#define __NR_tee		284
-#endif
-#ifndef __NR_vmsplice
-#define __NR_vmsplice		285
-#endif
-#ifndef __NR_openat
-#define __NR_openat		286
-#define __NR_mkdirat		287
-#define __NR_mknodat		288
-#define __NR_fchownat		289
-#define __NR_futimesat		290
-#define __NR_fstatat64		291
-#define __NR_unlinkat		292
-#define __NR_renameat		293
-#define __NR_linkat		294
-#define __NR_symlinkat		295
-#define __NR_readlinkat		296
-#define __NR_fchmodat		297
-#define __NR_faccessat		298
-#endif
-%endif
-%ifarch ppc64
-#ifndef __NR_utimes
-#define __NR_utimes		251
-#endif
-#ifndef __NR_mq_open
-#define __NR_mq_open		262
-#define __NR_mq_unlink		263
-#define __NR_mq_timedsend	264
-#define __NR_mq_timedreceive	265
-#define __NR_mq_notify		266
-#define __NR_mq_getsetattr	267
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		272
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	275
-#define __NR_inotify_add_watch	276
-#define __NR_inotify_rm_watch	277
-#endif
-#ifndef __NR_pselect6
-#define __NR_pselect6		280
-#define __NR_ppoll		281
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		282
-#endif
-#ifndef __NR_splice
-#define __NR_splice		283
-#endif
-#ifndef __NR_tee
-#define __NR_tee		284
-#endif
-#ifndef __NR_vmsplice
-#define __NR_vmsplice		285
-#endif
-#ifndef __NR_openat
-#define __NR_openat		286
-#define __NR_mkdirat		287
-#define __NR_mknodat		288
-#define __NR_fchownat		289
-#define __NR_futimesat		290
-#define __NR_newfstatat		291
-#define __NR_unlinkat		292
-#define __NR_renameat		293
-#define __NR_linkat		294
-#define __NR_symlinkat		295
-#define __NR_readlinkat		296
-#define __NR_fchmodat		297
-#define __NR_faccessat		298
-#endif
-%endif
-%ifarch s390
-#ifndef __NR_timer_create
-#define __NR_timer_create	254
-#define __NR_timer_settime	(__NR_timer_create+1)
-#define __NR_timer_gettime	(__NR_timer_create+2)
-#define __NR_timer_getoverrun	(__NR_timer_create+3)
-#define __NR_timer_delete	(__NR_timer_create+4)
-#define __NR_clock_settime	(__NR_timer_create+5)
-#define __NR_clock_gettime	(__NR_timer_create+6)
-#define __NR_clock_getres	(__NR_timer_create+7)
-#define __NR_clock_nanosleep	(__NR_timer_create+8)
-#endif
-#ifndef __NR_fadvise64_64
-#define __NR_fadvise64_64	264
-#endif
-#ifndef __NR_statfs64
-#define __NR_statfs64		265
-#define __NR_fstatfs64		266
-#endif
-#ifndef __NR_mq_open
-#define __NR_mq_open		271
-#define __NR_mq_unlink		272
-#define __NR_mq_timedsend	273
-#define __NR_mq_timedreceive	274
-#define __NR_mq_notify		275
-#define __NR_mq_getsetattr	276
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		281
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	284
-#define __NR_inotify_add_watch	285
-#define __NR_inotify_rm_watch	286
-#endif
-#ifndef __NR_openat
-#define __NR_openat		288
-#define __NR_mkdirat		289
-#define __NR_mknodat		290
-#define __NR_fchownat		291
-#define __NR_futimesat		292
-#define __NR_fstatat64		293
-#define __NR_unlinkat		294
-#define __NR_renameat		295
-#define __NR_linkat		296
-#define __NR_symlinkat		297
-#define __NR_readlinkat		298
-#define __NR_fchmodat		299
-#define __NR_faccessat		300
-#endif
-#ifndef __NR_pselect6
-#define __NR_pselect6		301
-#define __NR_ppoll		302
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		303
-#endif
-%endif
-%ifarch s390x
-#ifndef __NR_timer_create
-#define __NR_timer_create	254
-#define __NR_timer_settime	(__NR_timer_create+1)
-#define __NR_timer_gettime	(__NR_timer_create+2)
-#define __NR_timer_getoverrun	(__NR_timer_create+3)
-#define __NR_timer_delete	(__NR_timer_create+4)
-#define __NR_clock_settime	(__NR_timer_create+5)
-#define __NR_clock_gettime	(__NR_timer_create+6)
-#define __NR_clock_getres	(__NR_timer_create+7)
-#define __NR_clock_nanosleep	(__NR_timer_create+8)
-#endif
-#ifndef __NR_mq_open
-#define __NR_mq_open		271
-#define __NR_mq_unlink		272
-#define __NR_mq_timedsend	273
-#define __NR_mq_timedreceive	274
-#define __NR_mq_notify		275
-#define __NR_mq_getsetattr	276
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		281
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	284
-#define __NR_inotify_add_watch	285
-#define __NR_inotify_rm_watch	286
-#endif
-#ifndef __NR_openat
-#define __NR_openat		288
-#define __NR_mkdirat		289
-#define __NR_mknodat		290
-#define __NR_fchownat		291
-#define __NR_futimesat		292
-#define __NR_newfstatat		293
-#define __NR_unlinkat		294
-#define __NR_renameat		295
-#define __NR_linkat		296
-#define __NR_symlinkat		297
-#define __NR_readlinkat		298
-#define __NR_fchmodat		299
-#define __NR_faccessat		300
-#endif
-#ifndef __NR_pselect6
-#define __NR_pselect6		301
-#define __NR_ppoll		302
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		303
-#endif
-%endif
-%ifarch sparc sparcv9 sparc64
-#ifndef __NR_mq_open
-#define __NR_mq_open		273
-#define __NR_mq_unlink		274
-#define __NR_mq_timedsend	275
-#define __NR_mq_timedreceive	276
-#define __NR_mq_notify		277
-#define __NR_mq_getsetattr	278
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		279
-#endif
-#ifndef __NR_stat64
-#define __NR_fstat64		63
-#define __NR_lstat64		132
-#define __NR_stat64		139
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	151
-#define __NR_inotify_add_watch	152
-#define __NR_inotify_rm_watch	156
-#endif
-#ifndef __NR_openat
-#define __NR_openat		284
-#define __NR_mkdirat		285
-#define __NR_mknodat		286
-#define __NR_fchownat		287
-#define __NR_futimesat		288
-#define __NR_newfstatat		289
-#define __NR_unlinkat		290
-#define __NR_renameat		291
-#define __NR_linkat		292
-#define __NR_symlinkat		293
-#define __NR_readlinkat		294
-#define __NR_fchmodat		295
-#define __NR_faccessat		296
-#endif
-#ifndef __NR_pselect6
-#define __NR_pselect6		297
-#define __NR_ppoll		298
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		299
-#endif
-%endif
-%ifarch x86_64
-#ifndef __NR_mq_open
-#define __NR_mq_open		240
-#define __NR_mq_unlink		241
-#define __NR_mq_timedsend	242
-#define __NR_mq_timedreceive	243
-#define __NR_mq_notify		244
-#define __NR_mq_getsetattr	245
-#endif
-#ifndef __NR_waitid
-#define __NR_waitid		247
-#endif
-#ifndef __NR_inotify_init
-#define __NR_inotify_init	253
-#define __NR_inotify_add_watch	254
-#define __NR_inotify_rm_watch	255
-#endif
-#ifndef __NR_openat
-#define __NR_openat		257
-#define __NR_mkdirat		258
-#define __NR_mknodat		259
-#define __NR_fchownat		260
-#define __NR_futimesat		261
-#define __NR_newfstatat		262
-#define __NR_unlinkat		263
-#define __NR_renameat		264
-#define __NR_linkat		265
-#define __NR_symlinkat		266
-#define __NR_readlinkat		267
-#define __NR_fchmodat		268
-#define __NR_faccessat		269
-#endif
-#ifndef __NR_pselect6
-#define __NR_pselect6		270
-#define __NR_ppoll		271
-#endif
-#ifndef __NR_unshare
-#define __NR_unshare		272
-#endif
-#ifndef __NR_set_robust_list
-#define __NR_set_robust_list	273
-#define __NR_get_robust_list	274
-#endif
-#ifndef __NR_splice
-#define __NR_splice		275
-#endif
-#ifndef __NR_tee
-#define __NR_tee		276
-#endif
-#ifndef __NR_sync_file_range
-#define __NR_sync_file_range	277
-#endif
-#ifndef __NR_vmsplice
-#define __NR_vmsplice		278
-#endif
-%endif
-#endif
-EOF
-cat > override_headers/asm/errno.h <<EOF
-#ifndef _HACK_ASM_ERRNO_H
-#include_next <asm/errno.h>
-%ifarch alpha
-#ifndef ENOKEY
-#define ENOKEY		132
-#define EKEYEXPIRED	133
-#define EKEYREVOKED	134
-#define EKEYREJECTED	135
-#endif
-#ifndef EOWNERDEAD
-#define EOWNERDEAD	136
-#define ENOTRECOVERABLE	137
-#endif
-%endif
-%ifarch %{ix86} ia64 ppc ppc64 s390 s390x x86_64
-#ifndef ENOKEY
-#define ENOKEY		126
-#define EKEYEXPIRED	127
-#define EKEYREVOKED	128
-#define EKEYREJECTED	129
-#endif
-#ifndef EOWNERDEAD
-#define EOWNERDEAD	130
-#define ENOTRECOVERABLE	131
-#endif
-%endif
-%ifarch sparc sparcv9 sparc64
-#ifndef ENOKEY
-#define ENOKEY		128
-#define EKEYEXPIRED	129
-#define EKEYREVOKED	130
-#define EKEYREJECTED	131
-#endif
-#ifndef EOWNERDEAD
-#define EOWNERDEAD	132
-#define ENOTRECOVERABLE	133
-#endif
-%endif
-#endif
-EOF
-
-# A lot of programs still misuse memcpy when they have to use
-# memmove. The memcpy implementation below is not tolerant at
-# all.
-rm -f sysdeps/alpha/alphaev6/memcpy.S
-
-find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
-cat > find_provides.sh <<EOF
-#!/bin/sh
-/usr/lib/rpm/find-provides | grep -v GLIBC_PRIVATE
-exit 0
-EOF
-chmod +x find_provides.sh
-touch `find . -name configure`
-touch locale/programs/*-kw.h
-
-%build
-GCC=gcc
-GXX=g++
-%ifarch %{ix86}
-BuildFlags="-march=%{_target_cpu} -mtune=generic"
-%endif
-%ifarch i686
-BuildFlags="-march=i686 -mtune=generic"
-%endif
-%ifarch i386
-BuildFlags="$BuildFlags -mno-tls-direct-seg-refs"
-%endif
-%ifarch x86_64
-BuildFlags="-mtune=generic"
-%endif
-%ifarch alphaev6
-BuildFlags="-mcpu=ev6"
-%endif
-%ifarch sparc
-BuildFlags="-fcall-used-g6"
-GCC="gcc -m32"
-GXX="g++ -m32"
-%endif
-%ifarch sparcv9
-BuildFlags="-mcpu=ultrasparc -fcall-used-g6"
-GCC="gcc -m32"
-GXX="g++ -m32"
-%endif
-%ifarch sparc64
-BuildFlags="-mcpu=ultrasparc -mvis -fcall-used-g6"
-GCC="gcc -m64"
-GXX="g++ -m64"
-%endif
-%ifarch ppc64
-BuildFlags="-mno-minimal-toc"
-GCC="gcc -m64"
-GXX="g++ -m64"
-%endif
-
-BuildFlags="$BuildFlags -DNDEBUG=1"
-EnableKernel="--enable-kernel=%{enablekernel}"
-echo "$GCC" > Gcc
-AddOns=`echo */configure | sed -e 's!/configure!!g;s!\(linuxthreads\|nptl\|rtkaio\|powerpc-cpu\)\( \|$\)!!g;s! \+$!!;s! !,!g;s!^!,!;/^,\*$/d'`
-%ifarch %{rtkaioarches}
-AddOns=,rtkaio$AddOns
-%endif
-
-build_nptl()
-{
-builddir=build-%{nptl_target_cpu}-$1
-shift
-rm -rf $builddir
-mkdir $builddir ; cd $builddir
-build_CFLAGS="$BuildFlags -g -O3 $*"
-CC="$GCC" CXX="$GXX" CFLAGS="$build_CFLAGS" ../configure --prefix=%{_prefix} \
-	--enable-add-ons=nptl$AddOns --without-cvs $EnableKernel \
-	--with-headers=`cd ..; pwd`/override_headers:%{_prefix}/include --enable-bind-now \
-	--with-tls --with-__thread --build %{nptl_target_cpu}-redhat-linux \
-	--host %{nptl_target_cpu}-redhat-linux \
-	--disable-profile
-make %{?_smp_mflags} -r CFLAGS="$build_CFLAGS" PARALLELMFLAGS=-s
-
-cd ..
-}
-
-build_nptl linuxnptl
-
-%if %{buildxen}
-build_nptl linuxnptl-nosegneg -mno-tls-direct-seg-refs
-%endif
-
-%if %{buildpower6}
-(
-platform=`LD_SHOW_AUXV=1 /bin/true | sed -n 's/^AT_PLATFORM:[[:blank:]]*//p'`
-if [ "$platform" != power6 ]; then
-  mkdir -p power6emul/{lib,lib64}
-  $GCC -shared -O2 -fpic -o power6emul/%{_lib}/power6emul.so fedora/power6emul.c -Wl,-z,initfirst
-%ifarch ppc
-  echo '' | gcc -shared -nostdlib -O2 -fpic -m64 -o power6emul/lib64/power6emul.so -xc -
-%endif
-%ifarch ppc64
-  echo '' | gcc -shared -nostdlib -O2 -fpic -m32 -o power6emul/lib/power6emul.so -xc -
-%endif
-  export LD_PRELOAD=`pwd`/power6emul/\$LIB/power6emul.so
-fi
-AddOns=",powerpc-cpu$AddOns --with-cpu=power6"
-GCC="$GCC -mcpu=power6"
-GXX="$GXX -mcpu=power6"
-build_nptl linuxnptl-power6
-)
-%endif
-
-cd build-%{nptl_target_cpu}-linuxnptl
-$GCC -static -L. -Os ../fedora/glibc_post_upgrade.c -o glibc_post_upgrade.%{_target_cpu} \
-    -DNO_SIZE_OPTIMIZATION \
-%ifarch i386
-    -DARCH_386 \
-%endif
-    '-DLIBTLS="/%{_lib}/tls/"' \
-    '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' \
-    '-DLD_SO_CONF="/etc/ld.so.conf"' \
-    '-DICONVCONFIG="%{_sbindir}/iconvconfig.%{_target_cpu}"'
-cd ..
-
-%install
-GCC=`cat Gcc`
-
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT
-make -j1 install_root=$RPM_BUILD_ROOT install -C build-%{nptl_target_cpu}-linuxnptl PARALLELMFLAGS=-s
-%ifnarch %{auxarches}
-cd build-%{nptl_target_cpu}-linuxnptl && \
-    make %{?_smp_mflags} install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` && \
-    cd ..
-%endif
-
-librtso=`basename $RPM_BUILD_ROOT/%{_lib}/librt.so.*`
-
-%ifarch %{rtkaioarches}
-rm -f $RPM_BUILD_ROOT{,%{_prefix}}/%{_lib}/librtkaio.so*
-rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/librt.so.*
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/rtkaio
-mv $RPM_BUILD_ROOT/%{_lib}/librtkaio-*.so $RPM_BUILD_ROOT/%{_lib}/rtkaio/
-rm -f $RPM_BUILD_ROOT/%{_lib}/$librtso
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so` $RPM_BUILD_ROOT/%{_lib}/$librtso
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/rtkaio/librtkaio-*.so` $RPM_BUILD_ROOT/%{_lib}/rtkaio/$librtso
-%endif
-
-%if %{buildxen}
-%define nosegneg_subdir_base i686
-%define nosegneg_subdir i686/nosegneg
-cd build-%{nptl_target_cpu}-linuxnptl-nosegneg
-SubDir=%{nosegneg_subdir}
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/$SubDir/
-cp -a libc.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libc-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libc-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libc.so.*`
-cp -a math/libm.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libm-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libm-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libm.so.*`
-cp -a nptl/libpthread.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/libpthread-%{version}.so
-pushd $RPM_BUILD_ROOT/%{_lib}/$SubDir
-ln -sf libpthread-*.so `basename $RPM_BUILD_ROOT/%{_lib}/libpthread.so.*`
-popd
-cp -a rt/librt.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/$librtso
-cp -a nptl_db/libthread_db.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libthread_db-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libthread_db-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libthread_db.so.*`
-%ifarch %{rtkaioarches}
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/rtkaio/$SubDir
-cp -a rtkaio/librtkaio.so $RPM_BUILD_ROOT/%{_lib}/rtkaio/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so | sed s/librt-/librtkaio-/`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/rtkaio/$SubDir/librtkaio-*.so` $RPM_BUILD_ROOT/%{_lib}/rtkaio/$SubDir/$librtso
-%endif
-cd ..
-%endif
-
-%if %{buildpower6}
-cd build-%{nptl_target_cpu}-linuxnptl-power6
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/power6{,x}
-cp -a libc.so $RPM_BUILD_ROOT/%{_lib}/power6/`basename $RPM_BUILD_ROOT/%{_lib}/libc-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libc-*.so` $RPM_BUILD_ROOT/%{_lib}/power6/`basename $RPM_BUILD_ROOT/%{_lib}/libc.so.*`
-cp -a math/libm.so $RPM_BUILD_ROOT/%{_lib}/power6/`basename $RPM_BUILD_ROOT/%{_lib}/libm-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libm-*.so` $RPM_BUILD_ROOT/%{_lib}/power6/`basename $RPM_BUILD_ROOT/%{_lib}/libm.so.*`
-cp -a nptl/libpthread.so $RPM_BUILD_ROOT/%{_lib}/power6/libpthread-%{version}.so
-pushd $RPM_BUILD_ROOT/%{_lib}/power6
-ln -sf libpthread-*.so `basename $RPM_BUILD_ROOT/%{_lib}/libpthread.so.*`
-popd
-cp -a rt/librt.so $RPM_BUILD_ROOT/%{_lib}/power6/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so` $RPM_BUILD_ROOT/%{_lib}/power6/$librtso
-cp -a nptl_db/libthread_db.so $RPM_BUILD_ROOT/%{_lib}/power6/`basename $RPM_BUILD_ROOT/%{_lib}/libthread_db-*.so`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libthread_db-*.so` $RPM_BUILD_ROOT/%{_lib}/power6/`basename $RPM_BUILD_ROOT/%{_lib}/libthread_db.so.*`
-pushd $RPM_BUILD_ROOT/%{_lib}/power6x
-ln -sf ../power6/*.so .
-cp -a ../power6/*.so.* .
-popd
-%ifarch %{rtkaioarches}
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/rtkaio/power6{,x}
-cp -a rtkaio/librtkaio.so $RPM_BUILD_ROOT/%{_lib}/rtkaio/power6/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so | sed s/librt-/librtkaio-/`
-ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/rtkaio/power6/librtkaio-*.so` $RPM_BUILD_ROOT/%{_lib}/rtkaio/power6/$librtso
-pushd $RPM_BUILD_ROOT/%{_lib}/rtkaio/power6x
-ln -sf ../power6/*.so .
-cp -a ../power6/*.so.* .
-popd
-%endif
-cd ..
-%endif
-
-# compatibility hack: this locale has vanished from glibc, but some other
-# programs are still using it. Normally we would handle it in the %pre
-# section but with glibc that is simply not an option
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/locale/ru_RU/LC_MESSAGES
-
-# Remove the files we don't want to distribute
-rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libNoVersion*
-rm -f $RPM_BUILD_ROOT/%{_lib}/libNoVersion*
-
-# NPTL <bits/stdio-lock.h> is not usable outside of glibc, so include
-# the generic one (#162634)
-cp -a bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h
-# And <bits/libc-lock.h> needs sanitizing as well.
-cp -a fedora/libc-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/libc-lock.h
-
-if [ -d $RPM_BUILD_ROOT%{_prefix}/info -a "%{_infodir}" != "%{_prefix}/info" ]; then
-    mkdir -p $RPM_BUILD_ROOT%{_infodir}
-    mv -f $RPM_BUILD_ROOT%{_prefix}/info/* $RPM_BUILD_ROOT%{_infodir}
-    rm -rf $RPM_BUILD_ROOT%{_prefix}/info
-fi
-
-gzip -9nvf $RPM_BUILD_ROOT%{_infodir}/libc*
-
-ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libbsd.a
-
-install -p -m 644 fedora/nsswitch.conf $RPM_BUILD_ROOT/etc/nsswitch.conf
-
-mkdir -p $RPM_BUILD_ROOT/etc/default
-install -p -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/nss
-
-# Take care of setuids
-# -- new security review sez that this shouldn't be needed anymore
-#chmod 755 $RPM_BUILD_ROOT%{_prefix}/libexec/pt_chown
-
-# This is for ncsd - in glibc 2.2
-install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT/etc
-mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
-install -m 755 nscd/nscd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/nscd
-
-# Don't include ld.so.cache
-rm -f $RPM_BUILD_ROOT/etc/ld.so.cache
-
-# Include ld.so.conf
-echo 'include ld.so.conf.d/*.conf' > $RPM_BUILD_ROOT/etc/ld.so.conf
-touch $RPM_BUILD_ROOT/etc/ld.so.cache
-chmod 644 $RPM_BUILD_ROOT/etc/ld.so.conf
-mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
-mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
-touch $RPM_BUILD_ROOT/etc/sysconfig/nscd
-
-# Include %{_prefix}/%{_lib}/gconv/gconv-modules.cache
-> $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gconv/gconv-modules.cache
-chmod 644 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gconv/gconv-modules.cache
-
-# Install the upgrade program
-install -m 700 build-%{nptl_target_cpu}-linuxnptl/glibc_post_upgrade.%{_target_cpu} \
-  $RPM_BUILD_ROOT/usr/sbin/glibc_post_upgrade.%{_target_cpu}
-
-strip -g $RPM_BUILD_ROOT%{_prefix}/%{_lib}/*.o
-
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/%{_lib}
-cp -a $RPM_BUILD_ROOT%{_prefix}/%{_lib}/*.a \
-  $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/%{_lib}/
-rm -f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/%{_lib}/*_p.a
-# Now strip debugging info from static libraries
-pushd $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
-for i in *.a; do
-  if [ -f $i ]; then
-    case "$i" in
-    *_p.a) ;;
-    *) strip -g -R .comment $i ;;
-    esac
-  fi
-done
-popd
-
-# rquota.x and rquota.h are now provided by quota
-rm -f $RPM_BUILD_ROOT%{_prefix}/include/rpcsvc/rquota.[hx]
-
-# Hardlink identical locale files together
-%ifnarch %{auxarches}
-gcc -O2 -o build-%{nptl_target_cpu}-linuxnptl/hardlink fedora/hardlink.c
-build-%{nptl_target_cpu}-linuxnptl/hardlink -vc $RPM_BUILD_ROOT%{_prefix}/lib/locale
-%endif
-
-rm -f ${RPM_BUILD_ROOT}/%{_lib}/libnss1-*
-rm -f ${RPM_BUILD_ROOT}/%{_lib}/libnss-*.so.1
-
-# Ugly hack for buggy rpm
-ln -f ${RPM_BUILD_ROOT}%{_sbindir}/iconvconfig{,.%{_target_cpu}}
-
-rm -f $RPM_BUILD_ROOT/etc/gai.conf
-
-# BUILD THE FILE LIST
-find $RPM_BUILD_ROOT -type f -or -type l |
-	sed -e 's|.*/etc|%config &|' \
-	    -e 's|.*/gconv/gconv-modules$|%verify(not md5 size mtime) %config(noreplace) &|' \
-	    -e 's|.*/gconv/gconv-modules.cache|%verify(not md5 size mtime) &|' \
-	    -e '/lib\/debug/d' > rpm.filelist.in
-for n in %{_prefix}/share %{_prefix}/include %{_prefix}/lib/locale; do
-    find ${RPM_BUILD_ROOT}${n} -type d | \
-	grep -v '%{_prefix}/share$' | \
-	grep -v '%{_infodir}' | \
-	sed "s/^/%dir /" >> rpm.filelist.in
-done
-
-# primary filelist
-SHARE_LANG='s|.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo|%lang(\1) &|'
-LIB_LANG='s|.*/lib/locale/\([^/_]\+\)|%lang(\1) &|'
-# rpm does not handle %lang() tagged files hardlinked together accross
-# languages very well, temporarily disable
-# LIB_LANG=''
-sed -e "s|$RPM_BUILD_ROOT||" -e "$LIB_LANG" -e "$SHARE_LANG" < rpm.filelist.in |
-	grep -v '/etc/\(localtime\|nsswitch.conf\|ld.so.conf\|ld.so.cache\|default\)'  | \
-	grep -v '/%{_lib}/lib\(pcprofile\|memusage\).so' | \
-	grep -v 'bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\)' | \
-	sort > rpm.filelist
-
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{_lib}
-mv -f $RPM_BUILD_ROOT/%{_lib}/lib{pcprofile,memusage}.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}
-for i in $RPM_BUILD_ROOT%{_prefix}/bin/{xtrace,memusage}; do
-  cp -a $i $i.tmp
-  sed -e 's~=/%{_lib}/libpcprofile.so~=%{_prefix}/%{_lib}/libpcprofile.so~' \
-      -e 's~=/%{_lib}/libmemusage.so~=%{_prefix}/%{_lib}/libmemusage.so~' \
-      -e 's~='\''/\\\$LIB/libpcprofile.so~='\''%{_prefix}/\\$LIB/libpcprofile.so~' \
-      -e 's~='\''/\\\$LIB/libmemusage.so~='\''%{_prefix}/\\$LIB/libmemusage.so~' \
-    $i.tmp > $i
-  chmod 755 $i; rm -f $i.tmp
-done
-
-grep '%{_infodir}' < rpm.filelist | grep -v '%{_infodir}/dir' > devel.filelist
-grep '%{_prefix}/include/gnu/stubs-[32164]\+\.h' < rpm.filelist >> devel.filelist || :
-
-grep '%{_prefix}/include' < rpm.filelist |
-	egrep -v '%{_prefix}/include/(linuxthreads|gnu/stubs-[32164]+\.h)' \
-		> headers.filelist
-
-mv rpm.filelist rpm.filelist.full
-grep -v '%{_prefix}/%{_lib}/lib.*_p.a' rpm.filelist.full |
-	egrep -v "(%{_prefix}/include)|(%{_infodir})" > rpm.filelist
-
-grep '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist >> devel.filelist
-grep '%{_prefix}/%{_lib}/.*\.o' < rpm.filelist >> devel.filelist
-grep '%{_prefix}/%{_lib}/lib.*\.so' < rpm.filelist >> devel.filelist
-
-mv rpm.filelist rpm.filelist.full
-grep -v '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist.full |
-	grep -v '%{_prefix}/%{_lib}/.*\.o' |
-	grep -v '%{_prefix}/%{_lib}/lib.*\.so'|
-	grep -v '%{_prefix}/%{_lib}/linuxthreads' |
-	grep -v 'nscd' > rpm.filelist
-
-grep '%{_prefix}/bin' < rpm.filelist >> common.filelist
-grep '%{_prefix}/lib/locale' < rpm.filelist >> common.filelist
-grep '%{_prefix}/libexec/pt_chown' < rpm.filelist >> common.filelist
-grep '%{_prefix}/sbin/[^gi]' < rpm.filelist >> common.filelist
-grep '%{_prefix}/share' < rpm.filelist \
-  | grep -v '%{_prefix}/share/zoneinfo' >> common.filelist
-
-mv rpm.filelist rpm.filelist.full
-grep -v '%{_prefix}/bin' < rpm.filelist.full |
-	grep -v '%{_prefix}/lib/locale' |
-	grep -v '%{_prefix}/libexec/pt_chown' |
-	grep -v '%{_prefix}/sbin/[^gi]' |
-	grep -v '%{_prefix}/share' > rpm.filelist
-
-> nosegneg.filelist
-%if %{xenpackage}
-grep '/%{_lib}/%{nosegneg_subdir}' < rpm.filelist >> nosegneg.filelist
-mv rpm.filelist rpm.filelist.full
-grep -v '/%{_lib}/%{nosegneg_subdir}' < rpm.filelist.full > rpm.filelist
-%endif
-
-echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist
-echo '%{_prefix}/sbin/tzdata-update' >> common.filelist
-echo '%{_prefix}/sbin/nscd' > nscd.filelist
-
-cat > utils.filelist <<EOF
-%{_prefix}/%{_lib}/libmemusage.so
-%{_prefix}/%{_lib}/libpcprofile.so
-%{_prefix}/bin/memusage
-%{_prefix}/bin/memusagestat
-%{_prefix}/bin/mtrace
-%{_prefix}/bin/pcprofiledump
-%{_prefix}/bin/xtrace
-EOF
-
-# /etc/localtime
-rm -f $RPM_BUILD_ROOT/etc/localtime
-cp -f $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo/US/Eastern $RPM_BUILD_ROOT/etc/localtime
-#ln -sf ..%{_prefix}/share/zoneinfo/US/Eastern $RPM_BUILD_ROOT/etc/localtime
-
-rm -rf $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo
-
-# Make sure %config files have the same timestamp
-touch -r fedora/glibc.spec.in $RPM_BUILD_ROOT/etc/ld.so.conf
-touch -r timezone/northamerica $RPM_BUILD_ROOT/etc/localtime
-touch -r sunrpc/etc.rpc $RPM_BUILD_ROOT/etc/rpc
-
-cd fedora
-$GCC -Os -static -o build-locale-archive build-locale-archive.c \
-  ../build-%{nptl_target_cpu}-linuxnptl/locale/locarchive.o \
-  ../build-%{nptl_target_cpu}-linuxnptl/locale/md5.o \
-  -DDATADIR=\"%{_datadir}\" -DPREFIX=\"%{_prefix}\" \
-  -L../build-%{nptl_target_cpu}-linuxnptl
-install -m 700 build-locale-archive $RPM_BUILD_ROOT/usr/sbin/build-locale-archive
-$GCC -Os -static -o tzdata-update tzdata-update.c \
-  -L../build-%{nptl_target_cpu}-linuxnptl
-install -m 700 tzdata-update $RPM_BUILD_ROOT/usr/sbin/tzdata-update
-cd ..
-
-# the last bit: more documentation
-rm -rf documentation
-mkdir documentation
-cp crypt/README.ufc-crypt documentation/README.ufc-crypt
-cp timezone/README documentation/README.timezone
-cp ChangeLog{,.15,.16} documentation
-bzip2 -9 documentation/ChangeLog*
-cp posix/gai.conf documentation/
-
-%ifarch s390x
-# Compatibility symlink
-mkdir -p $RPM_BUILD_ROOT/lib
-ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/lib/ld64.so.1
-%endif
-%ifarch ia64
-%if "%{_lib}" == "lib64"
-# Compatibility symlink
-mkdir -p $RPM_BUILD_ROOT/lib
-ln -sf /%{_lib}/ld-linux-ia64.so.2 $RPM_BUILD_ROOT/lib/ld-linux-ia64.so.2
-%endif
-%endif
-
-# Increase timeouts
-export TIMEOUTFACTOR=16
-parent=$$
-echo ====================TESTING=========================
-cd build-%{nptl_target_cpu}-linuxnptl
-( make %{?_smp_mflags} -k check PARALLELMFLAGS=-s 2>&1
-  sleep 10s
-  teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
-  [ -n "$teepid" ] && kill $teepid
-) | tee check.log || :
-cd ..
-%if %{buildxen}
-echo ====================TESTING -mno-tls-direct-seg-refs=============
-cd build-%{nptl_target_cpu}-linuxnptl-nosegneg
-( make -j$numprocs -k check PARALLELMFLAGS=-s 2>&1
-  sleep 10s
-  teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
-  [ -n "$teepid" ] && kill $teepid
-) | tee check.log || :
-cd ..
-%endif
-%if %{buildpower6}
-echo ====================TESTING -mcpu=power6=============
-cd build-%{nptl_target_cpu}-linuxnptl-power6
-( if [ -d ../power6emul ]; then
-    export LD_PRELOAD=`cd ../power6emul; pwd`/\$LIB/power6emul.so
-  fi
-  make -j$numprocs -k check PARALLELMFLAGS=-s 2>&1
-  sleep 10s
-  teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
-  [ -n "$teepid" ] && kill $teepid
-) | tee check.log || :
-cd ..
-%endif
-echo ====================TESTING DETAILS=================
-for i in `sed -n 's|^.*\*\*\* \[\([^]]*\.out\)\].*$|\1|p' build-*-linux*/check.log`; do
-  echo =====$i=====
-  cat $i || :
-  echo ============
-done
-echo ====================TESTING END=====================
-PLTCMD='/^Relocation section .*\(\.rela\?\.plt\|\.rela\.IA_64\.pltoff\)/,/^$/p'
-echo ====================PLT RELOCS LD.SO================
-readelf -Wr $RPM_BUILD_ROOT/%{_lib}/ld-*.so | sed -n -e "$PLTCMD"
-echo ====================PLT RELOCS LIBC.SO==============
-readelf -Wr $RPM_BUILD_ROOT/%{_lib}/libc-*.so | sed -n -e "$PLTCMD"
-echo ====================PLT RELOCS END==================
-
-%if "%{_enable_debug_packages}" == "1"
-
-case "$-" in *x*) save_trace=yes;; esac
-set +x
-echo Building debuginfo subpackage...
-
-blf=debugfiles.list
-sf=debugsources.list
-cblf=debugcommonfiles.list
-csf=debugcommonsources.list
-
-echo -n > $sf
-echo -n > $csf
-
-strip $RPM_BUILD_ROOT/{sbin/ldconfig,usr/sbin/glibc_post_upgrade.%{_target_cpu},usr/sbin/build-locale-archive}
-
-# Strip ELF binaries
-for f in `cat rpm.filelist nosegneg.filelist \
-	  | grep -v '%%\(dir\|lang\|config\|verify\)'`; do
-  bf=$RPM_BUILD_ROOT$f
-  if [ -f $bf -a -x $bf -a ! -h $bf ]; then
-    if `file $bf 2>/dev/null | grep 'ELF.*, not stripped' | grep -vq 'statically linked'`; then
-      bd=`dirname $f`
-      outd=$RPM_BUILD_ROOT/usr/lib/debug$bd
-      mkdir -p $outd
-      echo extracting debug info from $f
-      /usr/lib/rpm/debugedit -b $RPM_BUILD_DIR -d /usr/src/debug -l $sf $bf
-      bn=`basename $f`
-      case $f in
-        /%{_lib}/*) eu-strip -g -f $outd/$bn.debug $bf || :;;
-        *) eu-strip -f $outd/$bn.debug $bf || :;;
-      esac
-      if [ -f $outd/$bn.debug ]; then echo /usr/lib/debug$bd/$bn.debug >> $blf; fi
-    fi
-  fi
-done
-
-for f in `cat common.filelist utils.filelist nscd.filelist \
-          | grep -v '%%\(dir\|lang\|config\|verify\)'`; do
-  bf=$RPM_BUILD_ROOT$f
-  if [ -f $bf -a -x $bf -a ! -h $bf ]; then
-    if `file $bf 2>/dev/null | grep 'ELF.*, not stripped' | grep -vq 'statically linked'`; then
-      bd=`dirname $f`
-      outd=$RPM_BUILD_ROOT/usr/lib/debug$bd
-      mkdir -p $outd
-      echo extracting debug info from $f
-      /usr/lib/rpm/debugedit -b $RPM_BUILD_DIR -d /usr/src/debug -l $csf $bf
-      bn=`basename $f`
-      eu-strip -f $outd/$bn.debug $bf || :
-      if [ -f $outd/$bn.debug ]; then echo /usr/lib/debug$bd/$bn.debug >> $cblf; fi
-    fi
-  fi
-done
-
-for f in `find $RPM_BUILD_ROOT/%{_lib} -type l`; do
-  l=`ls -l $f`
-  l=${l#* -> }
-  t=/usr/lib/debug`dirname ${f#$RPM_BUILD_ROOT}`
-  if grep -q "^$t/$l.debug\$" $blf; then
-    ln -sf $l.debug $RPM_BUILD_ROOT$t/`basename $f`.debug
-    echo $t/`basename $f`.debug >> $blf
-  elif grep -q "^$t.debug/$l\$" $cblf; then
-    ln -sf $l.debug $RPM_BUILD_ROOT$t/`basename $f`.debug
-    echo $t/`basename $f`.debug >> $cblf
-  fi
-done
-
-echo Sorting source file lists. Might take a while...
-xargs -0 -n 1 echo < $sf | LC_ALL=C grep -v '/<internal>$\|\.gperf$' | LC_ALL=C sort -u > $sf.sorted
-xargs -0 -n 1 echo < $csf | LC_ALL=C grep -v '/<internal>$\|\.gperf$' | LC_ALL=C sort -u > $csf.sorted
-mkdir -p $RPM_BUILD_ROOT/usr/src/debug
-cat $sf.sorted $csf.sorted \
-  | (cd $RPM_BUILD_DIR; LC_ALL=C sort -u | cpio -pdm ${RPM_BUILD_ROOT}/usr/src/debug)
-# stupid cpio creates new directories in mode 0700, fixup
-find $RPM_BUILD_ROOT/usr/src/debug -type d -print | xargs chmod a+rx
-
-%ifarch %{debuginfocommonarches}
-%ifarch %{auxarches}
-%ifarch %{ix86}
-%define basearch i386
-%endif
-%ifarch alpha alphaev6
-%define basearch alpha
-%endif
-%ifarch sparc sparcv9
-%define basearch sparc
-%endif
-cat $blf > debuginfo.filelist
-find $RPM_BUILD_ROOT/usr/src/debug/%{glibcsrcdir} -type d \
-  | sed "s#^$RPM_BUILD_ROOT#%%dir #" >> debuginfo.filelist
-grep '/generic/\|/linux/\|/%{basearch}/\|/nptl\(_db\)\?/\|^%{glibcsrcdir}/build' \
-  $sf.sorted | sed 's|^|/usr/src/debug/|' >> debuginfo.filelist
-touch debuginfocommon.filelist
-%else
-( grep '^%{glibcsrcdir}/build-\|dl-osinfo\.h' $csf.sorted || : ) > $csf.sorted.build
-cat $blf > debuginfo.filelist
-cat $cblf > debuginfocommon.filelist
-grep '^%{glibcsrcdir}/build-\|dl-osinfo\.h' $sf.sorted \
-  | sed 's|^|/usr/src/debug/|' >> debuginfo.filelist
-find $RPM_BUILD_ROOT/usr/src/debug/%{glibcsrcdir} -type d \
-  | sed "s#^$RPM_BUILD_ROOT#%%dir #" >> debuginfocommon.filelist
-( cat $csf.sorted; grep -v -f $csf.sorted.build $sf.sorted ) \
-  | grep -v 'dl-osinfo\.h' | LC_ALL=C sort -u \
-  | sed 's|^|/usr/src/debug/|' >> debuginfocommon.filelist
-%endif
-%else
-cat $blf $cblf | LC_ALL=C sort -u > debuginfo.filelist
-echo '/usr/src/debug/%{glibcsrcdir}' >> debuginfo.filelist
-%endif
-
-[ "x$save_trace" = xyes ] && set -x
-
-%endif
-
-%ifarch %{auxarches}
-case "$-" in *x*) save_trace=yes;; esac
-set +x
-echo Cutting down the list of unpackaged files
-for i in `sed '/%%dir/d;/%%config/d;/%%verify/d;s/%%lang([^)]*) //' \
-	  common.filelist devel.filelist headers.filelist \
-	  utils.filelist nscd.filelist`; do
-  [ -f "$RPM_BUILD_ROOT$i" ] && rm -f "$RPM_BUILD_ROOT$i" || :
-done
-[ "x$save_trace" = xyes ] && set -x
-
-%else
-
-mkdir -p $RPM_BUILD_ROOT/var/{db,run}/nscd
-touch $RPM_BUILD_ROOT/var/{db,run}/nscd/{passwd,group,hosts}
-touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid}
-%endif
-
-touch $RPM_BUILD_ROOT/%{_prefix}/lib/locale/locale-archive
-
-%post -p /usr/sbin/glibc_post_upgrade.%{_target_cpu}
-
-%postun -p /sbin/ldconfig
-
-%post common -p /usr/sbin/build-locale-archive
-
-%triggerin common -p /usr/sbin/tzdata-update -- tzdata
-
-%post devel
-/sbin/install-info %{_infodir}/libc.info.gz %{_infodir}/dir
-
-%pre headers
-# this used to be a link and it is causing nightmares now
-if [ -L %{_prefix}/include/scsi ] ; then
-    rm -f %{_prefix}/include/scsi
-fi
-
-%preun devel
-if [ "$1" = 0 ]; then
-    /sbin/install-info --delete %{_infodir}/libc.info.gz %{_infodir}/dir
-fi
-
-%post utils -p /sbin/ldconfig
-
-%postun utils -p /sbin/ldconfig
-
-%pre -n nscd
-/usr/sbin/useradd -M -o -r -d / -s /sbin/nologin \
-	-c "NSCD Daemon" -u 28 nscd > /dev/null 2>&1 || :
-
-%post -n nscd
-/sbin/chkconfig --add nscd
-
-%preun -n nscd
-if [ $1 = 0 ] ; then
-    service nscd stop > /dev/null 2>&1
-    /sbin/chkconfig --del nscd
-fi
-
-%postun -n nscd
-if [ $1 = 0 ] ; then
-    /usr/sbin/userdel nscd > /dev/null 2>&1 || :
-fi
-if [ "$1" -ge "1" ]; then
-    service nscd condrestart > /dev/null 2>&1 || :
-fi
-
-%if %{xenpackage}
-%post xen -p /sbin/ldconfig
-%postun xen -p /sbin/ldconfig
-%endif
-
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-rm -f *.filelist*
-
-%files -f rpm.filelist
-%defattr(-,root,root)
-%ifarch %{rtkaioarches}
-%dir /%{_lib}/rtkaio
-%endif
-%if %{buildxen} && !%{xenpackage}
-%dir /%{_lib}/%{nosegneg_subdir_base}
-%dir /%{_lib}/%{nosegneg_subdir}
-%ifarch %{rtkaioarches}
-%dir /%{_lib}/rtkaio/%{nosegneg_subdir_base}
-%dir /%{_lib}/rtkaio/%{nosegneg_subdir}
-%endif
-%endif
-%if %{buildpower6}
-%dir /%{_lib}/power6
-%dir /%{_lib}/power6x
-%ifarch %{rtkaioarches}
-%dir /%{_lib}/rtkaio/power6
-%dir /%{_lib}/rtkaio/power6x
-%endif
-%endif
-%ifarch s390x
-%dir /lib
-/lib/ld64.so.1
-%endif
-%ifarch ia64
-%if "%{_lib}" == "lib64"
-%dir /lib
-/lib/ld-linux-ia64.so.2
-%endif
-%endif
-%verify(not md5 size mtime) %config(noreplace) /etc/localtime
-%verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
-%verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
-%dir /etc/ld.so.conf.d
-%dir %{_prefix}/libexec/getconf
-%dir %{_prefix}/%{_lib}/gconv
-%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
-%doc README NEWS INSTALL FAQ BUGS NOTES PROJECTS CONFORMANCE
-%doc COPYING COPYING.LIB README.libm LICENSES
-%doc hesiod/README.hesiod
-
-%if %{xenpackage}
-%files -f nosegneg.filelist xen
-%defattr(-,root,root)
-%dir /%{_lib}/%{nosegneg_subdir_base}
-%dir /%{_lib}/%{nosegneg_subdir}
-%endif
-
-%ifnarch %{auxarches}
-%files -f common.filelist common
-%defattr(-,root,root)
-%attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %config(missingok,noreplace) %{_prefix}/lib/locale/locale-archive
-%dir %attr(755,root,root) /etc/default
-%verify(not md5 size mtime) %config(noreplace) /etc/default/nss
-%doc documentation/*
-
-%files -f devel.filelist devel
-%defattr(-,root,root)
-
-%files -f headers.filelist headers
-%defattr(-,root,root)
-
-%files -f utils.filelist utils
-%defattr(-,root,root)
-
-%files -f nscd.filelist -n nscd
-%defattr(-,root,root)
-%config(noreplace) /etc/nscd.conf
-%config /etc/rc.d/init.d/nscd
-%dir %attr(0755,root,root) /var/run/nscd
-%dir %attr(0755,root,root) /var/db/nscd
-%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid
-%attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket
-%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/passwd
-%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/group
-%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/hosts
-%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/passwd
-%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/group
-%attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/nscd/hosts
-%ghost %config(missingok,noreplace) /etc/sysconfig/nscd
-%endif
-
-%if "%{_enable_debug_packages}" == "1"
-%files debuginfo -f debuginfo.filelist
-%defattr(-,root,root)
-%ifarch %{debuginfocommonarches}
-%ifnarch %{auxarches}
-%files debuginfo-common -f debuginfocommon.filelist
-%defattr(-,root,root)
-%dir %{_prefix}/lib/debug
-%dir %{_prefix}/lib/debug/%{_prefix}
-%dir %{_prefix}/lib/debug/%{_prefix}/%{_lib}
-%{_prefix}/lib/debug/%{_prefix}/%{_lib}/*.a
-%endif
-%else
-%dir %{_prefix}/lib/debug
-%dir %{_prefix}/lib/debug/%{_prefix}
-%dir %{_prefix}/lib/debug/%{_prefix}/%{_lib}
-%{_prefix}/lib/debug/%{_prefix}/%{_lib}/*.a
-%endif
-%endif
-
-%changelog
-* Wed Jul  4 2007 Jakub Jelinek <jakub@redhat.com> 2.5-18
-- save/restore errno around reading /etc/default/nss (BZ#4702)
-- fix LD_HWCAP_MASK handling
-
-* Fri Jun 22 2007 Jakub Jelinek <jakub@redhat.com> 2.5-17
-- disable workaround for #210748 and #211133, instead backport
-  ld.so locking fixes from the trunk (#235026)
-- Korean charsets additions (BZ#3954, BZ#3955)
-- fix handling of 2001::/32 IPv6 addresses in getaddrinfo (BZ#4102)
-- add inline optimization for fgetc_unlocked
-- fix handling of 172.{1[7-9],2[0-9],3[01]}/16 IPv4 addresses in
-  getaddrinfo
-- make sure NULL checks in routines with nonnull attribute aren't
-  optimized away
-- don't write uninitialized padding bytes to nscd socket
-- avoid misaligned reads/writes in gethostbyname_r (#243967, BZ#4381)
-- fix dl{,v}sym, dl_iterate_phdr and dlopen if some library is
-  mapped into ld.so's inter-segment hole on x86_64 (#244545)
-- fix LD_AUDIT=a:b program (#180432)
-
-* Fri Jun  8 2007 Jakub Jelinek <jakub@redhat.com> 2.5-16
-- don't crash on pseudo-zero long double values passed to
-  *printf on i?86/x86_64/ia64 (BZ#4586)
-- fix *printf %La and strtold with some hexadecimal floating point
-  constants on ppc/ppc64
-- fix nextafterl on ppc/ppc64
-
-* Wed May 30 2007 Jakub Jelinek <jakub@redhat.com> 2.5-15
-- robust mutex fixes (BZ#4512)
-- *printf fixes (BZ#4514)
-- as_IN updates (#218035)
-- use MADV_DONTNEED in malloc (#237711)
-- fix sem_timedwait on i?86 and x86_64
-- fix dladdr if some shared library is mapped into ld.so intersegment
-  VM hole (#232224, BZ#4131)
-- fdatasync is a cancellation point (BZ#4465)
-- add a temporary hack to avoid reruning DSO initializers if dlopen
-  is called from _dl_fini destructors (#234946)
-
-* Wed May  2 2007 Jakub Jelinek <jakub@redhat.com> 2.5-14
-- add transliteration for <U2044> (BZ#3213)
-- fix *scanf with %f on hexadecimal floats without exponent (BZ#4342)
-- fix *printf with very large precisions for %s (#238406, BZ#4438)
-- fix inet_ntop size checking for AF_INET (BZ#4439)
-- for *printf %e avoid 1.000e-00, for exponent 0 always use + sign (#238431)
-- fix application crashes when doing NSS lookups through nscd
-  mmapped databases and nscd decides to start garbage collection
-  during the lookups (#219145, #225315)
-- fix NIS+ __nisfind_server (#235229)
-- assorted NIS+ speedups (#233460)
-- fix power6 libm compat symbols on ppc32 (#232633)
-- fix child refcntr in NPTL fork (#230198)
-- fix ifaddrs with many net devices on > 4KB page size arches (#230151)
-- fix pthread_mutex_timedlock on x86_64 (#228103)
-- fix HAVE_LIBCAP configure detection (#178934)
-- fix double free in fts_close (#222089)
-- fix vfork+execvp memory leak (#221187)
-- further localedef robustification (#203728)
-- fix printf with %g and values tiny bit smaller than 1.e-4 (#235864,
-  BZ#4362, BZ#4070)
-- fix _XOPEN_VERSION (BZ#4364)
-- nexttoward*/nextafter* fixes (BZ#3306)
-- various fixes (BZ#3919, BZ#4101, BZ#4130, BZ#4181, BZ#4069, BZ#3458,
-  BZ#3348, BZ#4344, BZ#4368, BZ#4305, BZ#4306)
-- fix nftw with FTW_CHDIR on / (BZ#4076)
-- nscd fixes (BZ#4074)
-- fix euidaccess (BZ#3842)
-- assorted locale data fixes (BZ#3322, BZ#3995, BZ#3884, BZ#3851, BZ#4411)
-- fix strptime (BZ#3944)
-- fix regcomp with REG_NEWLINE (BZ#3957)
-- fix %0lld printing of 0LL on 32-bit architectures (BZ#3902)
-- soft-fp fixes (BZ#2749)
-- further strtod fixes (BZ#3855)
-- update ru and sv translations
-- fix fesetround return value on ia64
-- fix nscd SIGHUP database invalidation
-
-* Mon Jan 15 2007 Jakub Jelinek <jakub@redhat.com> 2.5-12
-- add a workaround for #210748 and #211133
-- fix NIS getservbyname when proto is NULL
-
-* Fri Jan  5 2007 Jakub Jelinek <jakub@redhat.com> 2.5-10
-- fix nss_compat +group handling (#220658)
-
-* Fri Dec 22 2006 Jakub Jelinek <jakub@redhat.com> 2.5-9
-- make sure pthread_kill doesn't return EINVAL even if
-  the target thread exits in between pthread_kill ESRCH check
-  and the actual tgkill syscall (#220420)
-
-* Tue Dec 19 2006 Jakub Jelinek <jakub@redhat.com> 2.5-8
-- fix setcontext on ppc32 (#219107)
-- fix wide stdio after setvbuf (#217064, BZ#2337)
-- fix {j,m}rand48{,_r} on 64-bit arches (BZ#3747)
-- handle power6x AT_PLATFORM (#216970)
-- fix a race condition in getXXbyYY_r (#219145)
-- fix tst-pselect testcase
-
-* Tue Dec 12 2006 Jakub Jelinek <jakub@redhat.com> 2.5-7
-- fix hasmntopt (#218802)
-- fix setusershell and getusershell (#218782)
-- strtod fixes (BZ#3664, BZ#3673, BZ#3674)
-- fix ttyname and ttyname_r with invalid file descriptor (#218276)
-- fix nis_getnames if the default domain doesn't contain at least
-  two dots (#206483)
-- fix memusage with realloc (x, 0)
-
-* Wed Nov 29 2006 Jakub Jelinek <jakub@redhat.com> 2.5-6
-- fix svc_run (#216834, BZ#3559)
-- make sure there is consistent timestamp for /etc/ld.so.conf,
-  /etc/localtime and /etc/rpc between multilib glibc rpms
-- fix :include: /etc/alias handling (#215572)
-- update powerpc-cpu add-on to version 0.4 (#196319)
-- add power6x subdir to /%{_lib}/ and /%{_lib}/rtkaio/,
-  link all libs from ../power6/* into them
-- update nl, sv, pl and tr translations
-- add mai_IN locale (#213415)
-- fix es_ES LC_TIME (BZ#3320)
-
-* Tue Nov 14 2006 Jakub Jelinek <jakub@redhat.com> 2.5-5
-- remove bogus %{_libdir}/librt.so.1 symlink (#213555)
-- fix memusage (#213656)
-- fix sysconf (_SC_LEVEL{2,3}_CACHE_SIZE) on Intel Core Duo
-  CPUs
-- fix ld.so locking on dlopen failures (#213037, BZ#3429)
-- fix libthread_db.so on TLS_DTV_AT_TP architectures (#215513)
-- fix --inhibit-rpath (#214569)
-- fix _r_debug content when prelinked ld.so executes
-  a program as its argument
-- handle new tzdata format to cope with year > 2037 transitions
-  on 64-bit architectures
-- fix strxfrm
-- fix i?86 floor and ceil inlines (BZ#3451)
-
-* Thu Oct 19 2006 Jakub Jelinek <jakub@redhat.com> 2.5-4
-- fix i?86 6 argument syscalls (e.g. splice)
-- fix rtld minimal realloc (BZ#3352)
-- fix RFC3484 getaddrinfo sorting according to rules 4 and 7 (BZ#3369)
-- fix xdrmem_setpos (#211452)
-
-* Sun Oct  8 2006 Jakub Jelinek <jakub@redhat.com> 2.5-3
-- bump __GLIBC_MINOR__
-- increase PTHREAD_STACK_MIN on ppc{,64} to 128K to allow
-  64K pagesize kernels (#209877)
-- speed up initgroups on NIS+ (#208203)
-
-* Mon Oct  2 2006 Jakub Jelinek <jakub@redhat.com> 2.5-2
-- fix nscd database growing (#207928)
-- bypass prelinking when LD_DYNAMIC_WEAK=1 is in the environment
-
-* Fri Sep 29 2006 Jakub Jelinek <jakub@redhat.com> 2.5-1
-- glibc 2.5 release
-
-* Wed Sep 27 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-36
-- rebuilt with gcc-4.1.1-26 to fix unwind info
-
-* Mon Sep 25 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-35
-- fix glob with large number of matches (BZ#3253)
-- fix fchownat on kernels that don't support that syscall (BZ#3252)
-- fix lrintl on s390{,64}
-
-* Sat Sep 23 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-34
-- fix ppc{32,64} longjmp (BZ#3225)
-- fix user visible spelling errors (BZ#3137)
-- fix l{,l}rint{,f,l} around zero (BZ#2592)
-- avoid stack trampoline in s390{,x} makecontext
-
-* Tue Sep 15 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-33
-- fix dlclose (#206639)
-- don't load platform optimized libraries if kernel doesn't set
-  AT_PLATFORM
-- fix ppc{32,64} libSegFault.so
-- use -mtune=generic even for glibc-devel.i386 (#206437)
-- fix /%{_lib}/librt.so.1 symlink
-
-* Fri Sep 15 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-32
-- on ppc* use just AT_PLATFORM and altivec AT_HWCAP bit for library selection
-- fix lrintl and lroundl on ppc{,64}
-- use hidden visibility on fstatat{,64} and mknodat in libc_nonshared.a
-
-* Sun Sep 10 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-31
-- fix pthread_cond_{,timed}wait cancellation (BZ#3123)
-- fix lrint on ppc32 (BZ#3155)
-- fix malloc allocating more than half of address space (BZ#2775)
-- fix mktime on 32-bit arches a few years after 2038 (BZ#2821)
-
-* Thu Sep  7 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-30
-- add librtkaio, to use it add /%{lib}/rtkaio to your
-  LD_LIBRARY_PATH or /etc/ld.so.conf
-- fix or_IN February name (#204730)
-- fix pthread_create called from cancellation handlers (BZ#3124)
-- fix regex case insensitive searches with characters where upper
-  and lower case multibyte representations have different length
-  (e.g. I and dotless i, #202991)
-
-* Tue Sep  5 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-29
-- randomize resolver query ids before use instead after use (#205113)
-- fix resolver symver checking with DT_GNU_HASH (#204909)
-- put .hash section in glibc libraries at the end of RO segment
-  when .gnu.hash is present
-
-* Thu Aug 31 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-28
-- another malloc doubly linked list corruption problem fix (#204653)
-
-* Thu Aug 31 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-27
-- allow $LIB and $PLATFORM in dlopen parameters even in suid/sgid (#204399)
-- handle $LIB/$PLATFORM in LD_LIBRARY_PATH
-- fix splice prototype (#204530)
-
-* Mon Aug 28 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-26
-- real fix for the doubly linked list corruption problem
-- try harder in realloc to allocate memory (BZ#2684)
-- fix getnameinfo error reporting (#204122)
-- make localedef more robust on invalid input (#203728)
-
-* Fri Aug 25 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-25
-- temporarily back out code to limit number of unsorted block
-  sort iterations (#203735, #204027)
-- handle PLT symbols in dladdr properly (BZ#2683)
-- avoid malloc infinite looping for allocations larger than
-  the system can allocate (#203915)
-
-* Tue Aug 22 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-23
-- malloc fixes, especially for 32-bit arches (#202309)
-- further *_IN locale fixes (#200230)
-- fix get{serv,rpc}ent{,_r} if NIS map is empty (#203237)
-- fix /usr/bin/iconv (#203400)
-
-* Fri Aug 18 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-22
-- rebuilt with latest binutils to pick up 64K -z commonpagesize
-  on ppc/ppc64 (#203001)
-
-* Tue Aug 15 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-21
-- if some test gets stuck, kill the tee process after make check
-  finishes
-- build with -mtune=generic on i686 and x86_64
-
-* Tue Aug 15 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-20
-- PTHREAD_PRIO_PROTECT support
-- fix errno if nice() fails (#201826)
-
-* Thu Aug 10 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-19
-- adaptive malloc brk/mmap threshold
-- fix fchownat to use kernel syscall (if available) on many arches (#201870)
-- only define O_DIRECT with -D_GNU_SOURCE on ia64 to match all
-  other arches (#201748)
-
-* Mon Aug  7 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-18
-- NIS+ fixes
-- fix memusage and xtrace scripts (#200736)
-- redirect /sbin/service sshd condrestart std{out,err} to /dev/null
-  when executed from glibc_post_upgrade
-
-* Wed Aug  2 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-17
-- typo fix for the dladdr patch
-- build i?86 glibc with -mno-tls-direct-seg-refs (#200469)
-
-* Wed Aug  2 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-16
-- fix dladdr on binaries/libraries with only DT_GNU_HASH and no
-  DT_HASH (#200635)
-- fix early timeout of initgroups data in nscd (#173019)
-- add am/pm display to es_PE and es_NI locales (#167101)
-- fix nss_compat failures when nis/nis+ unavailable (#192072)
-
-* Mon Jul 31 2006 Roland McGrath <roland@redhat.com> 2.4.90-15
-- fix missing destructor calls in dlclose (#197932)
-- enable transliteration support in all locales (#196713)
-- disallow RTLD_GLOBAL flag for dlmopen in secondary namespaces (#197462)
-- PI mutex support
-
-* Tue Jul 10 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-13
-- DT_GNU_HASH support
-
-* Fri Jun 30 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-12
-- buildrequire gettext
-- enable fstatat64/newfstatat syscalls even on ppc*/s390*/ia64 (#196494)
-- fix out of memory behavior in gettext (#194321)
-- fix regex on multi-byte non-UTF-8 charsets (#193873)
-- minor NIS+ fixes (#190803)
-- don't use cancellable calls in posix_spawn* and only set{u,g}id
-  current thread if requested (#193631)
-
-* Wed May 31 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-11
-- don't exit from nscd -i <database> before the database is
-  actually invalidated, add locking to prune_cache (#191464)
-- build glibc-devel.i386 static libraries with
-  -mno-tls-direct-seg-refs -DNO_TLS_DIRECT_SEG_REFS
-- RFC3542 support (advanced API for IPv6; #191001, BZ##2693)
-
-* Wed May 24 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-10
-- on i686 make glibc owner of /lib/i686 directory (#192597)
-- search parent NIS+ domains (#190803)
-
-* Sun May 21 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-9
-- update from CVS
-  - big NIS+ changes
-
-* Fri May 19 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-8
-- update from CVS
-  - fix nss_compat when SETENT_BATCH_READ=TRUE is in /etc/default/nss
-  - fix RFC3484 precedence table for site-local and ULA addresses (#188364)
-  - fix a sunrpc memory leak
-
-* Thu May 11 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-7
-- update from CVS
-  - fix tcgetattr (#177965)
-  - fix <sys/queue.h> (#191264)
-
-* Fri May  5 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-6
-- update from CVS
-- rebuilt using fixed rpm
-
-* Fri May  5 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-5
-- update from CVS
-  - some NIS+ fixes
-  - allow overriding rfc3484 address sorting tables for getaddrinfo
-    through /etc/gai.conf (sample config file included in %%doc directory)
-
-* Mon May  1 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-4
-- update from CVS
-  - SETENT_BATCH_READ /etc/default/nss option for speeding up
-    some usages of NIS+ (#188246)
-  - move debug state change notification (#179208)
-  - fix ldd script if one of the dynamic linkers is not installed (#190259)
-
-* Thu Apr 27 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-3
-- update from CVS
-  - fix a typo in nscd.conf (#190085)
-  - fix handling of SIGHUP in nscd when some caches are disabled (#189978)
-  - make nscd paranoia mode working with non-root server-user (#189779)
-
-* Wed Apr 26 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-2
-- update from CVS
-  - fix getaddrinfo (#190002)
-  - add auto-propagate nscd.conf options (#177154)
-  - fix nscd auditing (#169148)
-
-* Tue Apr 25 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-1
-- update from CVS
-
-* Mon Apr 24 2006 Jakub Jelinek <jakub@redhat.com> 2.4-6
-- update from CVS
-  - NIS+ fixes
-  - don't segfault on too large argp key values (#189545)
-  - getaddrinfo fixes for RFC3484 (#188364)
-
-* Tue Mar 28 2006 Jakub Jelinek <jakub@redhat.com> 2.4-5
-- update from CVS
-  - pshared robust mutex support
-  - fix btowc and bwtoc in C++ (#186410)
-  - fix NIS+ (#186592)
-  - don't declare __wcsto*l_internal for non-GCC or if not -O1+ (#185667)
-- don't mention nscd failures on 2.0 kernels (#185335)
-
-* Tue Mar  7 2006 Roland McGrath <roland@redhat.com> 2.4-4
-- back up %%{ix86} gdb conflicts to < 6.3.0.0-1.111
-
-* Tue Mar  7 2006 Jakub Jelinek <jakub@redhat.com> 2.4-3
-- really fix rintl on ppc64
-
-* Tue Mar  7 2006 Jakub Jelinek <jakub@redhat.com> 2.4-2
-- accurate unwind info for lowlevellock.h stubs on %%{ix86}
-- fix ppc/ppc64 ceill, floorl, rintl, roundl and truncl (BZ#2423)
-
-* Mon Mar  6 2006 Jakub Jelinek <jakub@redhat.com> 2.4-1
-- update from CVS
-  - glibc 2.4 release
-
-* Mon Mar  6 2006 Jakub Jelinek <jakub@redhat.com> 2.3.91-2
-- update from CVS
-  - fix sYSMALLOc for MALLOC_ALIGNMENT > 2 * SIZE_SZ (#183895)
-  - revert ppc32 malloc alignment patch, it breaks malloc_set_state
-    and needs some further thoughts and time (#183894)
-- provide accurate unwind info for lowlevellock.h stubs on x86_64
-
-* Thu Mar  2 2006 Jakub Jelinek <jakub@redhat.com> 2.3.91-1
-- update from CVS
-  - fixes for various arches
-- ensure malloc returns pointers aligned to at least
-  MIN (2 * sizeof (size_t), __alignof__ (long double))
-  (only on ppc32 this has not been the case lately with addition
-   of 128-bit long double, #182742)
-
-* Wed Mar  1 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-39
-- update from CVS
-
-* Fri Feb 17 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-38
-- update from CVS
-  - robust mutexes rewrite
-
-* Mon Feb 13 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-37
-- update from CVS
-  - *at fixes
-  - unshare syscall wrapper
-
-* Sat Feb  4 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-36
-- update from CVS
-  - fix frequency setting for ITIMER_PROF (#179938, BZ#2268)
-  - fix powerpc inline fegetround ()
-  - fix nptl_db (#179946)
-
-* Fri Feb  3 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-35
-- update from CVS
-  - handle futimesat (fd, NULL, tvp) as futimes (fd, tvp)
-- fix <stdlib.h> q{e,f,g}cvt{,_r} for -mlong-double-64
-
-* Thu Feb  2 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-34
-- fix <math.h> with C++ and -mlong-double-64 (#179742)
-- add nexttowardl redirect for -mlong-double-64
-
-* Thu Feb  2 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-33
-- update from CVS
-  - long double support fixes
-
-* Wed Feb  1 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-32
-- update from CVS
-  - 128-bit long double fixes for ppc{,64}, s390{,x} and sparc{,v9},
-    alpha 128-bit long double support
-- add inotify syscall numbers to the override <asm/unistd.h> headers
-  (#179366)
-
-* Mon Jan 30 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-31
-- update from CVS
-  - 128-bit long double on ppc, ppc64, s390, s390x and sparc{,v9}
-- add some new syscall numbers to the override <asm/unistd.h>
-  headers
-
-* Mon Jan  9 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-30
-- update from CVS
-  - <pthread.h> initializer fixes for -std=c{8,9}9 on 32-bit
-    arches
-- avoid writable .rodata (#177121)
-
-* Fri Jan  6 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-29
-- update from CVS
-  - make pthread_mutex_t an unnamed union again, as it affects
-    libstdc++ ABI mangling
-
-* Fri Jan  6 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-28
-- update from CVS
-  - make aio_suspend interruptible by signals (#171968)
-
-* Fri Jan  6 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-27
-- only rely on d_type in 32-bit getdents on s390 for 2.6.11+
-
-* Wed Jan  4 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-26
-- update from CVS
-  - for newly linked lio_listio* callers, send per request
-    notifications (#170116)
-  - fixup nscd -S option removal changes (#176860)
-  - remove nonnull attribute from ctermid (#176753)
-  - fix PTHREAD_*_INITIALIZER{,_NP} on 64-bit arches
-  - SPARC NPTL support for pre-v9 CPUs
-- drop support for 2.4.xx and < 2.6.9 kernels
-
-* Mon Jan  2 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-25
-- update from CVS
-  - s390{,x} and sparc{,64} pointer mangling fixes
-- install a sanitized LinuxThreads <bits/libc-lock.h>
-
-* Mon Jan  2 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-24
-- update from CVS
-  - nscd audit changes (#174422)
-  - ppc{32,64} vDSO support and ppc32 hp-timing
-
-* Tue Dec 27 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-23
-- update from CVS
-  - robust mutexes
-- fix transliteration segfaults (#176573, #176583)
-- ignore prelink temporaries in ldconfig (#176570)
-
-* Wed Dec 21 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-22
-- update from CVS
-  - minor fts fixes
-- revert broken _Pragma () workaround
-- fix ldconfig on bi-arch architectures (#176316)
-
-* Tue Dec 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-21
-- update from CVS
-  - fix pointer (de)mangling in gconv_cache.c
-
-* Tue Dec 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-20
-- update from CVS
-  - time ((void *) 1) should segfault, not return -EFAULT (#174856, BZ#1952)
-  - fix errlist generation
-- update ulps for GCC 4.1 on IA-64
-
-* Mon Dec 19 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-19
-- update from CVS
-  - sysdeps/generic reorg
-  - setjmp/longjmp jump pointer mangling
-- rebuilt with GCC 4.1-RH prerelease, worked around broken _Pragma ()
-  handling in it
-- remove glibc-profile subpackage
-- use non-PLT calls for malloc/free/realloc/memalign invocations in
-  mtrace and mcheck hooks (#175261)
-- setjmp/longjmp jump pointer mangling on ppc{,64}/ia64/s390{,x}
-
-* Sat Nov 19 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-18
-- update from CVS
-  - change <sys/stat.h> for broken apps that #define const /**/,
-    handle non-GCC compilers
-  - fix ppc{32,64} strncmp (BZ#1877, #173643, IT#83510)
-  - provide shmatt_t typedef in ia64 <sys/shm.h (#173680)
-  - support 2nd arg to futimesat being NULL (#173581)
-
-* Wed Nov 16 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-17
-- update from CVS
-  - fix <sys/stat.h> in C++
-  - {fstat,fchown,rename,unlink}at fixes
-  - epoll_wait is now a cancellation point
-
-* Tue Nov 15 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-16
-- update from CVS
-- make sure waitid syscall is used on ppc*/s390*
-
-* Thu Oct 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-15
-- update from CVS
-  - be permissive in %n check because of kernel bug #165351 (#171240)
-  - don't misalign stack in pthread_once on x86_64 (#170786, IT#81521)
-  - many locale fixes
-
-* Mon Oct 10 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-14
-- update from CVS
-  - fix malloc bug after fork introduced in the last update
-  - fix getent hosts IP for IPv4 IPs (#169831)
-
-* Mon Oct  3 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-13
-- update from CVS
-  - fix setuid etc. hangs if some thread exits during the call (#167766)
-  - fix innetgr memory leak (#169051)
-  - support > 2GB nscd log files (#168851)
-  - too many other changes to list here
-- include errno in nscd message if audit_open failed (#169148)
-
-* Mon Sep 12 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-12
-- update from CVS
-  - netgrp handling fixes (#167728)
-  - fix memory leak in setlocale (BZ#1318)
-  - fix hwcaps computation
-  - several regex portability improvements (#167019)
-  - hypotf fix
-  - fix *printf return code if underlying write fails (BZ#1146)
-  - PPC64 dl{,v}sym fixes for new ABI .opd symbols
-- fix calloc with MALLOC_PERTURB_ in environment on 64-bit architectures
-  (#166719)
-- source /etc/sysconfig/nscd (if it exists) in /etc/rc.d/init.d/nscd
-  (#167083)
-- add %%triggerin for tzdata to glibc-common, so that tzdata updates
-  update /etc/localtime and /var/spool/postfix/etc/localtime if they
-  exist (#167787)
-
-* Mon Aug 29 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-11
-- FUTEX_WAKE_OP support to speed up pthread_cond_signal
-
-* Wed Aug 24 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-10
-- update from CVS
-  - fix growing of nscd persistent database (BZ#1204)
-  - fix _FORTIFY_SOURCE mbstowcs and wcstombs if destination size
-    is known at compile time, but length argument is not
-
-* Mon Aug 22 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-9
-- update from CVS
-  - fix resolving over TCP (#161181, #165802)
-  - on ia64 don't abort on unhandled math function exception codes
-    (#165693)
-
-* Mon Aug  8 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-8
-- update from CVS
-  - nscd persistent database verifier (#164001)
-  - cleanup _FORTIFY_SOURCE bits/*.h headers (#165000)
-  - handle EINTR in sigwait properly
-- make sure poor man's stack guard randomization keeps first
-  byte 0 even on big-endian 32-bit arches
-- fix {elf,nptl}/tst-stackguard1
-- obsolete linuxthreads-devel in glibc-devel
-
-* Fri Jul 29 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-7
-- update from CVS
-- do some poor man's stack guard randomization even without
-  the costly --enable-stackguard-randomization
-- rebuilt with new GCC to make it use -msecure-plt on PPC32
-
-* Mon Jul 25 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-6
-- update from CVS
-  - fix execvp if PATH is not in environment and the call is going
-    to fail (BZ#1125)
-  - another bits/wchar2.h fix (#163990)
-
-* Fri Jul 22 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-5
-- update from CVS
-  - fix stubs.h generation
-- don't use _G_va_list in bits/wchar2.h
-
-* Fri Jul 22 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-4
-- update from CVS
-  - make sure bits/wchar2.h header is installed
-  - fix __getgroups_chk return type
-
-* Thu Jul 21 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-3
-- update from CVS
-  - make sure nscd cmsg buffers aren't misaligned, handle EINTR from
-    poll when contacting nscd more gracefully
-  - remove malloc attribute from posix_memalign
-  - correctly size nscd buffer for grpcache key (#163538)
-  - fix atan2f
-  - fix error memory leaks
-  - some more _FORTIFY_SOURCE protection
-
-* Fri Jul  8 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-2
-- update from CVS
-  - ia64 stack protector support
-  - handle DNS referral results as server errors (#162625)
-  - ctan{,h}{,f,l} fixes (#160759)
-  - pass argc, argv and envp also to executable's *ni_array
-    functions (BZ#974)
-  - add ellipsis to clone prototype (#161593)
-  - fix glibc-profile (#162601)
-  - nss_compat fixes
-- use sysdeps/generic version of <bits/stdio-lock.h> in installed
-  headers instead of NPTL version (#162634)
-
-* Mon Jun 27 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-1
-- update from CVS
-  - stack protector support
-  - fix xdr_{,u_}{longlong_t,hyper} on 64-bit arches (#161583)
-- enable @GLIBC_2.4 symbols
-- remove linuxthreads
-
-* Mon Jun 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-11
-- update from CVS
-  - PPC32 -msecure-plt support
-  - support classes keyword in /etc/hesiod.conf (#150350)
-  - add RLIMIT_NICE and RLIMIT_RTPRIO to <sys/resources.h> (#157049)
-  - decrease number of .plt relocations in libc.so
-  - use -laudit in nscd (#159217)
-  - handle big amounts of networking interfaces in getifaddrs/if_nameindex
-    (#159399)
-  - fix pa_IN locale's am_pm (#158715, BZ#622)
-  - fix debugging of PIEs
-
-* Mon May 30 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-10
-- fix LD_ASSUME_KERNEL (since 2.3.5-8 GLRO(dl_osversion)
-  has been always overwritten with the version of currently
-  running kernel)
-- remove linuxthreads man pages other than those covered in
-  3p section, as 3p man pages are far better quality and describe
-  POSIX behaviour that NPTL implements (#159084)
-
-* Tue May 24 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-9
-- update from CVS
-  - increase bindresvport's LOWPORT to 512, apparently some
-    broken daemons don't think 0 .. 511 ports are reserved
-
-* Mon May 23 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-8
-- update from CVS
-  - fix kernel version check in ld.so
-- fix sendfile{,64} prototypes (BZ#961)
-- try more ports in bindresvport if all 600..1023 are
-  used, don't use priviledged ports when talking to portmap
-  (#141773)
-
-* Fri May 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-7
-- update from CVS
-  - make regexec thread safe (BZ#934)
-- fix statically linked programs on i?86, x86_64, s390* and
-  sparc* (#158027)
-- fix IBM939 iconv module (BZ#955)
-
-* Wed May  4 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-6
-- update from CVS
-  - fix cancellation on i?86
-  - add call frame information to i?86 assembly
-
-* Tue May  3 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-5
-- update from CVS
-  - add some more UTF-8 locales (#156115)
-- clean up /lib64/tls instead of /lib/tls on x86-64, s390x and
-  ppc64 in glibc_post_upgrade (#156656)
-- fix posix_fallocate{,64} (#156289)
-
-* Thu Apr 28 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-4
-- update from CVS
-  - fix nscd cache pruning (#150748)
-
-* Wed Apr 27 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-3
-- update from CVS
-  - fix linuxthreads clocks
-- put xen libs into the glibc-2*.i686 package instead of a separate one
-- fix librt.so symlink in linuxthreads-devel
-- do not include linuxthreads-devel on %{auxarches},
-  just on the base architectures
-
-* Wed Apr 27 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-2
-- update from CVS
-  - with MALLOC_CHECK_=N N>0 (#153003)
-  - fix recursive dlclose (#154641)
-  - handle %z in strptime (#154804)
-  - automatically append /%{_lib}/obsolete/linuxthreads/
-    to standard library search path if LD_ASSUME_KERNEL=N N <= 2.4.19
-    or for glibc 2.0 binaries (or broken ones that don't use errno/h_errno
-    properly).  Warning: all those will stop working when LinuxThreads
-    is finally nuked, which is not very far away
-  - remove nonnull attribute from acct prototype (BZ#877)
-  - kernel CPU clocks support
-  - fix *scanf in locales with multi-byte decimal point
-
-* Wed Apr 27 2005 Roland McGrath <roland@redhat.com>
-- glibc-xen subpackage for i686
-
-* Fri Apr 15 2005 Roland McGrath <roland@redhat.com> 2.3.5-1
-- update from CVS
-  - fix execvp regression (BZ#851)
-  - ia64 libm updates
-  - sparc updates
-  - fix initstate{,_r}/strfry (#154504)
-  - grok PT_NOTE in vDSO for kernel version and extra hwcap dirs,
-    support "hwcap" keyword in ld.so.conf files
-
-* Tue Apr  4 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-21
-- update from CVS
-  - fix xdr_rmtcall_args on 64-bit arches (#151686)
-- fix <pthread.h> and <bits/libc-lock.h> with -std=c89 -fexceptions (#153774)
-
-* Mon Apr  4 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-20
-- move LinuxThreads libraries to /%{_lib}/obsolete/linuxthreads/
-  and NPTL libraries to /%{_lib}.  To run a program against LinuxThreads,
-  LD_ASSUME_KERNEL=2.4.xx LD_LIBRARY_PATH=/%{_lib}/obsolete/linuxthreads/
-  is now needed
-- bzip2 ChangeLog* files instead of gzipping them
-
-* Sat Apr  2 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-19
-- update from CVS
-  - fix nextafterl and several other libm routines on ia64
-  - fix initgroups (BZ#661)
-- kill nptl-devel subpackage, add linuxthreads-devel,
-  compile and link by default against NPTL and only with
-  -I/usr/include/linuxthreads -L/usr/%{_lib}/linuxthreads
-  against LinuxThreads
-- package /usr/lib/debug/%{_lib}/tls/i{5,6}86 symlinks in
-  i386 glibc-debuginfo
-- limit number of ChangeLog* files in glibc-common %%doc
-  to last 2.5 years of changes only to save space
-
-* Fri Mar 25 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-18
-- fix build on 64-bit arches with new GCC
-
-* Thu Mar 24 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-17
-- update from CVS
-  - fix LD_AUDIT in LinuxThreads ld.so
-  - fix calloc with M_PERTURB
-  - fix error handling in pthread_create with PTHREAD_EXPLICIT_SCHED
-    on ppc*/ia64/alpha/mips (BZ#801)
-  - fix a typo in WINDOWS-31J charmap (#151739)
-  - fix NIS ypprot_err (#151469)
-
-* Sun Mar 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-16
-- fix pread with -D_FILE_OFFSET_BITS=64 (#151573)
-
-* Sat Mar 19 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-15
-- update from CVS
-  - better fix for the dlclose bug (#145810, #150414)
-  - fix regex crash on case insensitive search in zh_CN locale
-    (#151215)
-  - fix malloc_trim (BZ#779)
-  - with -D_FORTIFY_SOURCE=*, avoid defining read and a bunch of others
-    as function-like macros, there are too many broken programs
-    out there
-- add %%dir %{_prefix}/%{_lib}/gconv to glibc's file list (#151372)
-
-* Sun Mar  6 2005 Roland McGrath <roland@redhat.com> 2.3.4-14
-- fix bits/socket2.h macro typos
-
-* Sat Mar  5 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-12
-- fix tst-chk{2,3}
-- fix up AS_NEEDED directive in /usr/%{_lib}/libc.so
-- BuildReq binutils >= 2.15.94.0.2-1 for AS_NEEDED, in
-  glibc-devel Conflict with binutils < 2.15.94.0.2-1
-
-* Thu Mar  3 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-11
-- update from CVS
-  - fix execvp (#149290)
-  - fix dlclose (#145810)
-  - clear padding in gconv-modules.cache (#146614, BZ#776)
-- rebuilt with GCC4
-- changed __GLIBC_MINOR__ for now back to 3
-- back out the newly added GLIBC_2.4 *_chk routines, instead
-  do the checking in macros
-
-* Sat Feb 12 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-10
-- hopefully fix interaction with prelink (#147655)
-
-* Fri Feb 11 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-9
-- update from CVS
-  - bi-arch <gnu/stubs.h> (BZ#715)
-
-* Fri Feb 11 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-8
-- update from CVS
-  - bi-arch <gnu/lib-names.h> (BZ#632)
-  - fix libdl on s390 and maybe other platforms
-  - fix initstate{,_r} (BZ#710)
-  - fix <gnu/stubs.h> generation (BZ#157)
-- define CMSPAR in bits/termios.h (#147533)
-
-* Tue Feb  8 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-7
-- update from CVS
-  - fix TLS handling in linuxthreads
-
-* Tue Feb  8 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-6
-- update from CVS
-  - ld.so auditing
-  - fix segfault if chrooted app attempts to dlopen a library
-    and no standard library directory exists at all (#147067, #144303)
-  - fix initgroups when nscd is running, but has group caching disabled
-    (#146588)
-  - fix pthread_key_{create,destroy} in LinuxThreads when pthread_create
-    has not been called yet (#146710)
-  - fix ppc64 swapcontext and setcontext (#146736, BZ#700)
-  - service nscd cosmetic fixes (#146776)
-  - fix IA-32 and x86-64 stack alignment in DSO constructors (#145689)
-  - fix zdump -v segfaults on x86-64 (#146210)
-  - avoid calling sigaction (SIGPIPE, ...) inside syslog (#146021, IT#56686)
-  - fix errno values for futimes (BZ#633)
-  - unconditionally include <features.h> in malloc.h (BZ#650)
-  - change regex \B handling to match old GNU regex as well as perl/grep's dfa
-    (from empty string inside of word to empty string not at a word boundary,
-     BZ#693)
-  - slightly optimize i686 TLS accesses, use direct TLS %gs access in sem_*
-    and allow building -mno-tls-direct-seg-refs glibc that is free of direct TLS
-    %gs access with negative offsets
-  - fix addseverity
-  - fix fmemopen
-  - fix rewinddir
-  - increase svc{tcp,unix}_create listen backlog
-
-* Thu Jan  6 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-5
-- update from CVS
-  - add some warn_unused_result marking
-  - make ftruncate available even for just -D_POSIX_C_SOURCE=200112L
-    (BZ#640)
-
-* Thu Jan  6 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-4
-- update from CVS
-  - fix IA-32 stack alignment for LinuxThreads thread functions
-    and functions passed to clone(2) directly
-  - fix ecvt{,_r} on denormals (#143279)
-  - fix __tls_get_addr typo
-  - fix rounding in IA-64 alarm (#143710)
-  - don't reinitialize __environ in __libc_start_main, so that
-    effects of setenv/putenv done in DSO initializers are preserved
-    (#144037, IT#57403)
-  - fix fmemopen
-  - fix vDSO l_map_end and l_text_end values
-  - IA64 libm update (#142494)
-- fix ppc rint/ceil etc. (BZ#602)
-
-* Tue Dec 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.4-3
-- rebuilt
-
-* Mon Dec 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.4-2
-- work around rpm bug some more, this time by copying
-  iconvconfig to iconvconfig.%%{_target_cpu}.
-
-* Mon Dec 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.4-1
-- update from CVS
-  - glibc 2.3.4 release
-  - add -o and --nostdlib options to iconvconfig
-- if /sbin/ldconfig doesn't exist when running
-  glibc_post_upgrade.%%{_target_cpu}, just don't attempt to run it.
-  This can happen during first install of bi-arch glibc and the
-  other arch glibc's %post wil run /sbin/ldconfig (#143326)
-- use -o and --nostdlib options to create all needed
-  gconv-modules.cache files on bi-arch setups
-
-* Sun Dec 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-99
-- rebuilt
-
-* Sat Dec 18 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-98
-- add .%%{_target_cpu} to glibc_post_upgrade, only run telinit u
-  if /sbin/init is the same ELF class and machine as
-  glibc_post_upgrade.%%{_target_cpu} and similarly with
-  condrestarting sshd (#143046)
-
-* Fri Dec 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-97
-- update from CVS
-  - fix ppc64 getcontext and swapcontext (BZ#610)
-  - sparc/sparc64 fixes
-
-* Wed Dec 15 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-96
-- update from CVS
-  - fix i686 __USE_STRING_INLINES strncat
-  - make sure ppc/ppc64 maintain correct stack alignment
-    across clone
-
-* Wed Dec 15 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-95
-- export nis_domain_of_r from libnsl.so again which was
-  unintentionally lost
-
-* Wed Dec 15 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-93
-- update from CVS
-  - ppc/ppc64 clone without CLONE_THREAD getpid () adjustement
-  - fix MALLOC_CHECK_={1,2,3} for non-contiguous main arena
-    (BZ#457)
-  - fix sysconf (_POSIX_V6_*) for other ABI environments in
-    bi-arch setups
-- s390/s390x clone without CLONE_THREAD getpid () adjustement
-
-* Tue Dec 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-92
-- update from CVS
-- fix %{_prefix}/libexec/getconf filenames generation
-
-* Tue Dec 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-91
-- update from CVS
-  - double buffer size in getXXbyYY or getXXent on ERANGE
-    instead of adding BUFLEN (#142617)
-  - avoid busy loop in malloc if another thread is doing fork
-    (#142214)
-  - some more realloc corruption checks
-  - fix getconf _POSIX_V6_WIDTH_RESTRICTED_ENVS output,
-    tweak %{_prefix}/libexec/getconf/ filenames
-
-* Fri Dec 10 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-90
-- update from CVS
-  - regex speedups
-  - use | cat in ldd if running under bash3+ to allow running
-    it on binaries that are not through SELinux allowed to access
-    console or tty
-- add __NR_waitid defines for alpha and ia64
-
-* Wed Dec  8 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-89
-- update from CVS
-  - fix clone2 on ia64
-  - avoid tst-timer5 failing with linuxthreads implementation
-- if __libc_enable_secure, disallow mode != normal
-- change ldd script to imply -r when -u is used, properly
-  propagate return value and handle suid binaries
-
-* Tue Dec  7 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-88
-- update from CVS
-  - disregard LD_SHOW_AUXV and LD_DYNAMIC_WEAK if __libc_enable_secure
-  - disregard LD_DEBUG if __libc_enable_secure in normal mode
-    if /suid-debug doesn't exist
-  - fix fseekpos after ungetc
-  - avoid reading bytes before start of buffers in regex's
-    check_dst_limits_calc_pos_1 (#142060)
-  - make getpid () working with clone/clone2 without CLONE_THREAD
-    (so far on i386/x86_64/ia64 only)
-- move %{_prefix}/libexec/getconf/* to glibc from glibc-common
-- make %{_prefix}/libexec/getconf directory owned by glibc package
-
-* Fri Dec  3 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-87
-- update from CVS
-  - build libpthread_nonshared.a objects with -fPIC on s390/s390x
-  - fix mktime with < 0 or > 59 tm_sec on entry
-  - remove nonnull attribute for realpath
-  - add $(make-target-directory) for errlist-compat.c rule
-    (hopefully fix #141404)
-- add testcase for ungetc bug
-- define _POSIX_{,THREAD_}CPUTIME to 0 on all Linux arches
-
-* Tue Nov 30 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-86
-- update from CVS
-  - some posix_opt.h fixes
-- fix strtold use of unitialized memory (#141000)
-- some more bugfixes for bugs detected by valgrind
-- rebuilt with GCC >= 3.4.3-5 to avoid packed stack layout
-  on s390{,x} (#139678)
-
-* Fri Nov 26 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-85
-- update from CVS
-  - support -v specification in getconf
-  - fix sysconf (_SC_LFS64_CFLAGS) etc.
-  - avoid thread stack aliasing issues on EM64T (#140803)
-- move %{_prefix}/include/nptl headers from nptl-devel
-  to glibc-headers, so that even NPTL specific programs
-  can be built bi-arch without problems
-
-* Wed Nov 24 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-84
-- update from CVS
-  - fix memory leak in getaddrinfo if using nscd (#139559)
-  - handle large lines in /etc/hosts and /etc/networks
-    (#140378)
-  - add nonnull attributes to selected dirent.h and dlfcn.h
-    functions
-
-* Sun Nov 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-83
-- update from CVS
-  - add deprecated and/or nonnull attribute to some signal.h
-    functions
-  - speed up tzset () by only using stat instead of open/fstat
-    when calling tzset for the second and following time if
-    /etc/localtime has not changed
-- fix tgamma (BZ #552)
-
-* Sat Nov 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-82
-- update from CVS
-  - some malloc () checking
-  - libpthread.a object dependency cleanups (#115157)
-  - <bits/socket.h> fix for -std=c89 -pedantic-errors (#140132)
-
-* Fri Nov 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-81
-- don't use chunksize in <= 2 * SIZE_SZ free () checks
-
-* Fri Nov 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-80
-- update from CVS
-  - with -D_FORTIFY_SOURCE=2, prevent missing %N$ formats
-  - for -D_FORTIFY_SOURCE=2 and %n in writable format string,
-    issue special error message instead of using the buffer overflow
-    detected one
-  - speedup regex searching with REG_NOSUB, add RE_NO_SUB,
-    speedup searching with nested subexps (BZ #544)
-  - block SIGCANCEL in NPTL timer_* helper thread
-- further free () checking
-
-* Tue Nov 16 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-79
-- update from CVS
-- fix free () checking
-- move /etc/default/nss into glibc-common (hopefully fix #132392)
-
-* Mon Nov 15 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-78
-- update from CVS
-  - fix LD_DEBUG=statistics
-  - issue error message before aborting in __chk_fail ()
-- some more free () checking
-
-* Fri Nov 12 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-77
-- update from CVS
-  - speedup regex on palindromes (BZ #429)
-  - fix NPTL set{,e,re,res}[ug]id, so that even if making process
-    less priviledged all threads change their credentials successfully
-
-* Wed Nov 10 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-76
-- update from CVS
-  - fix regcomp crash (#138439)
-  - fix ftell{,o,o64} (#137885)
-  - robustification of nscd to cope with corrupt databases (#137140)
-  - fix NPTL with pthread_exit immediately after pthread_create (BZ #530)
-  - some regex optimizations
-
-* Tue Nov  2 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-75
-- update from CVS
-  - mktime cleanups (BZ #487, #473)
-  - unique comments in free(3) check error messages
-- adjust some x86_64 headers for -m32 (#129712)
-- object size checking support even with GCC-3.4.2-RH >= 3.4.2-8
-
-* Wed Oct 27 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-74
-- fix <netinet/udp.h> header
-- fix globfree (#137176)
-- fix exiting if there are dlmopened libraries in namespaces
-  other than main one not closed yet
-- export again _res_opcodes and __p_{class,type}_syms from
-  libresolv.so that were lost in -69
-
-* Thu Oct 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-73
-- remove setaltroot and key{_add,_request,ctl} also from Versions
-- back out _sys_errlist changes
-
-* Thu Oct 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-72
-- back out setaltroot and key{_add,_request,ctl} addition
-- fix severe x86-64 symbol versioning regressions that breaks
-  e.g. java binaries
-
-* Wed Oct 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-71
-- update from CVS
-  - fix minor catchsegv temp file handling vulnerability
-    (CAN-2004-0968, #136319)
-  - add 4 new errno codes
-  - setaltroot, key{_add,_request,ctl} syscalls on some arches
-  - export _dl_debug_state@GLIBC_PRIVATE from ld.so again for
-    gdb purpose
-  - use inet_pton to decide what is address and what is hostname
-    in getent (#135422)
-  - change dladdr/dladdr1, so that dli_saddr is the same kind
-    of value as dlsym/dlvsym return (makes difference on ia64/hppa only)
-  - fix catchsegv script so that it works with both 32-bit and 64-bit
-    programs on multi-arch platforms
-
-* Tue Oct 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-70
-- update from CVS
-- require newer selinux-policy (#135978)
-- add %%dir for /var/run/nscd and /var/db/nscd and %%ghost
-  files in it
-- conflict with gcc4 4.0.0-0.6 and earlier (needs __builtin_object_size)
-
-* Mon Oct 18 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-69
-- update from CVS
-  - object size checking support (-D_FORTIFY_SOURCE={1,2})
-
-* Thu Oct 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-68
-- update from CVS
-  - support for namespaces in the dynamic linker
-  - fix dlclose (BZ #77)
-  - libSegFault.so uses now backtrace() to work on IA-64, x86-64
-    and s390 (#130254)
-
-* Tue Oct 12 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-67
-- update from CVS
-  - use non-blocking sockets in resolver (#135234)
-  - reset pd->res options on thread exit, so that threads
-    reusing cached stacks get resolver state properly initialized
-    (BZ #434)
-
-* Wed Oct  6 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-66
-- update from CVS
-- avoid using perl in the spec file, buildrequire sed >= 3.95
-  (#127671)
-- export TIMEOUTFACTOR=16
-- fix _JMPBUF_CFA_UNWINDS_ADJ on s390{,x}
-
-* Tue Oct  5 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-65
-- update from CVS
-  - define _POSIX_THREAD_PROCESS_SHARED and _POSIX_CLOCK_SELECTION
-    to -1 in LinuxThreads
-  - define _POSIX_CPUTIME and _POSIX_THREAD_CPUTIME to 0
-    on i?86/ia64 and make sure sysconf (_SC_{,THREAD_}CPUTIME)
-    returns correct value
-- if _POSIX_CLOCK_SELECTION == -1 in nscd, still try
-  sysconf (_SC_CLOCK_SELECTION) and if it returns true,
-  dlopen libpthread.so and dlsym pthread_condattr_setclock
-- build nscd with -z relro and -z now
-
-* Mon Oct  4 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-64
-- update from CVS
-  - stop using __builtin_expect in assert and assert_perror
-    (#127606)
-  - try to avoid too much VA fragmentation with malloc
-    on flexmap layout (#118574)
-  - nscd robustification
-  - change valloc to use debugging hooks (#134385)
-- make glibc_post_upgrade more verbose on errors (Fergal Daly,
-  #125700)
-
-* Fri Oct  1 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-63
-- update from CVS
-  - fix __nscd_getgrouplist
-  - fix a typo in x86_64 pthread_mutex_timedwait fix
-
-* Fri Oct  1 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-62
-- update from CVS
-  - fix NPTL pthread_mutex_timedwait on i386/x86_64 (BZ #417)
-
-* Thu Sep 30 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-61
-- update from CVS
-  - some nscd fixes (#134193)
-  - cache initgroups in nscd (#132850)
-  - reread /etc/localtime in tzset () even if just mtime changed
-    (#133481)
-  - fix glob (#126460)
-  - another get_myaddress fix
-
-* Wed Sep 29 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-60
-- update from CVS
-  - fix get_myaddress (#133982)
-  - remove nonnull attribute from second utime argument (#133866)
-  - handle SIGSETXID the same way as SIGCANCEL in
-    sigaction/pthread_kill/sigwait/sigwaitinfo etc.
-  - add __extension__ to long long types in NPTL <bits/pthreadtypes.h>
-
-* Mon Sep 27 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-59
-- update from CVS
-  - fix BZ #151, #362, #381, #407
-  - fdim fix for +inf/+inf (BZ #376)
-
-* Sun Sep 26 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-58
-- update from CVS
-  - vasprintf fix (BZ #346)
-  - gettext locking (BZ #322)
-- change linuxthreads useldt.h inclusion login again, the last
-  one failed all linuxthreads FLOATING_STACKS tests
-
-* Sat Sep 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-57
-- update from CVS
-  - fix setuid in LD_ASSUME_KERNEL=2.2.5 libc (#133558)
-  - fix nis locking (#132204)
-  - RTLD_DEEPBIND support
-  - fix pthread_create bugs (BZ #401, #405)
-
-* Wed Sep 22 2004 Roland McGrath <roland@redhat.com> 2.3.3-56
-- migrated CVS to fedora-branch in sources.redhat.com glibc repository
-  - source tarballs renamed
-  - redhat/ moved to fedora/, some old cruft removed
-- update from trunk
-  - some __nonnull annotations
-
-* Wed Sep 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-55
-- update from CVS
-  - set{re,e,res}[ug]id now affect the whole process in NPTL
-  - return EAGAIN instead of ENOMEM when not enough memory
-    in pthread_create
-
-* Fri Sep 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-54
-- update from CVS
-  - nscd getaddrinfo caching
-
-* Tue Sep 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-53
-- restore temporarily old definition of __P()/__PMT()
-  for third party apps
-
-* Tue Sep 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-52
-- update from CVS
-  - nscd bi-arch fix
-  - remove all uses of __P()/__PMT() from glibc headers
-- update and reenable nscd SELinux patch
-- remove libnss1* and libnss*.so.1 compatibility NSS modules
-  on IA-32, SPARC and Alpha
-
-* Fri Sep 10 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-51
-- update from CVS
-  - disable one of the malloc double free checks for non-contiguous
-    arenas where it doesn't have to be true even for non-broken
-    apps
-
-* Thu Sep  9 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-50
-- update from CVS
-  - pwd/grp/host loops with nscd speed up by sharing the
-    nscd cache r/o with applications
-  - inexpensive double free check in free(3)
-  - make NPTL pthread.h initializers usable even from C++
-    (BZ #375)
-- use atomic instructions even in i386 nscd on i486+ CPUs
-  (conditionally)
-
-* Sat Sep  3 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-49
-- update from CVS
-- fix linuxthreads tst-cancel{[45],-static}
-
-* Fri Sep  3 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-48
-- update from CVS
-  - fix pthread_cond_destroy (BZ #342)
-  - fix fnmatch without FNM_NOESCAPE (BZ #361)
-  - fix ppc32 setcontext (BZ #357)
-- add NPTL support for i386 glibc (only if run on i486 or higher CPU)
-- add __NR_waitid defines for i386, x86_64 and sparc*
-
-* Tue Aug 31 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-47
-- update from CVS
-  - persistent nscd caching
-  - ppc64 32-bit atomicity fix
-  - fix x86-64 nptl-devel headers for -m32 compilation
-- %%ghost /etc/ld.so.cache (#130597)
-- edit /etc/ld.so.conf in glibc_post_upgrade if
-  include ld.so.conf.d/*.conf line is missing (#120588)
-- ugly hacks for the IA-64 /emul braindamage (#124996, #128267)
-
-* Sat Aug 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-46
-- update from CVS
-
-* Thu Aug 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-45
-- update from CVS
-  - fix nss_compat's initgroups handling (#130363)
-  - fix getaddrinfo ai_canonname setting
-
-* Thu Aug 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-44
-- update from CVS
-  - add ip6-dotint resolv.conf option, make
-    no-ip6-dotint the default
-- BuildPrereq libselinux-devel (#129946)
-- on ppc64, build without dot symbols
-
-* Thu Aug 12 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-43
-- update from CVS
-  - remove debugging printout (#129747)
-  - make <sys/shm.h> usable in C++ (IT#45148)
-- update RLIMIT_* constants in <bits/resource.h>, make
-  <sys/resource.h> POSIX compliant (#129740)
-
-* Wed Aug 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-42
-- fix last tzset () fixes, disable rereading of /etc/localtime
-  every time for now
-- really enable SELinux support for NSCD
-
-* Wed Aug 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-41
-- update from CVS
-  - fread_unlocked/fwrite_unlocked macro fixes (BZ #309, #316)
-  - tzset () fixes (BZ #154)
-- speed up pthread_rwlock_unlock on arches other than i386 and
-  x86_64 (#129455)
-- fix compilation with -ansi (resp. -std=c89 or -std=c99) and
-  -D_XOPEN_SOURCE=[56]00 but no -D_POSIX_SOURCE* or -D_POSIX_C_SOURCE*
-  (BZ #284)
-- add SELinux support for NSCD
-
-* Fri Aug  6 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-40
-- update from CVS
-  - change res_init to force all threads to re-initialize
-    resolver before they use it next time (#125712)
-  - various getaddrinfo and related fixes (BZ #295, #296)
-  - fix IBM{932,943} iconv modules (#128674)
-  - some nscd fixes (e.g. BZ #292)
-  - RFC 3678 support (Multicast Source Filters)
-- handle /lib/i686/librtkaio-* in i386 glibc_post_upgrade
-  the same as /lib/i686/librt-*
-
-* Fri Jul 23 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-39
-- update from CVS
-  - conformance related changes in headers
-- remove -finline-limit=2000 for GCC 3.4.x+
-
-* Thu Jul 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-38
-- update from CVS
-  - fix res_init leaks
-  - fix newlocale races
-  - fix ppc64 setjmp
-- fix strtold (BZ #274)
-
-* Fri Jul 16 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-37
-- update from CVS
-  - allow pthread_cancel in DSO destructors run at exit time
-- fix pow{f,,l} on IA-32 and powl on x86-64
-- allow PIEs on IA-32 to have main in a shared library they depend on
-
-* Mon Jul  5 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-36
-- s390* .plt slot reduction
-- fix pthread_rwlock_timedrdlock on x86_64
-
-* Wed Jun 30 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-35
-- tweak spec file for the libpthread-0.61.so -> libpthread-2.3.3.so
-  NPTL changes
-
-* Wed Jun 30 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-34
-- update from CVS
-  - if_nameindex using preferably netlink
-  - printf_parsemb initialization fix
-  - NPTL version is now the same as glibc version
-
-* Mon Jun 28 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-33
-- update from CVS
-  - reread resolv.conf for nscd --invalidate=hosts
-  - fix F_GETLK/F_SETLK/F_SETLKW constants on x86_64 for
-    -m32 -D_FILE_OFFSET_BITS=64 compilations
-  - avoid calling non-existing fcntl64 syscall on ppc64
-
-* Mon Jun 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-32
-- update from CVS
-  - FUTEX_CMP_REQUEUE support (fix pthread_cond_* deadlocks)
-  - fix backtrace in statically linked programs
-- rebuilt with GCC 3.4, adjusted ulps and i386 <bits/string.h>
-
-* Fri May 28 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-31
-- update from CVS
-- <bits/string2.h> and <bits/mathinline.h> changes for GCC 3.{2,4,5}+
-- make c_stubs buildable even with GCC 3.2.x (#123042)
-
-* Fri May 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-30
-- fix pthread_cond_wait on architectures other than IA-32 and
-  x86_64
-
-* Thu May 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-29
-- use lib64 instead of lib on ia64 if %%{_lib} is defined to lib64
-
-* Wed May 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-28
-- update from CVS
-  - FUTEX_REQUEUE fixes (#115349)
-  - SPARC GCC 3.4 build fix
-  - fix handling of undefined TLS symbols on IA32 (RELA only),
-    SPARC and SH
-  - regex translate fix
-  - speed up sprintf
-  - x86_64 makecontext alignment fix
-  - make POSIX sigpause the default sigpause, unless BSD sigpause
-    requested
-
-* Tue May 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-27
-- remove /lib64/tls/librtkaio-2.3.[23].so in glibc_post_upgrade
-  on x86-64, s390x and ppc64 instead of /lib/tls/librtkaio-2.3.[23].so
-- build mq_{send,receive} with -fexceptions
-
-* Fri May  7 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-26
-- update from CVS
-  - fix <tgmath.h>
-  - fix memory leaks in nis, getifaddrs, etc. caused by incorrect
-    use of realloc
-- remove /lib/{tls,i686}/librtkaio-2.3.[23].so in glibc_post_upgrade
-  and rerun ldconfig if needed, otherwise after glibc upgrade librt.so.1
-  might be a stale symlink
-
-* Wed May  5 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-25
-- update from CVS
-- disable FUTEX_REQUEUE (work around #115349)
-- mq for sparc/sparc64/ia64
-
-* Tue May  4 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-24
-- update from CVS
-  - define S_ISSOCK in -D_XOPEN_SOURCE=600 and S_I[FS]SOCK
-    plus F_[SG]ETOWN also in -D_XOPEN_SOURCE=500 (both
-    included already in XNS5)
-  - reorder dlopen checks, so that dlopening ET_REL objects
-    complains about != ET_DYN != ET_EXEC, not about phentsize
-    (#121606)
-  - fix strpbrk macro for GCC 3.4+ (BZ #130)
-  - fix <sys/sysctl.h> (BZ #140)
-  - sched_[gs]etaffinity documentation fix (BZ #131)
-  - fix sparc64 build (BZ #139)
-  - change linuxthreads back to use non-cancellable writes
-    to manager pipes etc.
-  - fix sem_timedwait return value in linuxthreads (BZ #133)
-  - ia64 unnecessary PLT relocs removal
-
-* Thu Apr 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-23
-- update from CVS
-  - fix *scanf
-  - fix shm_unlink, sem_unlink and mq_unlink errno values
-  - avoid memory leaks in error
-  - execstack fixes on s390
-
-* Mon Apr 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-22
-- update from CVS
-  - mq and timer fixes
-- rebuilt with binutils >= 2.15.90.0.3-2 to fix IA-64 statically
-  linked binaries
-- fix linuxthreads librt.so on s390{,x}, so it is no longer DT_TEXTREL
-
-* Sat Apr 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-21
-- disable rtkaio
-- update from CVS
-  - POSIX message passing support
-  - fixed SIGEV_THREAD support for POSIX timers
-  - fix free on non-malloced memory in syslog
-  - fix ffsl on some 64-bit arches
-  - fix sched_setaffinity on x86-64, ia64
-  - fix ppc64 umount
-  - NETID_AUTHORITATIVE, SERVICES_AUTHORITATIVE support
-  - various NIS speedups
-  - fix fwrite with > 2GB sizes on 64-bit arches
-  - fix pthread_getattr_np guardsize reporting in NPTL
-- report PLT relocations in ld.so and libc.so during the build
-
-* Fri Mar 25 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-20
-- update from CVS
-  - change NPTL PTHREAD_MUTEX_ADAPTIVE_NP mutexes to spin on SMP
-  - strtol speed optimization
-  - don't try to use certainly unimplemented syscalls on ppc64
-- kill -debug subpackage, move the libs to glibc-debuginfo{,-common}
-  into /usr/lib/debug/usr/%{_lib}/ directory
-- fix c_stubs with gcc 3.4
-- move all the up to 3 builds into %%build scriptlet and
-  leave only installation in the %%install scriptlet
-
-* Mon Mar 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-19
-- update from CVS
-  - affinity API changes
-
-* Thu Mar 18 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-18
-- update from CVS
-  - fix ia64 iopl (#118591)
-  - add support for /etc/ld.so.conf.d/*.conf
-  - fix x86-64 LD_DEBUG=statistics
-- fix hwcap handling when using ld.so.cache (#118518)
-
-* Mon Mar 15 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-17
-- update from CVS
-  - implement non-_l function on top of _l functions
-
-* Thu Mar 11 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-16
-- update from CVS
-- fix s390{,x} TLS handling
-
-* Wed Mar 10 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-15
-- update from CVS
-  - special section for compatibility code
-  - make getpid () work even in vfork () child
-- configure with --enable-bind-now to avoid lazy binding in ld.so
-  and libc.so
-
-* Fri Mar  5 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-14
-- update from CVS
-  - fix iconv -c (#117021)
-  - fix PIEs on sparc/sparc64
-  - fix posix_fadvise on 64-bit architectures
-- add locale-archive as %%ghost file (#117014)
-
-* Mon Mar  1 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-13
-- update from CVS
-
-* Fri Feb 27 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-12
-- update from CVS
-
-* Fri Feb 27 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-11
-- update from CVS
-  - fix ld.so when vDSO is randomized
-
-* Fri Feb 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-10
-- update from CVS
-
-* Fri Feb 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-9
-- update from CVS
-
-* Tue Feb 10 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-8
-- update from CVS
-
-* Tue Jan 27 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-7
-- update from CVS
-  - dl_iterate_phdr extension to signal number of added/removed
-    libraries
-- fix PT_GNU_RELRO support on ppc* with prelinking
-
-* Fri Jan 23 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-6
-- rebuilt with fixed GCC on IA-64
-
-* Thu Jan 22 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-5
-- fix PT_GNU_RELRO support
-
-* Wed Jan 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-4
-- update from CVS
-  - some further regex speedups
-  - fix re.translate handling in regex (#112869)
-  - change regfree to match old regex behaviour (what is freed
-    and clearing of freed pointers)
-  - fix accesses to unitialized memory in regex (#113507, #113425,
-    #113421)
-  - PT_GNU_RELRO support
-
-* Tue Dec 30 2003 Jakub Jelinek <jakub@redhat.com> 2.3.3-3
-- update from CVS
-  - fix pmap_set fd and memory leak (#112726)
-- fix backreference handling in regex
-- rebuilt under glibc without the above bug to fix
-  libc.so linker script (#112738)
-
-* Mon Dec 29 2003 Jakub Jelinek <jakub@redhat.com> 2.3.3-2
-- update from CVS
-  - faster getpid () in NPTL builds
-  - fix to make pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, )
-    really disable cancellation (#112512)
-  - more regex fixes and speedups
-  - fix nextafter*/nexttoward*
-  - handle 6th syscall(3) argument on AMD64
-  - handle memalign/posix_memalign in mtrace
-  - fix linuxthreads memory leak (#112208)
-  - remove throw () from cancellation points in linuxthreads (#112602)
-  - fix NPTL unregister_atfork
-  - fix unwinding through alternate signal stacks
-
-* Mon Dec  1 2003 Jakub Jelinek <jakub@redhat.com> 2.3.3-1
-- update from CVS
-  - 2.3.3 release
-  - lots of regex fixes and speedups (#110401)
-  - fix atan2
-  - fix pshared condvars in NPTL
-  - fix pthread_attr_destroy for attributes created with
-    pthread_attr_init@GLIBC_2.0
-- for the time being, include both nb_NO* and no_NO* as locales
-  so that the distribution can catch up with the no_NO->nb_NO
-  transition
-- add BuildPrereq texinfo (#110252)
-
-* Tue Nov 18 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-102
-- update from CVS
-  - fix getifaddrs (CAN-2003-0859)
-  - fix ftw fd leak
-  - fix linuxthreads sigaction (#108634)
-  - fix glibc 2.0 stdio compatibility
-  - fix uselocale (LC_GLOBAL_LOCALE)
-  - speed up stdio locking in non-threaded programs on IA-32
-  - try to maintain correct order of cleanups between those
-    registered with __attribute__((cleanup))
-    and with LinuxThreads style pthread_cleanup_push/pop (#108631)
-  - fix segfault in regex (#109606)
-  - fix RE_ICASE multi-byte handling in regex
-  - fix pthread_exit in libpthread.a (#109790)
-  - FTW_ACTIONRETVAL support
-  - lots of regex fixes and speedups
-  - fix ceill/floorl on AMD64
-
-* Mon Oct 27 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-101
-- update from CVS
-  - fix ld.so --verify (and ldd)
-
-* Mon Oct 27 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-100
-- update from CVS
-  - fix sprof (#103727)
-  - avoid infinite loops in {,f}statvfs{,64} with hosed mounts file
-  - prevent dlopening of executables
-  - fix glob with GLOB_BRACE and without GLOB_NOESCAPE
-  - fix locale printing of word values on 64-bit big-endian arches
-    (#107846)
-  - fix getnameinfo and getaddrinfo with reverse IPv6 lookups
-    (#101261)
-
-* Wed Oct 22 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-99
-- update from CVS
-  - dl_iterate_phdr in libc.a on arches other than IA-64
-  - LD_DEBUG=statistics prints number of relative relocations
-  - fix hwcap computation
-- NPTL is now part of upstream glibc CVS
-- include {st,xh,zu}_ZA{,.UTF-8} locales
-
-* Sat Oct  4 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-98
-- update from CVS
-  - fix close, pause and fsync (#105348)
-  - fix pthread_once on IA-32
-- implement backtrace () on IA-64, handle -fomit-frame-pointer
-  in AMD64 backtrace () (#90402)
-
-* Tue Sep 30 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-97
-- update from CVS
-  - fix <sys/sysmacros.h> with C++ or -ansi or -pedantic C
-  - fix mknod/ustat return value when given bogus device number (#105768)
-
-* Fri Sep 26 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-96
-- rebuilt
-
-* Fri Sep 26 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-95
-- fix IA-64 getcontext
-
-* Thu Sep 25 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-94
-- update from CVS
-- fix syslog with non-C non-en_* locales (#61296, #104979)
-- filter GLIBC_PRIVATE symbols from glibc provides
-- fix NIS+
-
-* Thu Sep 25 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-93
-- update from CVS
-- assume 2.4.21 kernel features on RHEL/ppc*, so that
-  {make,set,get,swap}context works
-- backout execstack support for RHEL
-- build rtkaio on amd64 too
-
-* Wed Sep 24 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-92
-- update from CVS
-  - execstack/noexecstack support
-  - build nscd as PIE
-- move __libc_stack_end back to @GLIBC_2.1
-- build against elfutils >= 0.86 to fix stripping on s390x
-
-* Mon Sep 22 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-91
-- rebuilt
-
-* Mon Sep 22 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-90
-- update from CVS
-  - NPTL locking change (#102682)
-- don't jump around lock on amd64
-
-* Thu Sep 18 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-89
-- fix open_memstream/syslog (#104661)
-
-* Thu Sep 18 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-88
-- update from CVS
-  - retrieve affinity in pthread_getattr_np
-  - fix pthread_attr_[gs]etaffinity_np
-  - handle hex and octal in wordexp
-
-* Wed Sep 17 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-87
-- update from CVS
-  - truncate instead of round in utimes when utimes syscall is not available
-  - don't align stack in every glibc function unnecessarily on IA-32
-  - make sure threads have their stack 16 byte aligned on IA-32
-  - move sched_[sg]etaffinity to GLIBC_2.3.3 symbol version (#103231)
-  - fix pthread_getattr_np for the initial thread (#102683)
-  - avoid linuxthreads signal race (#104368)
-- ensure all gzip invocations are done with -n option
-
-* Fri Sep 12 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-86
-- update from CVS
-- avoid linking in libgcc_eh.a unnecessarily
-- change ssize_t back to long int on s390 -m31, unless
-  gcc 2.95.x is used
-
-* Wed Sep 10 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-85
-- update from CVS
-  - fix IA-64 memccpy (#104114)
-
-* Tue Sep  9 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-84
-- update from CVS
-  - undo broken amd64 signal context changes
-
-* Tue Sep  9 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-83
-- update from CVS
-- change *nlink_t, *ssize_t and *intptr_t types on s390 -m31 to
-  {unsigned,} int
-- change *u_quad_t, *quad_t, *qaddr_t, *dev_t, *ino64_t, *loff_t,
-  *off64_t, *rlim64_t, *blkcnt64_t, *fsblkcnt64_t, *fsfilcnt64_t
-  on 64-bit arches from {unsigned,} long long int {,*} to
-  {unsigned,} long int {,*} to restore binary compatibility
-  for C++ functions using these types as arguments
-
-* Sun Sep  7 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-82
-- rebuilt
-
-* Sat Sep  6 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-81
-- update from CVS
-  - fix tc[gs]etattr/cf[gs]et[io]speed on ppc (#102732)
-  - libio fixes
-
-* Thu Sep  4 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-80
-- update from CVS
-  - fix IA-64 cancellation when mixing __attribute__((cleanup ()))
-    and old-style pthread_cleanup_push cleanups
-
-* Tue Sep  2 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-79
-- updated from CVS
-  - lots of cancellation fixes
-  - fix posix_fadvise* on ppc32
-  - TLS layout fix
-  - optimize stdio cleanups (#103354)
-  - sparcv9 NPTL
-  - include sigset, sighold, sigrelse, sigpause and sigignore prototypes
-    in signal.h even if -D_XOPEN_SOURCE_EXTENDED (#103269)
-  - fix svc_getreqset on 64-bit big-endian arches
-  - return ENOSYS in linuxthreads pthread_barrierattr_setpshared for
-    PTHREAD_PROCESS_SHARED
-  - add pthread_cond_timedwait stubs to libc.so (#102709)
-- split glibc-devel into glibc-devel and glibc-headers to ensure
-  amd64 /usr/include always wins on amd64/i386 bi-arch installs
-- increase PTHREAD_STACK_MIN on alpha, ia64 and sparc*
-- get rid of __syscall_* prototypes and stubs in sysdeps/unix/sysv/linux
-- run make check also with linuxthreads (on IA-32 non-FLOATING_STACKS)
-  ld.so and NPTL (on IA-32 also FLOATING_STACKS linuxthreads) libraries
-  and tests
-
-* Tue Aug 25 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-78
-- include dl-osinfo.h only in glibc-debuginfo-2*.rpm, not
-  in glibc-debuginfo-common*
-
-* Mon Aug 25 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-77
-- update from CVS
-  - fix glibc 2.0 libio compatibility (#101385)
-  - fix ldconfig with /usr/lib/lib*.so symlinks (#102853)
-  - fix assert.h (#102916, #103017)
-  - make ld.so.cache identical between IA-32 and AMD64 (#102887)
-  - fix static linking of large IA-64 binaries (#102586)
-- avoid using floating point regs in lazy binding code on ppc64 (#102763)
-
-* Fri Aug 22 2003 Roland McGrath <roland@redhat.com> 2.3.2-76
-- add td_thr_tls_get_addr changes missed in initial nptl_db rewrite
-
-* Sun Aug 17 2003 Roland McGrath <roland@redhat.com> 2.3.2-74
-- nptl_db rewrite not yet in CVS
-
-* Thu Aug 14 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-72
-- update from CVS
-  - fix rtkaio aio_fsync{,64}
-  - update rtkaio for !BROKEN_THREAD_SIGNALS
-  - fix assert macro when used on pointers
-
-* Wed Aug 13 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-71
-- update from CVS
-
-* Tue Aug 12 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-70
-- update from CVS
-- disable CLONE_STOPPED for now until it is resolved
-- strip crt files
-- fix libio on arches with no < GLIBC_2.2 support (#102102, #102105)
-- fix glibc-debuginfo to include all nptl and nptl_db sources
-
-* Thu Aug  7 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-69
-- update from CVS
-  - fix pthread_create@GLIBC_2.0 (#101767)
-- __ASSUME_CLONE_STOPPED on all arches but s390* in RHEL
-
-* Sun Aug  3 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-68
-- update from CVS
-  - only use CLONE_STOPPED if kernel supports it, fix setting of thread
-    explicit scheduling (#101457)
-
-* Fri Aug  1 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-67
-- update from CVS
-  - fix utimes and futimes if kernel doesn't support utimes syscall
-  - fix s390 ssize_t type
-  - fix dlerror when called before any dlopen/dlsym
-  - update IA-64 bits/sigcontext.h (#101344)
-  - various warning fixes
-  - fix pthread.h comment typos (#101363)
-
-* Wed Jul 30 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-66
-- update from CVS
-- fix dlopen of libraries using TLS IE/LE models
-
-* Tue Jul 29 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-65
-- update from CVS
-  - fix timer_create
-  - use __extension__ before long long typedefs in <bits/types.h> (#100718)
-
-* Mon Jul 28 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-64
-- update from CVS
-  - fix wcpncpy (#99462)
-  - export _res@GLIBC_2.0 even from NPTL libc.so (__res_state ()
-    unlike __errno_location () or __h_errno_location () was introduced
-    in glibc 2.2)
-  - fix zic bug on 64-bit platforms
-  - some TLS handling fixes
-  - make ldconfig look into alternate ABI dirs by default (#99402)
-- move %{_datadir}/zoneinfo to tzdata package, so that it can be
-  errataed separately from glibc
-- new add-on - rtkaio
-- prereq libgcc, as glibc now relies on libgcc_s.so.1 for pthread_cancel
-
-* Tue Jul 15 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-63
-- fix thread cancellation on ppc64
-
-* Sat Jul 12 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-62
-- update from CVS
-  - fix thread cancellation on ppc32, s390 and s390x
-
-* Thu Jul 10 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-61
-- update from CVS
-  - build libc_nonshared.a with -fPIC instead of -fpic
-- fix ppc64 PIE support
-- add cfi directives to NPTL sysdep-cancel.h on ppc/ppc64/s390/s390x
-
-* Tue Jul  8 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-60
-- update from CVS
-
-* Thu Jul  3 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-59
-- update from CVS
-- on IA-64 use different symbols for cancellation portion of syscall
-  handlers to make gdb happier
-
-* Thu Jun 26 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-58
-- update from CVS
-  - nss_compat supporting LDAP etc.
-
-* Tue Jun 24 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-57
-- update from CVS
-
-* Thu Jun 19 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-56
-- fix condvars and semaphores in ppc* NPTL
-- fix test-skeleton.c reporting of timed-out tests (#91269)
-- increase timeouts for tests during make check
-
-* Wed Jun 18 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-55
-- make ldconfig default to both /lib+/usr/lib and /lib64+/usr/lib64
-  on bi-ABI architectures (#97557)
-- disable FUTEX_REQUEUE on ppc* temporarily
-
-* Wed Jun 18 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-54
-- update from CVS
-- fix glibc_post_upgrade on ppc
-
-* Tue Jun 17 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-53
-- update from CVS
-- fix localedef (#90659)
-- tweak linuxthreads for librt cancellation
-
-* Mon Jun 16 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-52
-- update from CVS
-
-* Thu Jun 12 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-51
-- update from CVS
-- fix <gnu/stubs.h> (#97169)
-
-* Wed Jun 11 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-50
-- update from CVS
-
-* Tue Jun 10 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-49
-- update from CVS
-  - fix pthread_cond_signal on IA-32 (#92080, #92253)
-  - fix setegid (#91567)
-- don't prelink -R libc.so on any architecture, it prohibits
-  address randomization
-
-* Fri Jun  5 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-48
-- update from CVS
-  - fix IA-64 NPTL build
-
-* Thu Jun  5 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-47
-- update from CVS
-- PT_GNU_STACK segment in binaries/executables and .note.GNU-stack
-  section in *.[oa]
-
-* Sun Jun  1 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-46
-- update from CVS
-- enable NPTL on AMD64
-- avoid using trampolines in localedef
-
-* Fri May 29 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-45
-- enable NPTL on IA-64
-
-* Fri May 29 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-44
-- update from CVS
-- enable NPTL on s390 and s390x
-- make __init_array_start etc. symbols in elf-init.oS hidden undefined
-
-* Thu May 29 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-43
-- update from CVS
-
-* Fri May 23 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-42
-- update from CVS
-
-* Tue May 20 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-41
-- update from CVS
-- use NPTL libs if uname -r contains nptl substring or is >= 2.5.69
-  or set_tid_address syscall is available instead of checking
-  AT_SYSINFO dynamic tag
-
-* Thu May 15 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-40
-- update from CVS
-
-* Wed May 14 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-39
-- update from CVS
-  - fix for prelinking of libraries with no dependencies
-
-* Tue May 13 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-38
-- update from CVS
-- enable NPTL on ppc and ppc64
-
-* Tue May  6 2003 Matt Wilson <msw@redhat.com> 2.3.2-37
-- rebuild
-
-* Sun May  4 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-36
-- update from CVS
-
-* Sat May  3 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-35
-- update from CVS
-  - make -jN build fixes
-
-* Fri May  2 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-34
-- update from CVS
-- avoid using trampolines in iconvconfig for now
-
-* Sat Apr 26 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-33
-- update from CVS
-
-* Fri Apr 25 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-32
-- update from CVS
-- more ppc TLS fixes
-
-* Wed Apr 23 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-31
-- update from CVS
-  - nscd fixes
-  - fix Bahrain spelling (#56298)
-  - fix Ukrainian collation (#83973)
-  - accept trailing spaces in /etc/ld.so.conf (#86032)
-  - perror fix (#85994)
-  - fix localedef (#88978)
-  - fix getifaddrs (#89026)
-  - fix strxfrm (#88409)
-- fix ppc TLS
-- fix getaddrinfo (#89448)
-- don't print warning about errno, h_errno or _res if
-  LD_ASSUME_KERNEL=2.4.1 or earlier
-
-* Tue Apr 15 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-30
-- update from CVS
-- fix prelink on ppc32
-- add TLS support on ppc32 and ppc64
-- make sure on -m64 arches all helper binaries are built with this
-  option
-
-* Mon Apr 14 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-29
-- update from CVS
-  - fix strxfrm (#88409)
-- use -m64 -mno-minimal-toc on ppc64
-- conflict with kernels < 2.4.20 on ppc64 and < 2.4.0 on x86_64
-- link glibc_post_upgrade against newly built libc.a
-
-* Sun Apr 13 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-28
-- update from CVS
-  - fix NPTL pthread_detach and already terminated, but not yet
-    joined thread (#88219)
-  - fix bug-regex4 testcase (#88118)
-  - reenable prelink support broken in 2.3.2-13
-  - fix register_printf_function (#88052)
-  - fix double free with fopen using ccs= (#88056)
-  - fix potential access below $esp in {set,swap}context (#88093)
-  - fix buffer underrun in gencat -H (#88099)
-  - avoid using unitialized variable in tst-tgmath (#88101)
-  - fix gammal (#88104)
-  - fix iconv -c
-  - fix xdr_string (PR libc/4999)
-  - fix /usr/lib/nptl/librt.so symlink
-  - avoid running NPTL cleanups twice in some cases
-  - unblock __pthread_signal_cancel in linuxthreads, so that
-    linuxthreads threaded programs work correctly if spawned
-    from NPTL threaded programs
-  - fix sysconf _SC_{NPROCESSORS_{CONF,ONLN},{,AV}PHYS_PAGES}
-- remove /lib/i686 directory before running ldconfig in glibc post
-  during i686 -> i386 glibc "upgrades" (#88456)
-
-* Wed Apr  2 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-22
-- update from CVS
-  - add pthread_atfork to libpthread.a
-
-* Tue Apr  1 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-21
-- update from CVS
-- make sure linuxthreads pthread_mutex_lock etc. is not a cancellation
-  point
-
-* Sat Mar 29 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-20
-- update from CVS
-- if kernel >= 2.4.1 doesn't support NPTL, fall back to
-  /lib/i686 libs on i686, not stright to /lib
-
-* Fri Mar 28 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-19
-- update from CVS
-  - timers fixes
-
-* Thu Mar 27 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-18
-- update from CVS
-- fix NPTL pthread_cond_timedwait
-- fix sysconf (_SC_MONOTONIC_CLOCK)
-- use /%%{_lib}/tls instead of /lib/tls on x86-64
-- add /%{_lib}/tls/librt*so* and /%{_lib}/i686/librt*so*
-- display content of .out files for all make check failures
-
-* Wed Mar 26 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-17
-- update from CVS
-  - kernel POSIX timers support
-
-* Sat Mar 22 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-16
-- update from CVS
-  - export __fork from glibc again
-- fix glibc-compat build in NPTL
-- fix c_stubs
-- fix some more atomic.h problems
-- don't check abi in glibc-compat libs
-
-* Fri Mar 21 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-15
-- update from CVS
-- build glibc-compat (for glibc 2.0 compatibility) and c_stubs add-ons
-- condrestart sshd in glibc_post_upgrade so that the user can
-  log in remotely and handle the rest (#86339)
-- fix a typo in glibc_post_upgrade on sparc
-
-* Tue Mar 18 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-14
-- update from CVS
-- change i686/athlon libc.so.6 base to 0x00e80000
-
-* Mon Mar 17 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-13
-- update from CVS
-  - hopefully last fix for condvar problems
-
-* Fri Mar 14 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-12
-- fix bits/syscall.h creation on x86-64
-
-* Thu Mar 13 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-11
-- update from CVS
-
-* Wed Mar 12 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-10
-- update from CVS
-
-* Tue Mar 11 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-9
-- update from CVS
-- fix glibc-debug description (#85111)
-- make librt.so a symlink again, not linker script
-
-* Tue Mar  4 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-8
-- update from CVS
-- remove the workarounds for broken software accessing GLIBC_PRIVATE
-  symbols
-
-* Mon Mar  3 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-7
-- update from CVS
-
-* Sun Mar  2 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-6
-- fix TLS IE/LE model handling in dlopened libraries
-  on TCB_AT_TP arches
-
-* Thu Feb 25 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-5
-- update from CVS
-
-* Tue Feb 25 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-4
-- update from CVS
-
-* Mon Feb 24 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-3
-- update from CVS
-- only warn about errno, h_errno or _res for binaries, never
-  libraries
-- rebuilt with gcc-3.2.2-4 to use direct %gs TLS access insn sequences
-
-* Sun Feb 23 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-2
-- update from CVS
-
-* Sat Feb 22 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-1
-- update from CVS
-
-* Thu Feb 20 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-51
-- update from CVS
-
-* Wed Feb 19 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-50
-- update from CVS
-
-* Wed Feb 19 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-49
-- update from CVS
-- remove nisplus and nis from the default nsswitch.conf (#67401, #9952)
-
-* Tue Feb 18 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-48
-- update from CVS
-
-* Sat Feb 15 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-47
-- update from CVS
-
-* Fri Feb 14 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-46
-- update from CVS
-  - pthread_cond* NPTL fixes, new NPTL testcases
-
-* Thu Feb 13 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-45
-- update from CVS
-- include also linuxthreads FLOATING_STACKS libs on i686 and athlon:
-  LD_ASSUME_KERNEL=2.2.5 to LD_ASSUME_KERNEL=2.4.0 is non-FLOATING_STACKS lt,
-  LD_ASSUME_KERNEL=2.4.1 to LD_ASSUME_KERNEL=2.4.19 is FLOATING_STACKS lt,
-  later is NPTL
-- enable TLS on alpha/alphaev6
-- add BuildPreReq: /usr/bin/readlink
-
-* Tue Feb 11 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-44
-- update from CVS
-  - pthread_once fix
-
-* Mon Feb 10 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-43
-- update from CVS
-- vfork fix on s390
-- rebuilt with binutils 2.13.90.0.18-5 so that accesses to errno
-  don't bind locally (#83325)
-
-* Thu Feb 06 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-42
-- update from CVS
-- fix pthread_create after vfork+exec in linuxthreads
-
-* Wed Feb 05 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-41
-- update from CVS
-
-* Thu Jan 30 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-40
-- update from CVS
-
-* Wed Jan 29 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-39
-- update from CVS
-- enable TLS on s390{,x} and sparc{,v9}
-
-* Fri Jan 17 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-38
-- update from CVS
-- initialize __environ in glibc_post_upgrade to empty array,
-  so that it is not NULL
-- compat symlink for s390x /lib/ld64.so.1
-- enable glibc-profile on x86-64
-- only include libNoVersion.so on IA-32, Alpha and Sparc 32-bit
-
-* Thu Jan 16 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-37
-- update from CVS
-  - nscd fixes, *scanf fix
-- fix %%nptlarches noarch build (#81909)
-- IA-64 TLS fixes
-
-* Tue Jan 14 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-36
-- update from CVS
-- rework -debuginfo subpackage, add -debuginfo-common
-  subpackage on IA-32, Alpha and Sparc (ie. auxiliary arches)
-- fix vfork in libc.a on PPC32, Alpha, Sparc
-- fix libio locks in linuxthreads libc.so if libpthread.so
-  is dlopened later (#81374)
-
-* Mon Jan 13 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-35
-- update from CVS
-  - dlclose bugfixes
-- fix NPTL libpthread.a
-- fix glibc_post_upgrade on several arches
-
-* Sat Jan 11 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-34
-- update from CVS
-- TLS support on IA-64
-
-* Wed Jan  8 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-33
-- fix vfork in linuxthreads (#81377, #81363)
-
-* Tue Jan  7 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-32
-- update from CVS
-- don't use TLS libs if kernel doesn't set AT_SYSINFO
-  (#80921, #81212)
-- add ntp_adjtime on alpha (#79996)
-- fix nptl_db (#81116)
-
-* Sun Jan  5 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-31
-- update from CVS
-- support all architectures again
-
-* Fri Jan  3 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-30
-- fix condvar compatibility wrappers
-- add ugly hack to use non-TLS libs if a binary is seen
-  to have errno, h_errno or _res symbols in .dynsym
-
-* Fri Jan  3 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-29
-- update from CVS
-  - fixes for new condvar
-
-* Thu Jan  2 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-28
-- new NPTL condvar implementation plus related linuxthreads
-  symbol versioning updates
-
-* Thu Jan  2 2003 Jakub Jelinek <jakub@redhat.com> 2.3.1-27
-- update from CVS
-- fix #include <sys/stat.h> with -D_BSD_SOURCE or without
-  feature set macros
-- make *sigaction, sigwait and raise the same between
-  -lpthread -lc and -lc -lpthread in linuxthreads builds
-
-* Tue Dec 31 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-26
-- fix dlclose
-
-* Sun Dec 29 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-25
-- enable sysenter by default for now
-- fix endless loop in ldconfig
-
-* Sat Dec 28 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-24
-- update from CVS
-
-* Fri Dec 27 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-23
-- update from CVS
-  - fix ptmalloc_init after clearenv (#80370)
-
-* Sun Dec 22 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-22
-- update from CVS
-- add IA-64 back
-- move TLS libraries from /lib/i686 to /lib/tls
-
-* Thu Dec 19 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-21
-- system(3) fix for linuxthreads
-- don't segfault in pthread_attr_init from libc.so
-- add cancellation tests from nptl to linuxthreads
-
-* Wed Dec 18 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-20
-- fix up lists of exported symbols + their versions
-  from the libraries
-
-* Wed Dec 18 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-19
-- fix --with-tls --enable-kernel=2.2.5 libc on IA-32
-
-* Wed Dec 18 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-18
-- update from CVS
-  - fix NPTL hanging mozilla
-  - initialize malloc in mALLOPt (fixes problems with squid, #79957)
-  - make linuxthreads work with dl_dynamic_weak 0
-  - clear dl_dynamic_weak everywhere
-
-* Tue Dec 17 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-17
-- update from CVS
-  - NPTL socket fixes, flockfile/ftrylockfile/funlockfile fix
-  - kill -debug sub-package, rename -debug-static to -debug
-  - clear dl_dynamic_weak for NPTL
-
-* Mon Dec 16 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-16
-- fix <bits/mathinline.h> and <bits/nan.h> for C++
-- automatically generate NPTL libpthread wrappers
-
-* Mon Dec 16 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-15
-- update from CVS
-  - all functions which need cancellation should now be cancellable
-    both in libpthread.so and libc.so
-  - removed @@GLIBC_2.3.2 cancellation wrappers
-
-* Fri Dec 13 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-14
-- update from CVS
-  - replace __libc_lock_needed@GOTOFF(%ebx) with
-    %gs:offsetof(tcbhead_t, multiple_threads)
-  - start of new NPTL cancellation wrappers
-
-* Thu Dec 12 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-13
-- update from CVS
-- use inline locks in malloc
-
-* Tue Dec 10 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-12
-- update from CVS
-  - support LD_ASSUME_KERNEL=2.2.5 in statically linked programs
-
-* Mon Dec  9 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-11
-- update from CVS
-- rebuilt with gcc-3.2.1-2
-
-* Fri Dec  6 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-10
-- update from CVS
-- non-nptl --with-tls --without-__thread FLOATING_STACKS libpthread
-  should work now
-- faster libc locking when using nptl
-- add OUTPUT_FORMAT to linker scripts
-- fix x86_64 sendfile (#79111)
-
-* Wed Dec  4 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-9
-- update from CVS
-  - RUSCII support (#78906)
-- for nptl builds add BuildRequires
-- fix byteswap.h for non-gcc (#77689)
-- add nptl-devel package
-
-* Tue Dec  3 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-8
-- update from CVS
-  - make --enable-kernel=2.2.5 --with-tls --without-__thread
-    ld.so load nptl and other --with-__thread libs
-- disable nptl by default for now
-
-* Wed Nov 27 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-7
-- update from CVS
-- restructured redhat/Makefile and spec, so that src.rpm contains
-  glibc-<date>.tar.bz2, glibc-redhat-<date>.tar.bz2 and glibc-redhat.patch
-- added nptl
-
-* Fri Nov  8 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-6
-- update from CVS
-  - even more regex fixes
-- run sed testsuite to check glibc regex
-
-* Thu Oct 24 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-5
-- fix LD_DEBUG=statistics and LD_TRACE_PRELINKING in programs
-  using libpthread.so.
-
-* Thu Oct 24 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-4
-- update from CVS
-  - fixed %a and %A in *printf (#75821)
-  - fix re_comp memory leaking (#76594)
-
-* Tue Oct 22 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-3
-- update from CVS
-  - some more regex fixes
-- fix libpthread.a (#76484)
-- fix locale-archive enlarging
-
-* Fri Oct 18 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-2
-- update from CVS
-  - don't need to use 128K of stacks for DNS lookups
-  - regex fixes
-  - updated timezone data e.g. for this year's Brasil DST
-    changes
-  - expand ${LIB} in RPATH/RUNPATH/dlopen filenames
-
-* Fri Oct 11 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-1
-- update to 2.3.1 final
-  - support really low thread stack sizes (#74073)
-- tzdata update
-
-* Wed Oct  9 2002 Jakub Jelinek <jakub@redhat.com> 2.3-2
-- update from CVS
-  - handle low stack limits
-  - move s390x into */lib64
-
-* Thu Oct  3 2002 Jakub Jelinek <jakub@redhat.com> 2.3-1
-- update to 2.3 final
-  - fix freopen on libstdc++ <= 2.96 stdin/stdout/stderr (#74800)
-
-* Sun Sep 29 2002 Jakub Jelinek <jakub@redhat.com> 2.2.94-3
-- don't prelink -r libc.so on ppc/x86-64/sparc*, it doesn't
-  speed things up, because they are neither REL arches, nor
-  ELF_MACHINE_REL_RELATIVE
-- fix sparc64 build
-
-* Sun Sep 29 2002 Jakub Jelinek <jakub@redhat.com> 2.2.94-2
-- update from CVS
-
-* Sat Sep 28 2002 Jakub Jelinek <jakub@redhat.com> 2.2.94-1
-- update from CVS
-- prelink on ppc and x86-64 too
-- don't remove ppc memset
-- instead of listing on which arches to remove glibc-compat
-  list where it should stay
-
-* Fri Sep  6 2002 Jakub Jelinek <jakub@redhat.com> 2.2.93-5
-- fix wcsmbs functions with invalid character sets (or malloc
-  failures)
-- make sure __ctype_b etc. compat vars are updated even if
-  they are copy relocs in the main program
-
-* Thu Sep  5 2002 Jakub Jelinek <jakub@redhat.com> 2.2.93-4
-- fix /lib/libnss1_dns.so.1 (missing __set_h_errno definition
-  leading to unresolved __set_h_errno symbol)
-
-* Wed Sep  4 2002 Jakub Jelinek <jakub@redhat.com> 2.2.93-3
-- security fix - increase dns-network.c MAXPACKET to at least
-  65536 to avoid buffer overrun. Likewise glibc-compat
-  dns-{host,network}.c.
-
-* Tue Sep  3 2002 Jakub Jelinek <jakub@redhat.com> 2.2.93-2
-- temporarily add back __ctype_b, __ctype_tolower and __ctype_toupper to
-  libc.a and export them as @@GLIBC_2.0 symbols, not @GLIBC_2.0
-  from libc.so - we have still lots of .a libraries referencing
-  __ctype_{b,tolower,toupper} out there...
-
-* Tue Sep  3 2002 Jakub Jelinek <jakub@redhat.com> 2.2.93-1
-- update from CVS
-  - 2.2.93 release
-  - use double instead of single indirection in isXXX macros
-  - per-locale wcsmbs conversion state
-
-* Sat Aug 31 2002 Jakub Jelinek <jakub@redhat.com> 2.2.92-2
-- update from CVS
-  - fix newlocale/duplocale/uselocale
-- disable profile on x86_64 for now
-
-* Sat Aug 31 2002 Jakub Jelinek <jakub@redhat.com> 2.2.92-1
-- update from CVS
-  - 2.2.92 release
-  - fix gettext after uselocale
-  - fix locales in statically linked threaded programs
-  - fix NSS
-
-* Thu Aug 29 2002 Jakub Jelinek <jakub@redhat.com> 2.2.91-1
-- update from CVS
-  - 2.2.91 release
-  - fix fd leaks in locale-archive reader (#72043)
-- handle EROFS in build-locale-archive gracefully (#71665)
-
-* Wed Aug 28 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-27
-- update from CVS
-  - fix re_match (#72312)
-- support more than 1024 threads
-
-* Fri Aug 23 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-26
-- update from CVS
-  - fix i386 build
-
-* Thu Aug 22 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-25
-- update from CVS
-  - fix locale-archive loading hang on some (non-primary) locales
-    (#72122, #71878)
-  - fix umount problems with locale-archives when /usr is a separate
-    partition (#72043)
-- add LICENSES file
-
-* Fri Aug 16 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-24
-- update from CVS
-  - only mmap up to 2MB of locale-archive on 32-bit machines
-    initially
-  - fix fseek past end + fread segfault with mmaped stdio
-- include <sys/debugreg.h> which is mistakenly not included
-  in glibc-devel on IA-32
-
-* Fri Aug 16 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-23
-- don't return normalized locale name in setlocale when using
-  locale-archive
-
-* Thu Aug 15 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-22
-- update from CVS
-  - optimize for primary system locale
-- localedef fixes (#71552, #67705)
-
-* Wed Aug 14 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-21
-- fix path to locale-archive in libc reader
-- build locale archive at glibc-common %post time
-- export __strtold_internal and __wcstold_internal on Alpha again
-- workaround some localedata problems
-
-* Tue Aug 13 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-20
-- update from CVS
-- patch out set_thread_area for now
-
-* Fri Aug  9 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-19
-- update from CVS
-- GB18030 patch from Yu Shao
-- applied Debian patch for getaddrinfo IPv4 vs. IPv6
-- fix regcomp (#71039)
-
-* Sun Aug  4 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-18
-- update from CVS
-- use /usr/sbin/prelink, not prelink (#70376)
-
-* Thu Jul 25 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-17
-- update from CVS
-
-* Thu Jul 25 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-16
-- update from CVS
-  - ungetc fix (#69586)
-  - fseek errno fix (#69589)
-  - change *etrlimit prototypes for C++ (#68588)
-- use --without-tls instead of --disable-tls
-
-* Thu Jul 11 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-15
-- set nscd user's shell to /sbin/nologin (#68369)
-- fix glibc-compat buffer overflows (security)
-- buildrequire prelink, don't build glibc's own copy of it (#67567)
-- update from CVS
-  - regex fix (#67734)
-  - fix unused warnings (#67706)
-  - fix freopen with mmap stdio (#67552)
-  - fix realloc (#68499)
-
-* Tue Jun 25 2002 Bill Nottingham <notting@redhat.com> 2.2.90-14
-- update from CVS
-  - fix argp on long words
-  - update atime in libio
-
-* Sat Jun 22 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-13
-- update from CVS
-  - a thread race fix
-  - fix readdir on invalid dirp
-
-* Wed Jun 19 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-12
-- update from CVS
-  - don't use __thread in headers
-- fix system(3) in threaded apps
-- update prelink, so that it is possible to prelink -u libc.so.6.1
-  on Alpha
-
-* Fri Jun  7 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-11
-- update from CVS
-  - fix __moddi3 (#65612, #65695)
-  - fix ether_line (#64427)
-- fix setvbuf with mmap stdio (#65864)
-- --disable-tls for now, waiting for kernel
-- avoid duplication of __divtf3 etc. on IA-64
-- make sure get*ent_r and _IO_wfile_jumps are exported (#62278)
-
-* Tue May 21 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-10
-- update from CVS
-  - fix Alpha pthread bug with gcc 3.1
-
-* Fri Apr 19 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-35
-- fix nice
-
-* Mon Apr 15 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-34
-- add relocation dependencies even for weak symbols (#63422)
-- stricter check_fds check for suid/sgid binaries
-- run make check at %%install time
-
-* Sat Apr 13 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-33
-- handle Dec 31 1969 in mktime for timezones west of GMT (#63369)
-- back out do-lookup.h change (#63261, #63305)
-- use "memory" clobber instead all the fancy stuff in i386/i686/bits/string.h
-  since lots of compilers break on it
-- fix sparc build with gcc 3.1
-- fix spec file for athlon
-
-* Tue Apr  9 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-32
-- fix debugging of threaded apps (#62804)
-- fix DST for Estonia (#61494)
-- document that pthread_mutexattr_?etkind_np are deprecated
-  and pthread_mutexattr_?ettype should be used instead in man
-  pages (#61485)
-- fix libSegFault.so undefined externals
-
-* Fri Apr  5 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-31
-- temporarily disable prelinking ld.so, as some statically linked
-  binaries linked against debugging versions of old glibcs die on it
-  (#62352)
-- fix <semaphore.h> for -std=c99 (#62516)
-- fix ether_ntohost segfault (#62397)
-- remove in glibc_post_upgrade on i386 all /lib/i686/libc-*.so,
-  /lib/i686/libm-*.so and /lib/i686/libpthread-*.so, not just current
-  version (#61633)
-- prelink -r on alpha too
-
-* Thu Mar 28 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-30
-- update GB18030 iconv module (Yu Shao)
-
-* Tue Mar 26 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-29
-- features.h fix
-
-* Tue Mar 26 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-28
-- update from CVS
-  - fix nscd with huge groups
-  - fix nis to not close fds it shouldn't
-- rebuilt against newer glibc-kernheaders to use the correct
-  PATH_MAX
-- handle .athlon.rpm glibc the same way as .i686.rpm
-- add a couple of .ISO-8859-15 locales (#61922)
-- readd temporarily currencies which were superceeded by Euro
-  into the list of accepted currencies by localedef to make
-  standard conformance testsuites happy
-- temporarily moved __libc_waitpid back to make Sun JDK happy
-- use old malloc code
-- prelink i686/athlon ld.so and prelink -r i686/athlon libc.so
-
-* Thu Mar 14 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-27
-- update from CVS
-  - fix DST handling for southern hemisphere (#60747)
-  - fix daylight setting for tzset (#59951)
-  - fix ftime (#60350)
-  - fix nice return value
-  - fix a malloc segfault
-- temporarily moved __libc_wait, __libc_fork and __libc_stack_end
-  back to what they used to be exported at
-- censorship (#60758)
-
-* Thu Feb 28 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-26
-- update from CVS
-- use __attribute__((visibility(...))) if supported, use _rtld_local
-  for ld.so only objects
-- provide libc's own __{,u}{div,mod}di3
-
-* Wed Feb 27 2002 Jakub Jelinek <jakub@redhat.com> 2.2.5-25
-- switch back to 2.2.5, mmap stdio needs work
-
-* Mon Feb 25 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-8
-- fix two other mmap stdio bugs (#60228)
-
-* Thu Feb 21 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-7
-- fix yet another mmap stdio bug (#60145)
-
-* Tue Feb 19 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-6
-- fix mmap stdio bug (seen on ld as File truncated error, #60043)
-- apply Andreas Schwab's fix for pthread sigwait
-- remove /lib/i686/ libraries in glibc_post_upgrade when
-  performing i386 glibc install
-
-* Thu Feb 14 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-5
-- update to CVS
-- added glibc-utils subpackage
-- disable autoreq in glibc-debug
-- readd %%lang() to locale files
-
-* Fri Feb  7 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-4
-- update to CVS
-- move glibc private symbols to GLIBC_PRIVATE symbol version
-
-* Wed Jan  9 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-3
-- fix a sqrt bug on alpha which caused SHN_UNDEF $__full_ieee754_sqrt..ng
-  symbol in libm
-
-* Tue Jan  8 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-2
-- add debug-static package
-
-* Mon Dec 31 2001 Jakub Jelinek <jakub@redhat.com> 2.2.90-1
-- update from CVS
-- remove -D__USE_STRING_INLINES
-- add debug subpackage to trim glibc and glibc-devel size
-
-* Wed Oct  3 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-19
-- fix strsep
-
-* Fri Sep 28 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-18
-- fix a ld.so bug with duplicate searchlists in l_scope
-- fix erfcl(-inf)
-- turn /usr/lib/librt.so into linker script
-
-* Wed Sep 26 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-17
-- fix a ld.so lookup bug after lots of dlopen calls
-- fix CMSG_DATA for non-gcc non-ISOC99 compilers (#53984)
-- prelinking support for Sparc64
-
-* Fri Sep 21 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-16
-- update from CVS to fix DT_SYMBOLIC
-- prelinking support for Alpha and Sparc
-
-* Tue Sep 18 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-15
-- update from CVS
-  - linuxthreads now retries if -1/EINTR is returned from
-    reading or writing to thread manager pipe (#43742)
-- use DT_FILTER in librt.so (#53394)
-  - update glibc prelink patch so that it handles filters
-- fix timer_* with SIGEV_NONE (#53494)
-- make glibc_post_upgrade work on PPC (patch from Franz Sirl)
-
-* Mon Sep 10 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-14
-- fix build on sparc32
-- 2.2.4-13 build for some reason missed some locales
-  on alpha/ia64
-
-* Mon Sep  3 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-13
-- fix iconvconfig
-
-* Mon Sep  3 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-12
-- add fam to /etc/rpc (#52863)
-- fix <inttypes.h> for C++ (#52960)
-- fix perror
-
-* Mon Aug 27 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-11
-- fix strnlen(x, -1)
-
-* Mon Aug 27 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-10
-- doh, <bits/libc-lock.h> should only define __libc_rwlock_t
-  if __USE_UNIX98.
-
-* Mon Aug 27 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-9
-- fix bits/libc-lock.h so that gcc can compile
-- fix s390 build
-
-* Fri Aug 24 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-8
-- kill stale library symlinks in ldconfig (#52350)
-- fix inttypes.h for G++ < 3.0
-- use DT_REL*COUNT
-
-* Wed Aug 22 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-7
-- fix strnlen on IA-64 (#50077)
-
-* Thu Aug 16 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-6
-- glibc 2.2.4 final
-- fix -lpthread -static (#51672)
-
-* Fri Aug 10 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-5
-- doh, include libio/tst-swscanf.c
-
-* Fri Aug 10 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-4
-- don't crash on catclose(-1)
-- fix wscanf %[] handling
-- fix return value from swprintf
-- handle year + %U/%W week + week day in strptime
-
-* Thu Aug  9 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-3
-- update from CVS to
-  - fix strcoll (#50548)
-  - fix seekdir (#51132)
-  - fix memusage (#50606)
-- don't make gconv-modules.cache %%config file, just don't verify
-  its content.
-
-* Mon Aug  6 2001 Jakub Jelinek <jakub@redhat.com>
-- fix strtod and *scanf (#50723, #50724)
-
-* Sat Aug  4 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - fix iconv cache handling
-- glibc should not own %{_infodir}, %{_mandir} nor %{_mandir}/man3 (#50673)
-- add gconv-modules.cache as emtpy config file (#50699)
-- only run iconvconfig if /usr is mounted read-write (#50667)
-
-* Wed Jul 25 2001 Jakub Jelinek <jakub@redhat.com>
-- move iconvconfig from glibc-common into glibc subpackage,
-  call it from glibc_post_upgrade instead of common's post.
-
-* Tue Jul 24 2001 Jakub Jelinek <jakub@redhat.com>
-- turn off debugging printouts in iconvconfig
-
-* Tue Jul 24 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - fix IA-32 makecontext
-  - make fflush(0) thread-safe (#46446)
-
-* Mon Jul 23 2001 Jakub Jelinek <jakub@redhat.com>
-- adjust prelinking DT_* and SHT_* values in elf.h
-- update from CVS
-  - iconv cache
-  - make iconv work in SUID/SGID programs (#34611)
-
-* Fri Jul 20 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - kill non-pic code in libm.so
-  - fix getdate
-  - fix some locales (#49402)
-- rebuilt with binutils-2.11.90.0.8-5 to place .interp section
-  properly in libBrokenLocale.so, libNoVersion.so and libanl.so
-- add floating stacks on IA-64, Alpha, Sparc (#49308)
-
-* Mon Jul 16 2001 Jakub Jelinek <jakub@redhat.com>
-- make /lib/i686 directory owned by glibc*.i686.rpm
-
-* Mon Jul  9 2001 Jakub Jelinek <jakub@redhat.com>
-- remove rquota.[hx] headers which are now provided by quota (#47141)
-- add prelinking patch
-
-* Thu Jul  5 2001 Jakub Jelinek <jakub@redhat.com>
-- require sh-utils for nscd
-
-* Mon Jun 25 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS (#43681, #43350, #44663, #45685)
-- fix ro_RO bug (#44644)
-
-* Wed Jun  6 2001 Jakub Jelinek <jakub@redhat.com>
-- fix a bunch of math bugs (#43210, #43345, #43346, #43347, #43348, #43355)
-- make rpc headers -ansi compilable (#42390)
-- remove alphaev6 optimized memcpy, since there are still far too many
-  broken apps which call memcpy where they should call memmove
-- update from CVS to (among other things):
-  - fix tanhl bug (#43352)
-
-* Tue May 22 2001 Jakub Jelinek <jakub@redhat.com>
-- fix #include <signal.h> with -D_XOPEN_SOURCE=500 on ia64 (#35968)
-- fix a dlclose reldeps handling bug
-- some more profiling fixes
-- fix tgmath.h
-
-* Thu May 17 2001 Jakub Jelinek <jakub@redhat.com>
-- make ldconfig more quiet
-- fix LD_PROFILE on i686 (#41030)
-
-* Wed May 16 2001 Jakub Jelinek <jakub@redhat.com>
-- fix the hardlink program, so that it really catches all files with
-  identical content
-- add a s390x clone fix
-
-* Wed May 16 2001 Jakub Jelinek <jakub@redhat.com>
-- fix rpc for non-threaded apps using svc_fdset and similar variables (#40409)
-- fix nss compatibility DSO versions for alphaev6
-- add a hardlink program instead of the shell 3x for plus cmp -s/link
-  which takes a lot of time during build
-- rework BuildPreReq and Conflicts with gcc, so that
-  it applies only where it has to
-
-* Fri May 11 2001 Jakub Jelinek <jakub@redhat.com>
-- fix locale name of ja_JP in UTF-8 (#39783)
-- fix re_search_2 (#40244)
-- fix memusage script (#39138, #39823)
-- fix dlsym(RTLD_NEXT, ) from main program (#39803)
-- fix xtrace script (#39609)
-- make glibc conflict with glibc-devel 2.2.2 and below (to make sure
-  libc_nonshared.a has atexit)
-- fix getconf LFS_CFLAGS on 64bitters
-- recompile with gcc-2.96-84 or above to fix binary compatibility problem
-  with __frame_state_for function (#37933)
-
-* Fri Apr 27 2001 Jakub Jelinek <jakub@redhat.com>
-- glibc 2.2.3 release
-  - fix strcoll (#36539)
-- add BuildPreReqs (#36378)
-
-* Wed Apr 25 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-
-* Fri Apr 20 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - fix sparc64, ia64
-  - fix some locale syntax errors (#35982)
-
-* Wed Apr 18 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-
-* Wed Apr 11 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-
-* Fri Apr  6 2001 Jakub Jelinek <jakub@redhat.com>
-- support even 2.4.0 kernels on ia64, sparc64 and s390x
-- include UTF-8 locales
-- make gconv-modules %%config(noreplace)
-
-* Fri Mar 23 2001 Jakub Jelinek <jakub@redhat.com>
-- back out sunrpc changes
-
-* Wed Mar 21 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - fix ia64 build
-  - fix pthread_getattr_np
-
-* Fri Mar 16 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - run atexit() registered functions at dlclose time if they are in shared
-    libraries (#28625)
-  - add pthread_getattr_np API to make JVM folks happy
-
-* Wed Mar 14 2001 Jakub Jelinek <jakub@redhat.com>
-- require 2.4.1 instead of 2.4.0 on platforms where it required 2.4 kernel
-- fix ldd behaviour on unresolved symbols
-- remove nonsensical ldconfig warning, update osversion for the most
-  recent library with the same soname in the same directory instead (#31703)
-- apply selected patches from CVS
-- s390x spec file changes from Florian La Roche
-
-* Wed Mar  7 2001 Jakub Jelinek <jakub@redhat.com>
-- fix gencat (#30894)
-- fix ldconfig changes from yesterday, fix LD_ASSUME_KERNEL handling
-
-* Tue Mar  6 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-- make pthread_attr_setstacksize consistent before and after pthread manager
-  is started (#28194)
-- pass back struct sigcontext from pthread signal wrapper (on ia32 only so
-  far, #28493)
-- on i686 ship both --enable-kernel 2.2.5 and 2.4.0 libc/libm/libpthread,
-  make ld.so pick the right one
-
-* Sat Feb 17 2001 Preston Brown <pbrown@redhat.com>
-- glib-common doesn't require glibc, until we can figure out how to get out of dependency hell.
-
-* Sat Feb 17 2001 Jakub Jelinek <jakub@redhat.com>
-- make glibc require particular version of glibc-common
-  and glibc-common prerequire glibc.
-
-* Fri Feb 16 2001 Jakub Jelinek <jakub@redhat.com>
-- glibc 2.2.2 release
-  - fix regex REG_ICASE bug seen in ksymoops
-
-* Sat Feb 10 2001 Jakub Jelinek <jakub@redhat.com>
-- fix regexec leaking memory (#26864)
-
-* Fri Feb  9 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - fix ia64 build with gnupro
-  - make regex 64bit clean
-  - fix tgmath make check failures on alpha
-
-* Tue Feb  6 2001 Jakub Jelinek <jakub@redhat.com>
-- update again for ia64 DF_1_INITFIRST
-
-* Fri Feb  2 2001 Jakub Jelinek <jakub@redhat.com>
-- update from CVS
-  - fix getaddrinfo (#25437)
-  - support DF_1_INITFIRST (#25029)
-
-* Wed Jan 24 2001 Jakub Jelinek <jakub@redhat.com>
-- build all auxiliary arches with --enablekernel 2.4.0, those wanting
-  to run 2.2 kernels can downgrade to the base architecture glibc.
-
-* Sat Jan 20 2001 Jakub Jelinek <jakub@redhat.com>
-- remove %%lang() flags from %%{_prefix}/lib/locale files temporarily
-
-* Sun Jan 14 2001 Jakub Jelinek <jakub@redhat.com>
-- update to 2.2.1 final
-  - fix a pthread_kill_other_threads_np breakage (#23966)
-  - make static binaries using dlopen work on ia64 again
-- fix a typo in glibc-common group
-
-* Wed Jan 10 2001 Bernhard Rosenkraenzer <bero@redhat.com>
-- devel requires glibc = %%{version}
-- noreplace /etc/nscd.conf
-
-* Wed Jan 10 2001 Jakub Jelinek <jakub@redhat.com>
-- some more security fixes:
-  - don't look up LD_PRELOAD libs in cache for SUID apps
-    (because that bypasses SUID bit checking on the library)
-  - place output files for profiling SUID apps into /var/profile,
-    use O_NOFOLLOW for them
-  - add checks for $MEMUSAGE_OUTPUT and $SEGFAULT_OUTPUT_NAME
-- hardlink identical locale files together
-- add %%lang() tags to locale stuff
-- remove ko_KR.utf8 for now, it is provided by locale-utf8 package
-
-* Mon Jan  8 2001 Jakub Jelinek <jakub@redhat.com>
-- add glibc-common subpackage
-- fix alphaev6 memcpy (#22494)
-- fix sys/cdefs.h (#22908)
-- don't define stdin/stdout/stderr as macros for -traditional (#22913)
-- work around a bug in IBM JDK (#22932, #23012)
-- fix pmap_unset when network is down (#23176)
-- move nscd in rc.d before netfs on shutdown
-- fix $RESOLV_HOST_CONF in SUID apps (#23562)
-
-* Fri Dec 15 2000 Jakub Jelinek <jakub@redhat.com>
-- fix ftw and nftw
-
-* Wed Dec 13 2000 Jakub Jelinek <jakub@redhat.com>
-- fix fcvt (#22184)
-- ldd /lib/ld-linux.so.2 is not crashing any longer again (#22197)
-- fix gencat
-
-* Mon Dec 11 2000 Jakub Jelinek <jakub@redhat.com>
-- fix alpha htonl and alphaev6 stpcpy
-
-* Sat Dec  9 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to:
-  - fix getnameinfo (#21934)
-  - don't stomp on memory in rpath handling (#21544)
-  - fix setlocale (#21507)
-- fix libNoVersion.so.1 loading code (#21579)
-- use auxarches define in spec file for auxiliary
-  architectures (#21219)
-- remove /usr/share directory from filelist (#21218)
-
-* Sun Nov 19 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to fix getaddrinfo
-
-* Fri Nov 17 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to fix freopen
-- remove all alpha workarounds, not needed anymore
-
-* Wed Nov 15 2000 Jakub Jelinek <jakub@redhat.com>
-- fix dladdr bug on alpha/sparc32/sparc64
-- fix Makefiles so that they run static tests properly
-
-* Tue Nov 14 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to fix ldconfig
-
-* Thu Nov  9 2000 Jakub Jelinek <jakub@redhat.com>
-- update to glibc 2.2 release
-
-* Mon Nov  6 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS to:
-  - export __sysconf@@GLIBC_2.2 (#20417)
-
-* Fri Nov  3 2000 Jakub Jelinek <jakub@redhat.com>
-- merge to 2.1.97
-
-* Mon Oct 30 2000 Jakub Jelinek <jakub@redhat.com>
-- update to CVS, including:
-  - fix WORD_BIT/LONG_BIT definition in limits.h (#19088)
-  - fix hesiod (#19375)
-  - set LC_MESSAGES in zic/zdump for proper error message output (#19495)
-  - fix LFS fcntl when used with non-LFS aware kernels (#19730)
-
-* Thu Oct 19 2000 Jakub Jelinek <jakub@redhat.com>
-- fix alpha semctl (#19199)
-- update to CVS, including:
-  - fix glibc headers for Compaq non-gcc compilers
-  - fix locale alias handling code (#18832)
-  - fix rexec on little endian machines (#18886)
-- started writing changelog again
-
-* Thu Aug 10 2000 Adrian Havill <havill@redhat.com>
-- added ja ujis alias for backwards compatibility
diff --git a/fedora/glibc_post_upgrade.c b/fedora/glibc_post_upgrade.c
deleted file mode 100644
index cde931bde3..0000000000
--- a/fedora/glibc_post_upgrade.c
+++ /dev/null
@@ -1,340 +0,0 @@
-#if defined __sparc__ && defined __arch64__
-register void *__thread_self __asm ("g7");
-#endif
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <dirent.h>
-#include <stddef.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <elf.h>
-
-#define verbose_exec(failcode, path...) \
-  do							\
-    {							\
-      char *const arr[] = { path, NULL };		\
-      vexec (failcode, arr);				\
-    } while (0)
-
-__attribute__((noinline)) void vexec (int failcode, char *const path[]);
-__attribute__((noinline)) void says (const char *str);
-__attribute__((noinline)) void sayn (long num);
-__attribute__((noinline)) void message (char *const path[]);
-__attribute__((noinline)) int check_elf (const char *name);
-
-int
-main (void)
-{
-  char initpath[256];
-
-  char buffer[4096];
-  struct pref {
-    char *p;
-    int len;
-  } prefix[] = { { "libc-", 5 }, { "libm-", 5 },
-		 { "librt-", 6 }, { "libpthread-", 11 },
-		 { "librtkaio-", 10 }, { "libthread_db-", 13 } };
-  int i, j, fd;
-  off_t base;
-  ssize_t ret;
-#ifdef __i386__
-  const char *remove_dirs[] = { "/lib/tls", "/lib/i686", "/lib/tls/i486", "/lib/tls/i586", "/lib/tls/i686" };
-#else
-#ifndef LIBTLS
-#define LIBTLS "/lib/tls"
-#endif
-  const char *remove_dirs[] = { LIBTLS };
-#endif
-  for (j = 0; j < sizeof (remove_dirs) / sizeof (remove_dirs[0]); ++j)
-    {
-      size_t rmlen = strlen (remove_dirs[j]);
-      fd = open (remove_dirs[j], O_RDONLY);
-      if (fd >= 0
-	  && (ret = getdirentries (fd, buffer, sizeof (buffer), &base))
-	     >= (ssize_t) offsetof (struct dirent, d_name))
-	{
-	  for (base = 0; base + offsetof (struct dirent, d_name) < ret; )
-	    {
-	      struct dirent *d = (struct dirent *) (buffer + base);
-
-	      for (i = 0; i < sizeof (prefix) / sizeof (prefix[0]); i++)
-		if (! strncmp (d->d_name, prefix[i].p, prefix[i].len))
-		  {
-		    char *p = d->d_name + prefix[i].len;
-
-		    while (*p == '.' || (*p >= '0' && *p <= '9')) p++;
-		    if (p[0] == 's' && p[1] == 'o' && p[2] == '\0'
-			&& p + 3 - d->d_name
-			   < sizeof (initpath) - rmlen - 1)
-		      {
-			memcpy (initpath, remove_dirs[j], rmlen);
-			initpath[rmlen] = '/';
-			strcpy (initpath + rmlen + 1, d->d_name);
-			unlink (initpath);
-			break;
-		      }
-		  }
-	      base += d->d_reclen;
-	    }
-	  close (fd);
-	}
-    }
-
-  int ldsocfd = open (LD_SO_CONF, O_RDONLY);
-  struct stat ldsocst;
-  if (ldsocfd >= 0 && fstat (ldsocfd, &ldsocst) >= 0)
-    {
-      char p[ldsocst.st_size + 1];
-      if (read (ldsocfd, p, ldsocst.st_size) == ldsocst.st_size)
-	{
-	  p[ldsocst.st_size] = '\0';
-	  if (strstr (p, "include ld.so.conf.d/*.conf") == NULL)
-	    {
-	      close (ldsocfd);
-	      ldsocfd = open (LD_SO_CONF, O_WRONLY | O_TRUNC);
-	      if (ldsocfd >= 0)
-		{
-		  size_t slen = strlen ("include ld.so.conf.d/*.conf\n");
-		  if (write (ldsocfd, "include ld.so.conf.d/*.conf\n", slen)
-		      != slen
-		      || write (ldsocfd, p, ldsocst.st_size) != ldsocst.st_size)
-		    _exit (109);
-		}
-	    }
-	}
-      if (ldsocfd >= 0)
-	close (ldsocfd);
-    }
-
-  /* If installing bi-arch glibc, rpm sometimes doesn't unpack all files
-     before running one of the lib's %post scriptlet.  /sbin/ldconfig will
-     then be run by the other arch's %post.  */
-  if (! access ("/sbin/ldconfig", X_OK))
-    verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig");
-
-  if (! utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL))
-    {
-#ifndef ICONVCONFIG
-#define ICONVCONFIG "/usr/sbin/iconvconfig"
-#endif
-      verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig",
-		    "-o", GCONV_MODULES_DIR"/gconv-modules.cache",
-		    "--nostdlib", GCONV_MODULES_DIR);
-    }
-
-  /* Check if telinit is available and the init fifo as well.  */
-  if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK))
-    _exit (0);
-  /* Check if we are not inside of some chroot, because we'd just
-     timeout and leave /etc/initrunlvl.  */
-  if (readlink ("/proc/1/exe", initpath, 256) <= 0 ||
-      readlink ("/proc/1/root", initpath, 256) <= 0)
-    _exit (0);
-
-  if (check_elf ("/proc/1/exe"))
-    verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u");
-
-  /* Check if we can safely condrestart sshd.  */
-  if (access ("/sbin/service", X_OK) == 0
-      && access ("/usr/sbin/sshd", X_OK) == 0
-      && access ("/bin/bash", X_OK) == 0)
-    {
-      if (check_elf ("/usr/sbin/sshd"))
-	verbose_exec (-121, "/sbin/service", "/sbin/service", "sshd", "condrestart");
-    }
-
-  _exit(0);
-}
-
-#ifndef NO_SIZE_OPTIMIZATION
-int __libc_multiple_threads __attribute__((nocommon));
-int __libc_enable_asynccancel (void) { return 0; }
-void __libc_disable_asynccancel (int x) { }
-void __libc_csu_init (void) { }
-void __libc_csu_fini (void) { }
-pid_t __fork (void) { return -1; }
-char thr_buf[65536];
-
-# ifndef __powerpc__
-int
-__libc_start_main (int (*main) (void), int argc, char **argv,
-		   void (*init) (void), void (*fini) (void),
-		   void (*rtld_fini) (void), void * stack_end)
-# else
-struct startup_info
-{
-  void *sda_base;
-  int (*main) (int, char **, char **, void *);
-  int (*init) (int, char **, char **, void *);
-  void (*fini) (void);
-};
-
-int
-__libc_start_main (int argc, char **ubp_av, char **ubp_ev,
-		   void *auxvec, void (*rtld_fini) (void),
-		   struct startup_info *stinfo,
-		   char **stack_on_entry)
-# endif
-{
-#if defined __ia64__ || defined __powerpc64__
-  register void *r13 __asm ("r13") = thr_buf + 32768;
-  __asm ("" : : "r" (r13));
-#elif defined __sparc__
-  register void *g6 __asm ("g6") = thr_buf + 32768;
-# ifdef __arch64__
-  __thread_self = thr_buf + 32768;
-# else
-  register void *__thread_self __asm ("g7") = thr_buf + 32768;
-# endif
-  __asm ("" : : "r" (g6), "r" (__thread_self));
-#elif defined __s390__ && !defined __s390x__
-  __asm ("sar %%a0,%0" : : "d" (thr_buf + 32768));
-#elif defined __s390x__
-  __asm ("sar %%a1,%0; srlg 0,%0,32; sar %%a0,0" : : "d" (thr_buf + 32768) : "0");
-#elif defined __powerpc__ && !defined __powerpc64__
-  register void *r2 __asm ("r2") = thr_buf + 32768;
-  __asm ("" : : "r" (r2));
-#endif
-  main();
-  return 0;
-}
-#endif
-
-void
-vexec (int failcode, char *const path[])
-{
-  pid_t pid;
-  int status, save_errno;
-  int devnull = 0;
-
-  if (failcode < 0)
-    {
-      devnull = 1;
-      failcode = -failcode;
-    }
-  pid = vfork ();
-  if (pid == 0)
-    {
-      int fd;
-      if (devnull && (fd = open ("/dev/null", O_WRONLY)) >= 0)
-	{
-	  dup2 (fd, 1);
-	  dup2 (fd, 2);
-	  close (fd);
-	}
-      execv (path[0], path + 1);
-      save_errno = errno;
-      message (path);
-      says (" exec failed with errno ");
-      sayn (save_errno);
-      says ("\n");
-      _exit (failcode);
-    }
-  else if (pid < 0)
-    {
-      save_errno = errno;
-      message (path);
-      says (" fork failed with errno ");
-      sayn (save_errno);
-      says ("\n");
-      _exit (failcode + 1);
-    }
-  if (waitpid (0, &status, 0) != pid || !WIFEXITED (status))
-    {
-      message (path);
-      says (" child terminated abnormally\n");
-      _exit (failcode + 2);
-    }
-  if (WEXITSTATUS (status))
-    {
-      message (path);
-      says (" child exited with exit code ");
-      sayn (WEXITSTATUS (status));
-      says ("\n");
-      _exit (WEXITSTATUS (status));
-    }
-}
-
-void
-says (const char *str)
-{
-  write (1, str, strlen (str));
-}
-
-void
-sayn (long num)
-{
-  char string[sizeof (long) * 3 + 1];
-  char *p = string + sizeof (string) - 1;
-
-  *p = '\0';
-  if (num == 0)
-    *--p = '0';
-  else
-    while (num)
-      {
-	*--p = '0' + num % 10;
-	num = num / 10;
-      }
-
-  says (p);
-}
-
-void
-message (char *const path[])
-{
-  says ("/usr/sbin/glibc_post_upgrade: While trying to execute ");
-  says (path[0]);
-}
-
-int
-check_elf (const char *name)
-{
-  /* Play safe, if we can't open or read, assume it might be
-     ELF for the current arch.  */
-  int ret = 1;
-  int fd = open (name, O_RDONLY);
-  if (fd >= 0)
-    {
-      Elf32_Ehdr ehdr;
-      if (read (fd, &ehdr, offsetof (Elf32_Ehdr, e_version))
-	  == offsetof (Elf32_Ehdr, e_version))
-	{
-	  ret = 0;
-	  if (ehdr.e_ident[EI_CLASS]
-	      == (sizeof (long) == 8 ? ELFCLASS64 : ELFCLASS32))
-	    {
-#if defined __i386__
-	      ret = ehdr.e_machine == EM_386;
-#elif defined __x86_64__
-	      ret = ehdr.e_machine == EM_X86_64;
-#elif defined __ia64__
-	      ret = ehdr.e_machine == EM_IA_64;
-#elif defined __powerpc64__
-	      ret = ehdr.e_machine == EM_PPC64;
-#elif defined __powerpc__
-	      ret = ehdr.e_machine == EM_PPC;
-#elif defined __s390__ || defined __s390x__
-	      ret = ehdr.e_machine == EM_S390;
-#elif defined __x86_64__
-	      ret = ehdr.e_machine == EM_X86_64;
-#elif defined __sparc__
-	      if (sizeof (long) == 8)
-		ret = ehdr.e_machine == EM_SPARCV9;
-	      else
-		ret = (ehdr.e_machine == EM_SPARC
-		       || ehdr.e_machine == EM_SPARC32PLUS);
-#else
-	      ret = 1;
-#endif
-	    }
-	}
-      close (fd);
-    }
-  return ret;
-}
diff --git a/fedora/hardlink.c b/fedora/hardlink.c
deleted file mode 100644
index 62e633786d..0000000000
--- a/fedora/hardlink.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/* Copyright (C) 2001 Red Hat, Inc.
-
-   Written by Jakub Jelinek <jakub@redhat.com>.
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   This program 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
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public
-   License along with this program; see the file COPYING.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/*  Changes by Rémy Card to use constants and add option -n.  */
-
-#define _GNU_SOURCE
-#include <sys/types.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <string.h>
-#include <dirent.h>
-#include <fcntl.h>
-
-#define NHASH	131072	/* Must be a power of 2! */
-#define NAMELEN	4096
-#define NBUF	64
-
-struct _f;
-typedef struct _h {
-  struct _h *next;
-  struct _f *chain;
-  off_t size;
-  time_t mtime;
-} h;
-
-typedef struct _d {
-  struct _d *next;
-  char name[0];
-} d;
-
-d *dirs;
-
-h *hps[NHASH];
-
-int no_link = 0;
-int verbose = 0;
-int content_only = 0;
-
-typedef struct _f {
-  struct _f *next;
-  ino_t ino;
-  dev_t dev;
-  unsigned int cksum;
-  char name[0];
-} f;
-
-inline unsigned int hash(off_t size, time_t mtime)
-{
-  return (size ^ mtime) & (NHASH - 1);
-}
-
-inline int stcmp(struct stat *st1, struct stat *st2, int content_only)
-{
-  if (content_only)
-    return st1->st_size != st2->st_size;
-  return st1->st_mode != st2->st_mode || st1->st_uid != st2->st_uid ||
-         st1->st_gid != st2->st_gid || st1->st_size != st2->st_size ||
-         st1->st_mtime != st2->st_mtime;
-}
-
-long long ndirs, nobjects, nregfiles, nmmap, ncomp, nlinks, nsaved;
-
-void doexit(int i)
-{
-  if (verbose) {
-    fprintf(stderr, "\n\n");
-    fprintf(stderr, "Directories %lld\n", ndirs);
-    fprintf(stderr, "Objects %lld\n", nobjects);
-    fprintf(stderr, "IFREG %lld\n", nregfiles);
-    fprintf(stderr, "Mmaps %lld\n", nmmap);
-    fprintf(stderr, "Comparisons %lld\n", ncomp);
-    fprintf(stderr, "%s %lld\n", (no_link ? "Would link" : "Linked"), nlinks);
-    fprintf(stderr, "%s %lld\n", (no_link ? "Would save" : "saved"), nsaved);
-  }
-  exit(i);
-}
-
-void usage(prog)
-{
-  fprintf (stderr, "Usage: %s [-cnv] directories...\n", prog);
-  exit(255);
-}
-
-unsigned int buf[NBUF];
-char nambuf1[NAMELEN], nambuf2[NAMELEN];
-
-void rf (char *name)
-{
-  struct stat st, st2, st3;
-  nobjects++;
-  if (lstat (name, &st))
-    return;
-  if (S_ISDIR (st.st_mode)) {
-    d * dp = malloc(sizeof(d) + 1 + strlen (name));
-    if (!dp) {
-      fprintf(stderr, "\nOut of memory 3\n");
-      doexit(3);
-    }
-    strcpy (dp->name, name);
-    dp->next = dirs;
-    dirs = dp;
-  } else if (S_ISREG (st.st_mode)) {
-    int fd, i;
-    f * fp, * fp2;
-    h * hp;
-    char *p, *q;
-    char *n1, *n2;
-    int cksumsize = sizeof(buf);
-    unsigned int cksum;
-    time_t mtime = content_only ? 0 : st.st_mtime;
-    unsigned int hsh = hash (st.st_size, mtime);
-    nregfiles++;
-    if (verbose > 1)
-      fprintf(stderr, "  %s", name);
-    fd = open (name, O_RDONLY);
-    if (fd < 0) return;
-    if (st.st_size < sizeof(buf)) {
-      cksumsize = st.st_size;
-      memset (((char *)buf) + cksumsize, 0, (sizeof(buf) - cksumsize) % sizeof(buf[0]));
-    }
-    if (read (fd, buf, cksumsize) != cksumsize) {
-      close(fd);
-      if (verbose > 1)
-        fprintf(stderr, "\r%*s\r", (int)strlen(name)+2, "");
-      return;
-    }
-    cksumsize = (cksumsize + sizeof(buf[0]) - 1) / sizeof(buf[0]);
-    for (i = 0, cksum = 0; i < cksumsize; i++) {
-      if (cksum + buf[i] < cksum)
-        cksum += buf[i] + 1;
-      else
-        cksum += buf[i];
-    }
-    for (hp = hps[hsh]; hp; hp = hp->next)
-      if (hp->size == st.st_size && hp->mtime == mtime)
-        break;
-    if (!hp) {
-      hp = malloc(sizeof(h));
-      if (!hp) {
-        fprintf(stderr, "\nOut of memory 1\n");
-        doexit(1);
-      }
-      hp->size = st.st_size;
-      hp->mtime = mtime;
-      hp->chain = NULL;
-      hp->next = hps[hsh];
-      hps[hsh] = hp;
-    }
-    for (fp = hp->chain; fp; fp = fp->next)
-      if (fp->cksum == cksum)
-        break;
-    for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next)
-      if (fp2->ino == st.st_ino && fp2->dev == st.st_dev) {
-        close(fd);
-        if (verbose > 1)
-          fprintf(stderr, "\r%*s\r", (int)strlen(name)+2, "");
-        return;
-      }
-    if (fp) {
-      p = mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
-      nmmap++;
-      if (p == (void *)-1) {
-        close(fd);
-        fprintf(stderr, "\nFailed to mmap %s\n", name);
-        return;
-      }
-    }
-    for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next)
-      if (!lstat (fp2->name, &st2) && S_ISREG (st2.st_mode) &&
-          !stcmp (&st, &st2, content_only) &&
-          st2.st_ino != st.st_ino &&
-          st2.st_dev == st.st_dev) {
-        int fd2 = open (fp2->name, O_RDONLY);
-        if (fd2 < 0) continue;
-        if (fstat (fd2, &st2) || !S_ISREG (st2.st_mode)) {
-          close (fd2);
-          continue;
-        }
-        ncomp++;
-        q = mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd2, 0);
-        if (q == (void *)-1) {
-          close(fd2);
-          fprintf(stderr, "\nFailed to mmap %s\n", fp2->name);
-          continue;
-        }
-        if (memcmp (p, q, st.st_size)) {
-          munmap (q, st.st_size);
-          close(fd2);
-          continue;
-        }
-        munmap (q, st.st_size);
-        close(fd2);
-        if (lstat (name, &st3)) {
-          fprintf(stderr, "\nCould not stat %s again\n", name);
-          munmap (p, st.st_size);
-          close(fd);
-          return;
-        }
-        st3.st_atime = st.st_atime;
-        if (stcmp (&st, &st3, 0)) {
-          fprintf(stderr, "\nFile %s changed underneath us\n", name);
-          munmap (p, st.st_size);
-          close(fd);
-          return;
-        }
-        n1 = fp2->name;
-        n2 = name;
-        if (!no_link) {
-          strcpy (stpcpy (nambuf2, n2), ".$$$___cleanit___$$$");
-          if (rename (n2, nambuf2)) {
-            fprintf(stderr, "\nFailed to rename %s to %s\n", n2, nambuf2);
-            continue;
-          }
-          if (link (n1, n2)) {
-            fprintf(stderr, "\nFailed to hardlink %s to %s\n", n1, n2);
-            if (rename (nambuf2, n2)) {
-              fprintf(stderr, "\nBad bad - failed to rename back %s to %s\n", nambuf2, n2);
-            }
-            munmap (p, st.st_size);
-            close(fd);
-            return;
-          }
-          unlink (nambuf2);
-        }
-        nlinks++;
-        if (st3.st_nlink > 1) {
-	  /* We actually did not save anything this time, since the link second argument
-	     had some other links as well.  */
-          if (verbose > 1)
-            fprintf(stderr, "\r%*s\r%s %s to %s\n", (int)strlen(name)+2, "", (no_link ? "Would link" : "Linked"), n1, n2);
-        } else {
-          nsaved+=st.st_size;
-          if (verbose > 1)
-            fprintf(stderr, "\r%*s\r%s %s to %s, %s %ld\n", (int)strlen(name)+2, "", (no_link ? "Would link" : "Linked"), n1, n2, (no_link ? "would save" : "saved"), st.st_size);
-	}
-        munmap (p, st.st_size);
-        close(fd);
-        return;
-      }
-    if (fp)
-      munmap (p, st.st_size);
-    fp2 = malloc(sizeof(f) + 1 + strlen (name));
-    if (!fp2) {
-      fprintf(stderr, "\nOut of memory 2\n");
-      doexit(2);
-    }
-    close(fd);
-    fp2->ino = st.st_ino;
-    fp2->dev = st.st_dev;
-    fp2->cksum = cksum;
-    strcpy(fp2->name, name);
-    if (fp) {
-      fp2->next = fp->next;
-      fp->next = fp2;
-    } else {
-      fp2->next = hp->chain;
-      hp->chain = fp2;
-    }
-    if (verbose > 1)
-      fprintf(stderr, "\r%*s\r", (int)strlen(name)+2, "");
-    return;
-  }
-}
-
-int main(int argc, char **argv)
-{
-  int ch;
-  int i;
-  char *p;
-  d * dp;
-  DIR *dh;
-  struct dirent *di;
-  while ((ch = getopt (argc, argv, "cnv")) != -1) {
-    switch (ch) {
-    case 'n':
-      no_link++;
-      break;
-    case 'v':
-      verbose++;
-      break;
-    case 'c':
-      content_only++;
-      break;
-    default:
-      usage(argv[0]);
-    }
-  }
-  if (optind >= argc)
-    usage(argv[0]);
-  for (i = optind; i < argc; i++)
-    rf(argv[i]);
-  while (dirs) {
-    dp = dirs;
-    dirs = dp->next;
-    strcpy (nambuf1, dp->name);
-    free (dp);
-    strcat (nambuf1, "/");
-    p = strchr (nambuf1, 0);
-    dh = opendir (nambuf1);
-    if (dh == NULL)
-      continue;
-    ndirs++;
-    while ((di = readdir (dh)) != NULL) {
-      if (!di->d_name[0])
-        continue;
-      if (di->d_name[0] == '.') {
-        char *q;
-        if (!di->d_name[1] || !strcmp (di->d_name, "..") || !strncmp (di->d_name, ".in.", 4))
-          continue;
-        q = strrchr (di->d_name, '.');
-        if (q && strlen (q) == 7 && q != di->d_name) {
-          *p = 0;
-          if (verbose)
-            fprintf(stderr, "Skipping %s%s\n", nambuf1, di->d_name);
-          continue;
-        }
-      }
-      strcpy (p, di->d_name);
-      rf(nambuf1);
-    }
-    closedir(dh);
-  }
-  doexit(0);
-  return 0;
-}
diff --git a/fedora/libc-lock.h b/fedora/libc-lock.h
deleted file mode 100644
index 5037caf4da..0000000000
--- a/fedora/libc-lock.h
+++ /dev/null
@@ -1,340 +0,0 @@
-/* libc-internal interface for mutex locks.  LinuxThreads version.
-   Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003
-   	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; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _BITS_LIBC_LOCK_H
-#define _BITS_LIBC_LOCK_H 1
-
-#include <pthread.h>
-
-/* Mutex type.  */
-#ifdef _IO_MTSAFE_IO
-typedef pthread_mutex_t __libc_lock_t;
-typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t;
-# ifdef __USE_UNIX98
-typedef pthread_rwlock_t __libc_rwlock_t;
-# else
-typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
-# endif
-typedef __libc_lock_recursive_t __rtld_lock_recursive_t;
-#else
-typedef struct __libc_lock_opaque__ __libc_lock_t;
-typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
-typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
-#endif
-
-/* Type for key to thread-specific data.  */
-typedef pthread_key_t __libc_key_t;
-
-/* Define a lock variable NAME with storage class CLASS.  The lock must be
-   initialized with __libc_lock_init before it can be used (or define it
-   with __libc_lock_define_initialized, below).  Use `extern' for CLASS to
-   declare a lock defined in another module.  In public structure
-   definitions you must use a pointer to the lock structure (i.e., NAME
-   begins with a `*'), because its storage size will not be known outside
-   of libc.  */
-#define __libc_lock_define(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-#define __libc_rwlock_define(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME;
-#define __libc_lock_define_recursive(CLASS,NAME) \
-  CLASS __libc_lock_recursive_t NAME;
-#define __rtld_lock_define_recursive(CLASS,NAME) \
-  CLASS __rtld_lock_recursive_t NAME;
-
-/* Define an initialized lock variable NAME with storage class CLASS.
-
-   For the C library we take a deeper look at the initializer.  For
-   this implementation all fields are initialized to zero.  Therefore
-   we don't initialize the variable which allows putting it into the
-   BSS section.  (Except on PA-RISC and other odd architectures, where
-   initialized locks must be set to one due to the lack of normal
-   atomic operations.) */
-
-#if __LT_SPINLOCK_INIT == 0
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-#else
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
-#endif
-
-#define __libc_rwlock_define_initialized(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
-
-/* Define an initialized recursive lock variable NAME with storage
-   class CLASS.  */
-#define __libc_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
-#define _LIBC_LOCK_RECURSIVE_INITIALIZER \
-  {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
-
-#define __rtld_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __rtld_lock_recursive_t NAME = _RTLD_LOCK_RECURSIVE_INITIALIZER;
-#define _RTLD_LOCK_RECURSIVE_INITIALIZER \
-  {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
-
-#if defined __PIC__
-# define __libc_maybe_call(FUNC, ARGS, ELSE) \
-  (__extension__ ({ __typeof (FUNC) *_fn = (FUNC); \
-                    _fn != NULL ? (*_fn) ARGS : ELSE; }))
-#else
-# define __libc_maybe_call(FUNC, ARGS, ELSE) \
-  (FUNC != NULL ? FUNC ARGS : ELSE)
-#endif
-#define __libc_maybe_call2(FUNC, ARGS, ELSE) __libc_maybe_call (__##FUNC, ARGS, ELSE)
-
-/* Initialize the named lock variable, leaving it in a consistent, unlocked
-   state.  */
-#define __libc_lock_init(NAME) \
-  (__libc_maybe_call2 (pthread_mutex_init, (&(NAME), NULL), 0))
-#define __libc_rwlock_init(NAME) \
-  (__libc_maybe_call (__pthread_rwlock_init, (&(NAME), NULL), 0));
-
-/* Same as last but this time we initialize a recursive mutex.  */
-#define __libc_lock_init_recursive(NAME) \
-  do {									      \
-    if (__pthread_mutex_init != NULL)					      \
-      {									      \
-	pthread_mutexattr_t __attr;					      \
-	__pthread_mutexattr_init (&__attr);				      \
-	__pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP); \
-	__pthread_mutex_init (&(NAME).mutex, &__attr);			      \
-	__pthread_mutexattr_destroy (&__attr);				      \
-      }									      \
-  } while (0);
-#define __rtld_lock_init_recursive(NAME) \
-  __libc_lock_init_recursive (NAME)
-
-/* Finalize the named lock variable, which must be locked.  It cannot be
-   used again until __libc_lock_init is called again on it.  This must be
-   called on a lock variable before the containing storage is reused.  */
-#define __libc_lock_fini(NAME) \
-  (__libc_maybe_call2 (pthread_mutex_destroy, (&(NAME)), 0));
-#define __libc_rwlock_fini(NAME) \
-  (__libc_maybe_call (__pthread_rwlock_destroy, (&(NAME)), 0));
-
-/* Finalize recursive named lock.  */
-#define __libc_lock_fini_recursive(NAME) __libc_lock_fini ((NAME).mutex)
-#define __rtld_lock_fini_recursive(NAME) __libc_lock_fini_recursive (NAME)
-
-/* Lock the named lock variable.  */
-#define __libc_lock_lock(NAME) \
-  (__libc_maybe_call2 (pthread_mutex_lock, (&(NAME)), 0));
-#define __libc_rwlock_rdlock(NAME) \
-  (__libc_maybe_call (__pthread_rwlock_rdlock, (&(NAME)), 0));
-#define __libc_rwlock_wrlock(NAME) \
-  (__libc_maybe_call (__pthread_rwlock_wrlock, (&(NAME)), 0));
-
-/* Lock the recursive named lock variable.  */
-#define __libc_lock_lock_recursive(NAME) __libc_lock_lock ((NAME).mutex)
-
-/* Try to lock the named lock variable.  */
-#define __libc_lock_trylock(NAME) \
-  (__libc_maybe_call2 (pthread_mutex_trylock, (&(NAME)), 0))
-#define __libc_rwlock_tryrdlock(NAME) \
-  (__libc_maybe_call (__pthread_rwlock_tryrdlock, (&(NAME)), 0))
-#define __libc_rwlock_trywrlock(NAME) \
-  (__libc_maybe_call (__pthread_rwlock_trywrlock, (&(NAME)), 0))
-
-/* Try to lock the recursive named lock variable.  */
-#define __libc_lock_trylock_recursive(NAME) __libc_lock_trylock ((NAME).mutex)
-#define __rtld_lock_trylock_recursive(NAME) \
-  __libc_lock_trylock_recursive (NAME)
-
-/* Unlock the named lock variable.  */
-#define __libc_lock_unlock(NAME) \
-  (__libc_maybe_call2 (pthread_mutex_unlock, (&(NAME)), 0));
-#define __libc_rwlock_unlock(NAME) \
-  (__libc_maybe_call (__pthread_rwlock_unlock, (&(NAME)), 0));
-
-/* Unlock the recursive named lock variable.  */
-#define __libc_lock_unlock_recursive(NAME) __libc_lock_unlock ((NAME).mutex)
-
-#define __rtld_lock_lock_recursive(NAME) __libc_lock_lock_recursive (NAME)
-#define __rtld_lock_unlock_recursive(NAME) __libc_lock_unlock_recursive (NAME)
-
-/* Define once control variable.  */
-#if PTHREAD_ONCE_INIT == 0
-/* Special case for static variables where we can avoid the initialization
-   if it is zero.  */
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME
-#else
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME = PTHREAD_ONCE_INIT
-#endif
-
-/* Call handler iff the first call.  */
-#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
-  do {									      \
-    if (__pthread_once != NULL)						      \
-      __pthread_once (&(ONCE_CONTROL), (INIT_FUNCTION));		      \
-    else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) {			      \
-      INIT_FUNCTION ();							      \
-      (ONCE_CONTROL) = 2;						      \
-    }									      \
-  } while (0)
-
-
-/* Start critical region with cleanup.  */
-#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
-  { struct _pthread_cleanup_buffer _buffer;				      \
-    int _avail = (DOIT) && _pthread_cleanup_push_defer != NULL;		      \
-    if (_avail) {							      \
-      _pthread_cleanup_push_defer (&_buffer, (FCT), (ARG));		      \
-    }
-
-/* End critical region with cleanup.  */
-#define __libc_cleanup_region_end(DOIT) \
-    if (_avail) {							      \
-      _pthread_cleanup_pop_restore (&_buffer, (DOIT));			      \
-    }									      \
-  }
-
-/* Sometimes we have to exit the block in the middle.  */
-#define __libc_cleanup_end(DOIT) \
-    if (_avail) {							      \
-      _pthread_cleanup_pop_restore (&_buffer, (DOIT));			      \
-    }
-
-#define __libc_cleanup_push(fct, arg) \
-    { struct _pthread_cleanup_buffer _buffer; 				      \
-    __libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0)
-
-#define __libc_cleanup_pop(execute) \
-    __libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0);	      \
-    }
-
-/* Create thread-specific key.  */
-#define __libc_key_create(KEY, DESTRUCTOR) \
-  (__libc_maybe_call (__pthread_key_create, (KEY, DESTRUCTOR), 1))
-
-/* Get thread-specific data.  */
-#define __libc_getspecific(KEY) \
-  (__libc_maybe_call (__pthread_getspecific, (KEY), NULL))
-
-/* Set thread-specific data.  */
-#define __libc_setspecific(KEY, VALUE) \
-  (__libc_maybe_call (__pthread_setspecific, (KEY, VALUE), 0))
-
-
-/* Register handlers to execute before and after `fork'.  */
-#define __libc_atfork(PREPARE, PARENT, CHILD) \
-  (__libc_maybe_call (__pthread_atfork, (PREPARE, PARENT, CHILD), 0))
-
-__BEGIN_DECLS
-
-extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
-                                         void (*__routine) (void *),
-                                         void *__arg) __THROW;
-
-extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
-                                          int __execute) __THROW;
-
-
-/* Functions that are used by this file and are internal to the GNU C
-   library.  */
-
-extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-				 __const pthread_mutexattr_t *__mutex_attr);
-
-extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
-					int __kind);
-
-#ifdef __USE_UNIX98
-extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
-				  __const pthread_rwlockattr_t *__attr);
-
-extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
-#endif
-
-extern int __pthread_key_create (pthread_key_t *__key,
-				 void (*__destr_function) (void *));
-
-extern int __pthread_setspecific (pthread_key_t __key,
-				  __const void *__pointer);
-
-extern void *__pthread_getspecific (pthread_key_t __key);
-
-extern int __pthread_once (pthread_once_t *__once_control,
-			   void (*__init_routine) (void));
-
-extern int __pthread_atfork (void (*__prepare) (void),
-			     void (*__parent) (void),
-			     void (*__child) (void));
-
-__END_DECLS
-
-/* Make the pthread functions weak so that we can elide them from
-   single-threaded processes.  */
-#ifndef __NO_WEAK_PTHREAD_ALIASES
-# pragma weak __pthread_mutex_init
-# pragma weak __pthread_mutex_destroy
-# pragma weak __pthread_mutex_lock
-# pragma weak __pthread_mutex_trylock
-# pragma weak __pthread_mutex_unlock
-# pragma weak __pthread_mutexattr_init
-# pragma weak __pthread_mutexattr_destroy
-# pragma weak __pthread_mutexattr_settype
-# pragma weak __pthread_rwlock_destroy
-# pragma weak __pthread_rwlock_rdlock
-# pragma weak __pthread_rwlock_tryrdlock
-# pragma weak __pthread_rwlock_wrlock
-# pragma weak __pthread_rwlock_trywrlock
-# pragma weak __pthread_rwlock_unlock
-# pragma weak __pthread_key_create
-# pragma weak __pthread_setspecific
-# pragma weak __pthread_getspecific
-# pragma weak __pthread_once
-# pragma weak __pthread_initialize
-# pragma weak __pthread_atfork
-# pragma weak _pthread_cleanup_push_defer
-# pragma weak _pthread_cleanup_pop_restore
-# pragma weak _pthread_cleanup_push
-# pragma weak _pthread_cleanup_pop
-#endif
-
-/* We need portable names for some functions.  E.g., when they are
-   used as argument to __libc_cleanup_region_start.  */
-#define __libc_mutex_unlock __pthread_mutex_unlock
-
-#endif	/* bits/libc-lock.h */
diff --git a/fedora/makepatch.awk b/fedora/makepatch.awk
deleted file mode 100644
index fadf1c7e56..0000000000
--- a/fedora/makepatch.awk
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/awk -f
-/^cvs (diff|server): tag.*is not in file/ {
-	print
-	next
-}
-/^cvs (diff|server): Diffing/ {
-	next
-}
-/^\? / {
-	next
-}
-/^Index:/ {
-	file=$2
-	next
-}
-/^===============/ {
-	next
-}
-/^RCS/ {
-	next
-}
-/^retrieving/ {
-	next
-}
-/^diff/ {
-	next
-}
-/^---/ {
-	if ($2 ~ /^\/dev\/null/ ||
-	    $2 ~ /^\/tmp\//)
-		$2=file
-	if ($2 ~ /.cvsignore$/ ||
-	    $2 ~ /^c_stubs/ ||
-	    $2 ~ /^rtkaio/ ||
-	    $2 ~ /^powerpc-cpu/ ||
-	    $2 ~ /^fedora/ ||
-	    $2 ~ /^localedata\/charmaps\/GB18030/ ||
-	    $2 ~ /^iconvdata\/gb18030\.c/) {
-		hide = 1
-		next
-	} else {
-		hide = 0
-	}
-	sub(/^---[ 	]*/,"--- " OLDVER "/")
-}
-/^\+\+\+/ {
-	if (hide)
-		next
-	if ($2 ~ /^\/dev\/null/ ||
-	    $2 ~ /^\/tmp\//)
-		$2=file
-	sub(/^\+\+\+[ 	]*/,"+++ " NEWVER "/")
-}
-{
-	if (hide)
-		next
-	print
-}
diff --git a/fedora/nsswitch.conf b/fedora/nsswitch.conf
deleted file mode 100644
index a787750d31..0000000000
--- a/fedora/nsswitch.conf
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# /etc/nsswitch.conf
-#
-# An example Name Service Switch config file. This file should be
-# sorted with the most-used services at the beginning.
-#
-# The entry '[NOTFOUND=return]' means that the search for an
-# entry should stop if the search in the previous entry turned
-# up nothing. Note that if the search failed due to some other reason
-# (like no NIS server responding) then the search continues with the
-# next entry.
-#
-# Legal entries are:
-#
-#	nisplus or nis+		Use NIS+ (NIS version 3)
-#	nis or yp		Use NIS (NIS version 2), also called YP
-#	dns			Use DNS (Domain Name Service)
-#	files			Use the local files
-#	db			Use the local database (.db) files
-#	compat			Use NIS on compat mode
-#	hesiod			Use Hesiod for user lookups
-#	[NOTFOUND=return]	Stop searching if not found so far
-#
-
-# To use db, put the "db" in front of "files" for entries you want to be
-# looked up first in the databases
-#
-# Example:
-#passwd:    db files nisplus nis
-#shadow:    db files nisplus nis
-#group:     db files nisplus nis
-
-passwd:     files
-shadow:     files
-group:      files
-
-#hosts:     db files nisplus nis dns
-hosts:      files dns
-
-# Example - obey only what nisplus tells us...
-#services:   nisplus [NOTFOUND=return] files
-#networks:   nisplus [NOTFOUND=return] files
-#protocols:  nisplus [NOTFOUND=return] files
-#rpc:        nisplus [NOTFOUND=return] files
-#ethers:     nisplus [NOTFOUND=return] files
-#netmasks:   nisplus [NOTFOUND=return] files     
-
-bootparams: nisplus [NOTFOUND=return] files
-
-ethers:     files
-netmasks:   files
-networks:   files
-protocols:  files
-rpc:        files
-services:   files
-
-netgroup:   nisplus
-
-publickey:  nisplus
-
-automount:  files nisplus
-aliases:    files nisplus
-
diff --git a/fedora/power6emul.c b/fedora/power6emul.c
deleted file mode 100644
index f1d0d20e0f..0000000000
--- a/fedora/power6emul.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/* Emulate power6 mf[tf]gpr and fri[zpmn] instructions.
-   Copyright (C) 2006 Red Hat, Inc.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   This 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.
-
-   It 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 <signal.h>
-#include <stdio.h>
-
-extern double frip (double), friz (double), frin (double), frim (double);
-asm (".globl frip, friz, frin, frim\n.hidden frip, friz, frin, frim\n\t"
-#ifdef __powerpc64__
-	".section \".toc\",\"aw\"\n"
-"8:"	".tc FD_43300000_0[TC],0x4330000000000000\n"
-"9:"	".tc FD_3fe00000_0[TC],0x3fe0000000000000\n\t"
-	".previous\n\t"
-#else
-	".rodata\n\t"
-	".align 2\n"
-"8:"	".long 0x59800000\n"
-"9:"	".long 0x3f000000\n\t"
-	".previous\n\t"
-#endif
-	"# frip == ceil\n"
-"frip:"	"mffs    11\n\t"
-#ifdef __powerpc64__
-	"lfd     13,8b@toc(2)\n\t"
-#else
-	"mflr    11\n\t"
-	"bcl     20,31,1f\n"
-"1:"	"mflr    9\n\t"
-	"addis   9,9,8b-1b@ha\n\t"
-	"lfs     13,8b-1b@l(9)\n\t"
-	"mtlr    11\n\t"
-#endif
-	"fabs    0,1\n\t"
-	"fsub    12,13,13\n\t"
-	"fcmpu   7,0,13\n\t"
-	"fcmpu   6,1,12\n\t"
-	"bnllr-  7\n\t"
-	"mtfsfi  7,2\n\t"
-	"ble-    6,2f\n\t"
-	"fadd    1,1,13\n\t"
-	"fsub    1,1,13\n\t"
-	"fabs    1,1\n\t"
-	"mtfsf   0x01,11\n\t"
-	"blr\n"
-"2:"	"bge-    6,3f\n\t"
-	"fsub    1,1,13\n\t"
-	"fadd    1,1,13\n\t"
-	"fnabs   1,1\n"
-"3:"	"mtfsf   0x01,11\n\t"
-	"blr\n\t"
-	"# friz == trunc\n"
-"friz:"	"mffs    11\n\t"
-#ifdef __powerpc64__
-	"lfd     13,8b@toc(2)\n\t"
-#else
-	"mflr    11\n\t"
-	"bcl     20,31,1f\n"
-"1:"	"mflr    9\n\t"
-	"addis   9,9,8b-1b@ha\n\t"
-	"lfs     13,8b-1b@l(9)\n\t"
-	"mtlr    11\n\t"
-#endif
-	"fabs    0,1\n\t"
-	"fsub    12,13,13\n\t"
-	"fcmpu   7,0,13\n\t"
-	"fcmpu   6,1,12\n\t"
-	"bnllr-  7\n\t"
-	"mtfsfi  7,1\n\t"
-	"ble-    6,2f\n\t"
-	"fadd    1,1,13\n\t"
-	"fsub    1,1,13\n\t"
-	"fabs    1,1\n\t"
-	"mtfsf   0x01,11\n\t"
-	"blr\n"
-"2:"	"bge-    6,3f\n\t"
-	"fsub    1,1,13\n\t"
-	"fadd    1,1,13\n\t"
-	"fnabs   1,1\n"
-"3:"	"mtfsf   0x01,11\n\t"
-	"blr\n\t"
-	"# frin == round\n"
-"frin:"	"mffs    11\n\t"
-#ifdef __powerpc64__
-	"lfd     13,8b@toc(2)\n\t"
-#else
-	"mflr    11\n\t"
-	"bcl     20,31,1f\n"
-"1:"	"mflr    9\n\t"
-	"addis   9,9,8b-1b@ha\n\t"
-	"addi    9,9,8b-1b@l\n\t"
-	"mtlr    11\n\t"
-	"lfs     13,0(9)\n\t"
-#endif
-	"fabs    0,1\n\t"
-	"fsub    12,13,13\n\t"
-	"fcmpu   7,0,13\n\t"
-	"fcmpu   6,1,12\n\t"
-	"bnllr-  7\n\t"
-	"mtfsfi  7,1\n\t"
-#ifdef __powerpc64__
-	"lfd     10,9b@toc(2)\n\t"
-#else
-	"lfs     10,9b-8b(9)\n\t"
-#endif
-	"ble-    6,2f\n\t"
-	"fadd    1,1,10\n\t"
-	"fadd    1,1,13\n\t"
-	"fsub    1,1,13\n\t"
-	"fabs    1,1\n\t"
-	"mtfsf   0x01,11\n\t"
-	"blr\n"
-"2:"	"fsub    9,1,10\n\t"
-	"bge-    6,3f\n\t"
-	"fsub    1,9,13\n\t"
-	"fadd    1,1,13\n\t"
-	"fnabs   1,1\n"
-"3:"	"mtfsf   0x01,11\n\t"
-	"blr\n\t"
-	"# frim == floor\n"
-"frim:"	"mffs    11\n\t"
-#ifdef __powerpc64__
-	"lfd     13,8b@toc(2)\n\t"
-#else
-	"mflr    11\n\t"
-	"bcl     20,31,1f\n"
-"1:"	"mflr    9\n\t"
-	"addis   9,9,8b-1b@ha\n\t"
-	"lfs     13,8b-1b@l(9)\n\t"
-	"mtlr    11\n\t"
-#endif
-	"fabs    0,1\n\t"
-	"fsub    12,13,13\n\t"
-	"fcmpu   7,0,13\n\t"
-	"fcmpu   6,1,12\n\t"
-	"bnllr-  7\n\t"
-	"mtfsfi  7,3\n\t"
-	"ble-    6,2f\n\t"
-	"fadd    1,1,13\n\t"
-	"fsub    1,1,13\n\t"
-	"fabs    1,1\n\t"
-	"mtfsf   0x01,11\n\t"
-	"blr\n"
-"2:"	"bge-    6,3f\n\t"
-	"fsub    1,1,13\n\t"
-	"fadd    1,1,13\n\t"
-	"fnabs   1,1\n"
-"3:"	"mtfsf   0x01,11\n\t"
-	"blr\n");
-
-static void
-catch_sigill (int signal, struct sigcontext *ctx)
-{
-  unsigned int insn = *(unsigned int *) (ctx->regs->nip);
-#ifdef __powerpc64__
-  if ((insn & 0xfc1f07ff) == 0x7c0005be) /* mftgpr */
-    {
-      unsigned long *regs = (unsigned long *) ctx->regs;
-      unsigned fpr = (insn >> 11) & 0x1f;
-      unsigned gpr = (insn >> 21) & 0x1f;
-      regs[gpr] = regs[fpr + 0x30];
-      ctx->regs->nip += 4;
-      return;
-    }
-  if ((insn & 0xfc1f07ff) == 0x7c0004be) /*mffgpr */
-    {
-      unsigned long *regs = (unsigned long *) ctx->regs;
-      unsigned fpr = (insn >> 21) & 0x1f;
-      unsigned gpr = (insn >> 11) & 0x1f;
-      regs[fpr + 0x30] = regs[gpr];
-      ctx->regs->nip += 4;
-      return;
-    }
-#endif
-  if ((insn & 0xfc1f073f) == 0xfc000310) /* fri[pznm] */
-    {
-#ifdef __powerpc64__
-      double *regs = (double *) (((char *) ctx->regs) + 0x30 * 8);
-      unsigned int *fpscr = (unsigned int *) (((char *) ctx->regs) + 0x50 * 8 + 4);
-#else
-      double *regs = (double *) (((char *) ctx->regs) + 0x30 * 4);
-      unsigned int *fpscr = (unsigned int *) (((char *) ctx->regs) + 0x30 * 4 + 0x20 * 8 + 4);
-#endif
-      unsigned dest = (insn >> 21) & 0x1f;
-      unsigned src = (insn >> 11) & 0x1f;
-      switch (insn & 0xc0)
-	{
-	case 0:
-	  regs[dest] = frin (regs[src]);
-	  break;
-	case 0x40:
-	  regs[dest] = friz (regs[src]);
-	  break;
-	case 0x80:
-	  regs[dest] = frip (regs[src]);
-	  break;
-	case 0xc0:
-	  regs[dest] = frim (regs[src]);
-	  break;
-	}
-      /* Update raised exceptions.  */
-      union { unsigned int i[2]; double d; } u;
-      asm volatile ("mffs %0" : "=f" (u.d));
-      u.i[1] &= 0xfffe0000; /* Is this correct?  */
-      *fpscr |= u.i[1];
-      ctx->regs->nip += 4;
-      return;
-    }
-
-  struct sigaction sa;
-  sa.sa_handler = SIG_DFL;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-  sigaction (signal, &sa, NULL);
-  raise (signal);
-}
-
-static void
-__attribute__ ((constructor))
-install_handler (void)
-{
-  struct sigaction sa;
-  sa.sa_handler = (void *) catch_sigill;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = SA_RESTART;
-  sigaction (SIGILL, &sa, NULL);
-}
diff --git a/fedora/tzdata-update.c b/fedora/tzdata-update.c
deleted file mode 100644
index f94f9a2609..0000000000
--- a/fedora/tzdata-update.c
+++ /dev/null
@@ -1,589 +0,0 @@
-#ifdef __sparc__
-register void *__thread_self __asm ("g7");
-#endif
-#define _GNU_SOURCE 1
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <syscall.h>
-#include <unistd.h>
-
-#if defined __i386__
-# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
-# define INTERNAL_SYSCALL(name, err, nr, args...) \
-  ({									      \
-    register unsigned int resultvar;					      \
-    asm volatile (							      \
-    "movl %1, %%eax\n\t"						      \
-    "int $0x80\n\t"							      \
-    : "=a" (resultvar)							      \
-    : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc");		      \
-    (int) resultvar; })
-# define INTERNAL_SYSCALL_ERROR_P(val, err) \
-  ((unsigned int) (val) >= 0xfffff001u)
-# define ASMFMT_0()
-# define ASMFMT_1(arg1) \
-	, "b" (arg1)
-# define ASMFMT_2(arg1, arg2) \
-	, "b" (arg1), "c" (arg2)
-# define ASMFMT_3(arg1, arg2, arg3) \
-	, "b" (arg1), "c" (arg2), "d" (arg3)
-#elif defined __x86_64__
-# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
-# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
-  ({									      \
-    unsigned long resultvar;						      \
-    LOAD_ARGS_##nr (args)						      \
-    LOAD_REGS_##nr							      \
-    asm volatile (							      \
-    "syscall\n\t"							      \
-    : "=a" (resultvar)							      \
-    : "0" (name) ASM_ARGS_##nr : "memory", "cc", "r11", "cx");		      \
-    (long) resultvar; })
-# define INTERNAL_SYSCALL(name, err, nr, args...) \
-  INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
-# define INTERNAL_SYSCALL_ERROR_P(val, err) \
-  ((unsigned long) (val) >= -4095L)
-# define LOAD_ARGS_0()
-# define LOAD_REGS_0
-# define ASM_ARGS_0
-# define LOAD_ARGS_1(a1)				\
-  long int __arg1 = (long) (a1);			\
-  LOAD_ARGS_0 ()
-# define LOAD_REGS_1					\
-  register long int _a1 asm ("rdi") = __arg1;		\
-  LOAD_REGS_0
-# define ASM_ARGS_1	ASM_ARGS_0, "r" (_a1)
-# define LOAD_ARGS_2(a1, a2)				\
-  long int __arg2 = (long) (a2);			\
-  LOAD_ARGS_1 (a1)
-# define LOAD_REGS_2					\
-  register long int _a2 asm ("rsi") = __arg2;		\
-  LOAD_REGS_1
-# define ASM_ARGS_2	ASM_ARGS_1, "r" (_a2)
-# define LOAD_ARGS_3(a1, a2, a3)			\
-  long int __arg3 = (long) (a3);			\
-  LOAD_ARGS_2 (a1, a2)
-# define LOAD_REGS_3					\
-  register long int _a3 asm ("rdx") = __arg3;		\
-  LOAD_REGS_2
-# define ASM_ARGS_3	ASM_ARGS_2, "r" (_a3)
-#elif defined __powerpc__
-# define INTERNAL_SYSCALL_DECL(err) long int err
-# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
-  ({									\
-    register long int r0  __asm__ ("r0");				\
-    register long int r3  __asm__ ("r3");				\
-    register long int r4  __asm__ ("r4");				\
-    register long int r5  __asm__ ("r5");				\
-    register long int r6  __asm__ ("r6");				\
-    register long int r7  __asm__ ("r7");				\
-    register long int r8  __asm__ ("r8");				\
-    LOADARGS_##nr(name, args);						\
-    __asm__ __volatile__						\
-      ("sc\n\t"								\
-       "mfcr  %0\n\t"							\
-       : "=&r" (r0),							\
-	 "=&r" (r3), "=&r" (r4), "=&r" (r5),				\
-	 "=&r" (r6), "=&r" (r7), "=&r" (r8)				\
-       : ASM_INPUT_##nr							\
-       : "r9", "r10", "r11", "r12",					\
-	 "cr0", "ctr", "memory");					\
-	  err = r0;  \
-    (int) r3;  \
-  })
-# define INTERNAL_SYSCALL(name, err, nr, args...)			\
-  INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
-# define INTERNAL_SYSCALL_ERROR_P(val, err) \
-  ((void) (val), __builtin_expect ((err) & (1 << 28), 0))
-# define LOADARGS_0(name, dummy) \
-	r0 = name
-# define LOADARGS_1(name, __arg1) \
-	long int arg1 = (long int) (__arg1); \
-	LOADARGS_0(name, 0); \
-	r3 = arg1
-# define LOADARGS_2(name, __arg1, __arg2) \
-	long int arg2 = (long int) (__arg2); \
-	LOADARGS_1(name, __arg1); \
-	r4 = arg2
-# define LOADARGS_3(name, __arg1, __arg2, __arg3) \
-	long int arg3 = (long int) (__arg3); \
-	LOADARGS_2(name, __arg1, __arg2); \
-	r5 = arg3
-# define ASM_INPUT_0 "0" (r0)
-# define ASM_INPUT_1 ASM_INPUT_0, "1" (r3)
-# define ASM_INPUT_2 ASM_INPUT_1, "2" (r4)
-# define ASM_INPUT_3 ASM_INPUT_2, "3" (r5)
-#elif defined __ia64__
-# define DO_INLINE_SYSCALL_NCS(name, nr, args...)		\
-    LOAD_ARGS_##nr (args)					\
-    register long _r8 asm ("r8");				\
-    register long _r10 asm ("r10");				\
-    register long _r15 asm ("r15") = name;			\
-    long _retval;						\
-    LOAD_REGS_##nr						\
-    __asm __volatile ("break 0x100000;;"			\
-		      : "=r" (_r8), "=r" (_r10), "=r" (_r15)	\
-			ASM_OUTARGS_##nr			\
-		      : "2" (_r15) ASM_ARGS_##nr		\
-		      : "memory" ASM_CLOBBERS_##nr);		\
-    _retval = _r8;
-# define INTERNAL_SYSCALL_DECL(err) long int err
-# define INTERNAL_SYSCALL_NCS(name, err, nr, args...)	\
-  ({							\
-    DO_INLINE_SYSCALL_NCS (name, nr, args)		\
-    err = _r10;						\
-    _retval; })
-# define INTERNAL_SYSCALL(name, err, nr, args...)	\
-  INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
-# define INTERNAL_SYSCALL_ERROR_P(val, err)	(err == -1)
-# define LOAD_ARGS_0()
-# define LOAD_REGS_0
-# define LOAD_ARGS_1(a1)				\
-  long _arg1 = (long) (a1);				\
-  LOAD_ARGS_0 ()
-# define LOAD_REGS_1					\
-  register long _out0 asm ("out0") = _arg1;		\
-  LOAD_REGS_0
-# define LOAD_ARGS_2(a1, a2)				\
-  long _arg2 = (long) (a2);				\
-  LOAD_ARGS_1 (a1)
-# define LOAD_REGS_2					\
-  register long _out1 asm ("out1") = _arg2;		\
-  LOAD_REGS_1
-# define LOAD_ARGS_3(a1, a2, a3)			\
-  long _arg3 = (long) (a3);				\
-  LOAD_ARGS_2 (a1, a2)
-# define LOAD_REGS_3					\
-  register long _out2 asm ("out2") = _arg3;		\
-  LOAD_REGS_2
-# define ASM_OUTARGS_0
-# define ASM_OUTARGS_1	ASM_OUTARGS_0, "=r" (_out0)
-# define ASM_OUTARGS_2	ASM_OUTARGS_1, "=r" (_out1)
-# define ASM_OUTARGS_3	ASM_OUTARGS_2, "=r" (_out2)
-# define ASM_ARGS_0
-# define ASM_ARGS_1	ASM_ARGS_0, "3" (_out0)
-# define ASM_ARGS_2	ASM_ARGS_1, "4" (_out1)
-# define ASM_ARGS_3	ASM_ARGS_2, "5" (_out2)
-# define ASM_CLOBBERS_0	ASM_CLOBBERS_1, "out0"
-# define ASM_CLOBBERS_1	ASM_CLOBBERS_2, "out1"
-# define ASM_CLOBBERS_2	ASM_CLOBBERS_3, "out2"
-# define ASM_CLOBBERS_3	ASM_CLOBBERS_4, "out3"
-# define ASM_CLOBBERS_4	ASM_CLOBBERS_5, "out4"
-# define ASM_CLOBBERS_5	ASM_CLOBBERS_6, "out5"
-# define ASM_CLOBBERS_6_COMMON	, "out6", "out7",			\
-  /* Non-stacked integer registers, minus r8, r10, r15.  */		\
-  "r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18",	\
-  "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27",	\
-  "r28", "r29", "r30", "r31",						\
-  /* Predicate registers.  */						\
-  "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15",	\
-  /* Non-rotating fp registers.  */					\
-  "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",	\
-  /* Branch registers.  */						\
-  "b6"
-# define ASM_CLOBBERS_6	ASM_CLOBBERS_6_COMMON , "b7"
-#elif defined __s390__
-# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
-# define INTERNAL_SYSCALL_DIRECT(name, err, nr, args...)		      \
-  ({									      \
-    DECLARGS_##nr(args)							      \
-    register long _ret asm("2");					      \
-    asm volatile (							      \
-    "svc    %b1\n\t"							      \
-    : "=d" (_ret)							      \
-    : "i" (__NR_##name) ASMFMT_##nr					      \
-    : "memory" );							      \
-    _ret; })
-# define INTERNAL_SYSCALL_SVC0(name, err, nr, args...)			      \
-  ({									      \
-    DECLARGS_##nr(args)							      \
-    register unsigned long _nr asm("1") = (unsigned long)(__NR_##name);	      \
-    register long _ret asm("2");					      \
-    asm volatile (							      \
-    "svc    0\n\t"							      \
-    : "=d" (_ret)							      \
-    : "d" (_nr) ASMFMT_##nr						      \
-    : "memory" );							      \
-    _ret; })
-# define INTERNAL_SYSCALL(name, err, nr, args...)			      \
-  (((__NR_##name) < 256) ?						      \
-    INTERNAL_SYSCALL_DIRECT(name, err, nr, args) :			      \
-    INTERNAL_SYSCALL_SVC0(name, err,nr, args))
-# define INTERNAL_SYSCALL_ERROR_P(val, err)				      \
-  ((unsigned long) (val) >= -4095UL)
-# define DECLARGS_0()
-# define DECLARGS_1(arg1) \
-	register unsigned long gpr2 asm ("2") = (unsigned long)(arg1);
-# define DECLARGS_2(arg1, arg2) \
-	DECLARGS_1(arg1) \
-	register unsigned long gpr3 asm ("3") = (unsigned long)(arg2);
-# define DECLARGS_3(arg1, arg2, arg3) \
-	DECLARGS_2(arg1, arg2) \
-	register unsigned long gpr4 asm ("4") = (unsigned long)(arg3);
-# define ASMFMT_0
-# define ASMFMT_1 , "0" (gpr2)
-# define ASMFMT_2 , "0" (gpr2), "d" (gpr3)
-# define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4)
-#elif defined __sparc__
-# ifndef __arch64__
-#  define __INTERNAL_SYSCALL_STRING					\
-	"ta	0x10;"							\
-	"bcs,a	1f;"							\
-	" sub	%%g0, %%o0, %%o0;"					\
-	"1:"
-#  define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6",		\
-	"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",			\
-	"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",		\
-	"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",		\
-	"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",		\
-	"cc", "memory"
-# else
-#  define __INTERNAL_SYSCALL_STRING					\
-	"ta	0x6d;"							\
-	"bcs,a,pt %%xcc, 1f;"						\
-	" sub	%%g0, %%o0, %%o0;"					\
-	"1:"
-#  define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6",		\
-	"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",			\
-	"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",		\
-	"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",		\
-	"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",		\
-	"f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46",		\
-	"f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62",		\
-	"cc", "memory"
-# endif
-#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
-#define INTERNAL_SYSCALL(name, err, nr, args...) \
-  inline_syscall##nr(__INTERNAL_SYSCALL_STRING, __NR_##name, args)
-#define INTERNAL_SYSCALL_ERROR_P(val, err) \
-  ((unsigned long) (val) >= -515L)
-# define inline_syscall0(string,name,dummy...)				\
-({									\
-	register long __o0 __asm__ ("o0");				\
-	register long __g1 __asm__ ("g1") = name;			\
-	__asm __volatile (string : "=r" (__g1), "=r" (__o0) :		\
-			  "0" (__g1) :					\
-			  __SYSCALL_CLOBBERS);				\
-	__o0;								\
-})
-# define inline_syscall1(string,name,arg1)				\
-({									\
-	register long __o0 __asm__ ("o0") = (long)(arg1);		\
-	register long __g1 __asm__ ("g1") = name;			\
-	__asm __volatile (string : "=r" (__g1), "=r" (__o0) :		\
-			  "0" (__g1), "1" (__o0) :			\
-			  __SYSCALL_CLOBBERS);				\
-	__o0;								\
-})
-# define inline_syscall2(string,name,arg1,arg2)				\
-({									\
-	register long __o0 __asm__ ("o0") = (long)(arg1);		\
-	register long __o1 __asm__ ("o1") = (long)(arg2);		\
-	register long __g1 __asm__ ("g1") = name;			\
-	__asm __volatile (string : "=r" (__g1), "=r" (__o0) :		\
-			  "0" (__g1), "1" (__o0), "r" (__o1) :		\
-			  __SYSCALL_CLOBBERS);				\
-	__o0;								\
-})
-# define inline_syscall3(string,name,arg1,arg2,arg3)			\
-({									\
-	register long __o0 __asm__ ("o0") = (long)(arg1);		\
-	register long __o1 __asm__ ("o1") = (long)(arg2);		\
-	register long __o2 __asm__ ("o2") = (long)(arg3);		\
-	register long __g1 __asm__ ("g1") = name;			\
-	__asm __volatile (string : "=r" (__g1), "=r" (__o0) :		\
-			  "0" (__g1), "1" (__o0), "r" (__o1),		\
-			  "r" (__o2) :					\
-			  __SYSCALL_CLOBBERS);				\
-	__o0;								\
-})
-#elif defined __alpha__
-# define INTERNAL_SYSCALL(name, err_out, nr, args...) \
-	INTERNAL_SYSCALL1(name, err_out, nr, args)
-# define INTERNAL_SYSCALL1(name, err_out, nr, args...)	\
-	INTERNAL_SYSCALL_NCS(__NR_##name, err_out, nr, args)
-# define INTERNAL_SYSCALL_NCS(name, err_out, nr, args...) \
-({							\
-	long _sc_ret, _sc_err;				\
-	inline_syscall##nr(name, args);			\
-	err_out = _sc_err;				\
-	_sc_ret;					\
-})
-# define INTERNAL_SYSCALL_DECL(err)		long int err
-# define INTERNAL_SYSCALL_ERROR_P(val, err)	err
-# define inline_syscall_clobbers			\
-	"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",	\
-	"$22", "$23", "$24", "$25", "$27", "$28", "memory"
-# define inline_syscall_r0_asm
-# define inline_syscall_r0_out_constraint	"=v"
-# define inline_syscall0(name, args...)				\
-{								\
-	register long _sc_0 inline_syscall_r0_asm;		\
-	register long _sc_19 __asm__("$19");			\
-								\
-	_sc_0 = name;						\
-	__asm__ __volatile__					\
-	  ("callsys # %0 %1 <= %2"				\
-	   : inline_syscall_r0_out_constraint (_sc_0),		\
-	     "=r"(_sc_19)					\
-	   : "0"(_sc_0)						\
-	   : inline_syscall_clobbers,				\
-	     "$16", "$17", "$18", "$20", "$21");		\
-	_sc_ret = _sc_0, _sc_err = _sc_19;			\
-}
-# define inline_syscall1(name,arg1)				\
-{								\
-	register long _sc_0 inline_syscall_r0_asm;		\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_19 __asm__("$19");			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = (long) (arg1);					\
-	__asm__ __volatile__					\
-	  ("callsys # %0 %1 <= %2 %3"				\
-	   : inline_syscall_r0_out_constraint (_sc_0),		\
-	     "=r"(_sc_19), "=r"(_sc_16)				\
-	   : "0"(_sc_0), "2"(_sc_16)				\
-	   : inline_syscall_clobbers,				\
-	     "$17", "$18", "$20", "$21");			\
-	_sc_ret = _sc_0, _sc_err = _sc_19;			\
-}
-# define inline_syscall2(name,arg1,arg2)			\
-{								\
-	register long _sc_0 inline_syscall_r0_asm;		\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_17 __asm__("$17");			\
-	register long _sc_19 __asm__("$19");			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = (long) (arg1);					\
-	_sc_17 = (long) (arg2);					\
-	__asm__ __volatile__					\
-	  ("callsys # %0 %1 <= %2 %3 %4"			\
-	   : inline_syscall_r0_out_constraint (_sc_0),		\
-	     "=r"(_sc_19), "=r"(_sc_16), "=r"(_sc_17)		\
-	   : "0"(_sc_0), "2"(_sc_16), "3"(_sc_17)		\
-	   : inline_syscall_clobbers,				\
-	     "$18", "$20", "$21");				\
-	_sc_ret = _sc_0, _sc_err = _sc_19;			\
-}
-# define inline_syscall3(name,arg1,arg2,arg3)			\
-{								\
-	register long _sc_0 inline_syscall_r0_asm;		\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_17 __asm__("$17");			\
-	register long _sc_18 __asm__("$18");			\
-	register long _sc_19 __asm__("$19");			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = (long) (arg1);					\
-	_sc_17 = (long) (arg2);					\
-	_sc_18 = (long) (arg3);					\
-	__asm__ __volatile__					\
-	  ("callsys # %0 %1 <= %2 %3 %4 %5"			\
-	   : inline_syscall_r0_out_constraint (_sc_0),		\
-	     "=r"(_sc_19), "=r"(_sc_16), "=r"(_sc_17),		\
-	     "=r"(_sc_18)					\
-	   : "0"(_sc_0), "2"(_sc_16), "3"(_sc_17),		\
-	     "4"(_sc_18)					\
-	   : inline_syscall_clobbers, "$20", "$21");		\
-	_sc_ret = _sc_0, _sc_err = _sc_19;			\
-}
-#endif
-
-char buffer[32768], data[32768];
-size_t datasize;
-char zonename[1024];
-
-ssize_t
-readall (int fd, void *buf, size_t len)
-{
-  INTERNAL_SYSCALL_DECL (err);
-  size_t n = len;
-  ssize_t ret;
-  do
-    {
-      ret = INTERNAL_SYSCALL (read, err, 3, fd, buf, n);
-      if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-	{
-	  ret = -1;
-	  break;
-	}
-      else if (ret == 0)
-	break;
-      buf = (char *) buf + ret;
-      n -= ret;
-    }
-  while (n > 0);
-  return ret < 0 ? ret : (ssize_t) (len - n);
-}
-
-ssize_t
-writeall (int fd, const void *buf, size_t len)
-{
-  INTERNAL_SYSCALL_DECL (err);
-  size_t n = len;
-  ssize_t ret;
-  do
-    {
-      ret = INTERNAL_SYSCALL (write, err, 3, fd, buf, n);
-      if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-	{
-	  ret = -1;
-	  break;
-	}
-      else if (ret == 0)
-	break;
-      buf = (const char *) buf + ret;
-      n -= ret;
-    }
-  while (n > 0);
-  return ret < 0 ? ret : (ssize_t) (len - n);
-}
-
-void
-update (const char *filename)
-{
-  INTERNAL_SYSCALL_DECL (err);
-  long int fd = INTERNAL_SYSCALL (open, err, 2, filename, O_RDONLY);
-  if (INTERNAL_SYSCALL_ERROR_P (fd, err))
-    return;
-  ssize_t ret = readall (fd, buffer, sizeof (buffer));
-  INTERNAL_SYSCALL (close, err, 1, fd);
-  if (ret <= 0 || (size_t) ret == sizeof (buffer))
-    return;
-  /* Don't update the file unnecessarily.  */
-  if ((size_t) ret == datasize && memcmp (buffer, data, datasize) == 0)
-    return;
-  size_t len = strlen (filename);
-  char tempfilename[len + sizeof (".tzupdate")];
-  memcpy (tempfilename, filename, len);
-  memcpy (tempfilename + len, ".tzupdate", sizeof (".tzupdate"));
-
-  fd = INTERNAL_SYSCALL (open, err, 3, tempfilename, O_WRONLY | O_CREAT | O_EXCL, 0600);
-  if (INTERNAL_SYSCALL_ERROR_P (fd, err))
-    return;
-  if (writeall (fd, data, datasize) != datasize)
-    {
-clean_up:
-      INTERNAL_SYSCALL (unlink, err, 1, tempfilename);
-      INTERNAL_SYSCALL (close, err, 1, fd);
-      return;
-    }
-  long int sret;
-  sret = INTERNAL_SYSCALL (fchmod, err, 2, fd, 0644);
-  if (INTERNAL_SYSCALL_ERROR_P (sret, err))
-    goto clean_up;
-  INTERNAL_SYSCALL (close, err, 1, fd);
-
-  sret = INTERNAL_SYSCALL (rename, err, 2, tempfilename, filename);
-  if (INTERNAL_SYSCALL_ERROR_P (sret, err))
-    INTERNAL_SYSCALL (unlink, err, 1, tempfilename);
-}
-
-int
-main (int argc, char **argv)
-{
-  INTERNAL_SYSCALL_DECL (err);
-  long int fd = INTERNAL_SYSCALL (open, err, 2, "/etc/sysconfig/clock", O_RDONLY);
-  if (INTERNAL_SYSCALL_ERROR_P (fd, err))
-    return 0;
-  ssize_t ret = readall (fd, buffer, sizeof (buffer) - 1);
-  INTERNAL_SYSCALL (close, err, 1, fd);
-  if (ret <= 0 || (size_t) ret == sizeof (buffer) - 1)
-    return 0;
-  char *p = buffer;
-  while (p != NULL)
-    {
-      while (*p == ' ' || *p == '\t') p++;
-      if (memcmp (p, "ZONE", 4) == 0)
-	{
-	  p += 4;
-	  while (*p == ' ' || *p == '\t') p++;
-	  if (*p == '=')
-	    {
-	      p++;
-	      while (*p == ' ' || *p == '\t') p++;
-	      if (*p == '"') p++;
-	      char *q = p;
-	      while (strchr (" \t\n\"", *p) == NULL) p++;
-	      const char path[] = "/usr/share/zoneinfo/";
-	      if (p - q >= sizeof (zonename) - sizeof (path))
-		return 0;
-	      memcpy (zonename, path, sizeof (path) - 1);
-	      memcpy (zonename + sizeof (path) - 1, q, p - q);
-	      break;
-	    }
-	}
-      p = strchr (p, '\n');
-      if (p) p++;
-    }
-  if (*zonename == '\0')
-    return 0;
-  fd = INTERNAL_SYSCALL (open, err, 2, zonename, O_RDONLY);
-  if (INTERNAL_SYSCALL_ERROR_P (fd, err))
-    return 0;
-  ret = readall (fd, data, sizeof (data));
-  INTERNAL_SYSCALL (close, err, 1, fd);
-  if (ret <= 0 || (size_t) ret == sizeof (data))
-    return 0;
-  datasize = (size_t) ret;
-  update ("/etc/localtime");
-  update ("/var/spool/postfix/etc/localtime");
-  return 0;
-}
-
-int __libc_multiple_threads __attribute__((nocommon));
-int __libc_enable_asynccancel (void) { return 0; }
-void __libc_disable_asynccancel (int x) { }
-void __libc_csu_init (void) { }
-void __libc_csu_fini (void) { }
-pid_t __fork (void) { return -1; }
-char thr_buf[65536];
-
-#ifndef __powerpc__
-int __libc_start_main (int (*main) (int argc, char **argv),
-		       int argc, char **argv,
-		       void (*init) (void), void (*fini) (void),
-		       void (*rtld_fini) (void), void * stack_end)
-#else
-struct startup_info
-{
-  void *sda_base;
-  int (*main) (int, char **, char **, void *);
-  int (*init) (int, char **, char **, void *);
-  void (*fini) (void);
-};
-
-int __libc_start_main (int argc, char **argv, char **ev,
-		       void *auxvec, void (*rtld_fini) (void),
-		       struct startup_info *stinfo,
-		       char **stack_on_entry)
-#endif
-{
-#if defined __ia64__ || defined __powerpc64__
-  register void *r13 __asm ("r13") = thr_buf + 32768;
-  __asm ("" : : "r" (r13));
-#elif defined __sparc__
-  register void *g6 __asm ("g6") = thr_buf + 32768;
-  __thread_self = thr_buf + 32768;
-  __asm ("" : : "r" (g6), "r" (__thread_self));
-#elif defined __s390__ && !defined __s390x__
-  __asm ("sar %%a0,%0" : : "d" (thr_buf + 32768));
-#elif defined __s390x__
-  __asm ("sar %%a1,%0; srlg 0,%0,32; sar %%a0,0" : : "d" (thr_buf + 32768) : "0");
-#elif defined __powerpc__ && !defined __powerpc64__
-  register void *r2 __asm ("r2") = thr_buf + 32768;
-  __asm ("" : : "r" (r2));
-#endif
-#ifdef __powerpc__
-  argc = (long)*stack_on_entry;
-  argv = stack_on_entry + 1;
-#endif
-  long ret = main (argc, argv);
-  INTERNAL_SYSCALL_DECL (err);
-  INTERNAL_SYSCALL (exit, err, 1, ret);
-  return 110;
-}