2000-11-13  H.J. Lu  <hjl@gnu.org>

	* config.make.in (build-compile-time-compatible): New.

	* configure.in: Add --enable-build-compile-time-compatible.
	Check "symver _sym,sym@@@VERS" if compile-time compatibility
	is enabled.
	* configure: Rebuilt.

2000-11-09  H.J. Lu  <hjl@gnu.org>

	* sunrpc/Versions (GLIBC_2.1): Remove xdr_cryptkeyarg,
	xdr_cryptkeyarg2, xdr_cryptkeyres, xdr_des_block,
	xdr_key_netstarg, xdr_key_netstres, xdr_keybuf and
	xdr_keystatus.

	* time/Versions (GLIBC_2.1): Move getitimer to ...
	* sysdeps/unix/sysv/linux/alpha/Versions (GLIBC_2.1): Here.

2000-11-09  H.J. Lu  <hjl@gnu.org>

	* io/Versions (GLIBC_2.1.1): Remove lockf64.

2000-11-09  H.J. Lu  <hjl@gnu.org>

	* Makeconfig (CPPFLAGS-.os): Add -DSHARED.
	(CPPFLAGS-.oS): Likewise.
	(pic-ccflag): Add -DSHARED -DPIC.

2000-11-07  H.J. Lu  <hjl@gnu.org>

	* misc/bits/symver.h.in: New.

	* misc/bits/symverinfo.h.in: New.

	* Makerules ($(common-objpfx)bits/symver.h): New target. Depend
	on $(common-objpfx)sysd-versions.
	($(common-objpfx)bits/symverinfo.h): Likewise.
	($(common-objpfx)sysd-versions): Also depend on
	$(..)misc/bits/symver.h.in and $(..)misc/bits/symverinfo.h.in.
	Handle $(build-compile-time-compatible) != yes.
	(common-generated): Add bits/symver.h and bits/symverinfo.h.

	* include/features.h: Include <bits/symver.h> if _LIBC is not
	defined.

	* include/libc-symbols.h: Include <bits/symver.h> for
	symbol_version and default_symbol_version.
	(_GLIBC_VERSIONED_SOURCE): Defined if SHARED is not defined.

	* misc/Makefile (headers): Add bits/symver.h and
	bits/symverinfo.h.

	* scripts/versions.awk: Also generate bits/symver.h and
	bits/symverinfo.h.

Index: gnu/glibc-2.1/Makeconfig
diff -u gnu/glibc-2.1/Makeconfig:1.5 gnu/glibc-2.1/Makeconfig:1.7
--- gnu/glibc-2.1/Makeconfig:1.5	Thu Nov  9 12:24:19 2000
+++ gnu/glibc-2.1/Makeconfig	Mon Nov 13 16:43:50 2000
@@ -599,11 +599,11 @@
 # Under --enable-shared, we will build a shared library of PIC objects.
 # The PIC object files are named foo.os.
 object-suffixes += .os
-CPPFLAGS-.os = -DPIC
+CPPFLAGS-.os = -DSHARED -DPIC
 CFLAGS-.os = $(filter %frame-pointer,$(+cflags)) $(pic-ccflag)
 libtype.os := lib%_pic.a
 # This can be changed by a sysdep makefile
-pic-ccflag = -fPIC
+pic-ccflag = -fPIC -DSHARED -DPIC
 endif
 ifeq (yes,$(build-profile))
 # Under --enable-profile, we will build a static library of profiled objects.
@@ -643,7 +643,7 @@
 # shared objects.  We don't want to use CFLAGS-os because users may, for
 # example, make that processor-specific.
 CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
-CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC
+CPPFLAGS-.oS = $(CPPFLAGS-.o) -DSHARED -DPIC
 libtype.oS = lib%_nonshared.a
 endif
 
Index: gnu/glibc-2.1/Makerules
diff -u gnu/glibc-2.1/Makerules:1.1.1.57 gnu/glibc-2.1/Makerules:1.6
--- gnu/glibc-2.1/Makerules:1.1.1.57	Sun May  7 16:34:25 2000
+++ gnu/glibc-2.1/Makerules	Thu Nov 16 09:51:11 2000
@@ -268,7 +268,9 @@
 ifdef sysd-dirs-done
 ifeq ($(versioning),yes)
 -include $(common-objpfx)sysd-versions
-$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
+$(addprefix $(common-objpfx),$(version-maps)) \
+  $(common-objpfx)bits/symver.h \
+  $(common-objpfx)bits/symverinfo.h: $(common-objpfx)sysd-versions
 common-generated += $(version-maps)
 postclean-generated += sysd-versions Versions.all
 
@@ -285,15 +287,38 @@
 			       $(..)scripts/versions.awk \
 			       $(wildcard $(all-subdirs:%=$(..)%/Versions)) \
 			       $(wildcard $(sysdirs:%=%/Versions)) \
+			       $(..)misc/bits/symver.h.in \
+			       $(..)misc/bits/symverinfo.h.in \
 			       $(sysd-versions-force)
 	{ echo 'sysd-versions-subdirs = $(all-subdirs) $(config-sysdirs)' ; \
 	  LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
-		 -v move_if_change='$(move-if-change)' \
-		 -f $(filter-out $< $(sysd-versions-force),$^); \
+		 -v srcroot=$(..) -v move_if_change='$(move-if-change)' \
+		 -f $(filter-out $< $(sysd-versions-force) \
+				 $(..)misc/bits/symver.h.in \
+				 $(..)misc/bits/symverinfo.h.in,$^); \
 	} > $@T
 	mv -f $@T $@
+ifneq ($(build-compile-time-compatible),yes)
+	echo "/* This is a dummy file. */" \
+	  > $(common-objpfx)bits/symverinfo.h.new
+	cp $(..)misc/bits/symver.h.in $(common-objpfx)bits/symver.h.new
+	echo "#endif /* bits/symver.h */" \
+	  >> $(common-objpfx)bits/symver.h.new
+endif
+	$(move-if-change) $(common-objpfx)bits/symverinfo.h.new \
+	  $(common-objpfx)bits/symverinfo.h
+	$(move-if-change) $(common-objpfx)bits/symver.h.new \
+	  $(common-objpfx)bits/symver.h
 endif # avoid-generated
+else
+$(common-objpfx)bits/symver.h: $(..)misc/bits/symver.h.in
+	$(make-target-directory)
+	echo "/* This is a dummy file. */" > $@
+$(common-objpfx)bits/symverinfo.h: $(..)misc/bits/symverinfo.h.in
+	$(make-target-directory)
+	echo "/* This is a dummy file. */" > $@
 endif # $(versioning) = yes
+common-generated += bits/symver.h bits/symverinfo.h
 endif # sysd-dirs-done
 
 ifndef compile-command.S
Index: gnu/glibc-2.1/config.make.in
diff -u gnu/glibc-2.1/config.make.in:1.3 gnu/glibc-2.1/config.make.in:1.4
--- gnu/glibc-2.1/config.make.in:1.3	Wed Feb 16 16:23:55 2000
+++ gnu/glibc-2.1/config.make.in	Mon Nov 13 16:43:51 2000
@@ -58,6 +58,7 @@
 build-omitfp = @omitfp@
 build-bounded = @bounded@
 build-static-nss = @static_nss@
+build-compile-time-compatible = @build_compile_time_compatible@
 stdio = @stdio@
 add-ons = @subdirs@
 cross-compiling = @cross_compiling@
Index: gnu/glibc-2.1/configure.in
diff -u gnu/glibc-2.1/configure.in:1.3 gnu/glibc-2.1/configure.in:1.4
--- gnu/glibc-2.1/configure.in:1.3	Wed Jan 12 08:53:24 2000
+++ gnu/glibc-2.1/configure.in	Mon Nov 13 16:43:51 2000
@@ -137,6 +137,14 @@
   AC_DEFINE(DO_STATIC_NSS)
 fi
 
+dnl Do we want to provide the compile-time compatibility?
+AC_ARG_ENABLE(build-compile-time-compatible, dnl
+[  --enable-build-compile-time-compatible
+			  provide compile-time compatibility [default=no]],
+	      build_compile_time_compatible=$enableval,
+	      build_compile_time_compatible=no)
+AC_SUBST(build_compile_time_compatible)
+
 AC_ARG_ENABLE(force-install,
 [  --disable-force-install don't force installation of files from this package,
 			  even if they are older than the installed files],
@@ -717,6 +725,29 @@
   libc_cv_asm_symver_directive=no
 fi
 rm -f conftest*])
+
+if test $build_compile_time_compatible = yes; then
+  AC_CACHE_CHECK(for .symver assembler directive with @@@, libc_cv_asm_fullsymver_directive,
+  [cat > conftest.s <<EOF
+${libc_cv_dot_text}
+.long _sym
+.symver _sym,sym@@@VERS
+EOF
+  if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
+    libc_cv_asm_fullsymver_directive=yes
+  else
+    libc_cv_asm_fullsymver_directive=no
+  fi
+  rm -f conftest*])
+  if test $libc_cv_asm_fullsymver_directive = no; then
+    echo "\
+*** ERROR: The compile-time compatiblility needs the full symbol
+*** versioning support in assembler. You need recent binutils
+*** (binutils 2.10.0.36 or newer)."
+    exit 1
+  fi
+fi
+
 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
 if test $libc_cv_asm_symver_directive = yes; then
   cat > conftest.s <<EOF
Index: gnu/glibc-2.1/include/features.h
diff -u gnu/glibc-2.1/include/features.h:1.1.1.8 gnu/glibc-2.1/include/features.h:1.2
--- gnu/glibc-2.1/include/features.h:1.1.1.8	Wed Jan 12 08:45:57 2000
+++ gnu/glibc-2.1/include/features.h	Fri Nov 10 11:56:19 2000
@@ -276,6 +276,9 @@
    file would depend on stubs.h.  */
 
 # include <gnu/stubs.h>
+
+/* Get the symbol versioning infomation. */
+# include <bits/symver.h>
 #endif
 
 #endif	/* features.h  */
Index: gnu/glibc-2.1/include/libc-symbols.h
diff -u gnu/glibc-2.1/include/libc-symbols.h:1.6 gnu/glibc-2.1/include/libc-symbols.h:1.11
--- gnu/glibc-2.1/include/libc-symbols.h:1.6	Sun Aug  8 10:03:32 1999
+++ gnu/glibc-2.1/include/libc-symbols.h	Sat Nov 18 14:15:15 2000
@@ -331,17 +331,14 @@
 #endif	/* Have GNU ld.  */
 
 #if DO_VERSIONING
-# ifdef __ASSEMBLER__
-#  define symbol_version(real, name, version) \
-     .symver real, name##@##version
-#  define default_symbol_version(real, name, version) \
-     .symver real, name##@##@##version
-# else
-#  define symbol_version(real, name, version) \
-     __asm__ (".symver " #real "," #name "@" #version)
-#  define default_symbol_version(real, name, version) \
-     __asm__ (".symver " #real "," #name "@@" #version)
+# define symbol_version(real, name, version) \
+     _symbol_version(real, name, version)
+# define default_symbol_version(real, name, version) \
+     _default_symbol_version(real, name, version)
+# ifndef SHARED
+#  define _GLIBC_VERSIONED_SOURCE
 # endif
+# include <bits/symver.h>
 #else
 # define symbol_version(real, name, version)
 # define default_symbol_version(real, name, version) \
Index: gnu/glibc-2.1/io/Versions
diff -u gnu/glibc-2.1/io/Versions:1.1.1.4 gnu/glibc-2.1/io/Versions:1.2
--- gnu/glibc-2.1/io/Versions:1.1.1.4	Wed Jan 12 08:46:05 2000
+++ gnu/glibc-2.1/io/Versions	Fri Nov 10 11:56:19 2000
@@ -83,10 +83,6 @@
     # s*
     statfs64; statvfs; statvfs64;
   }
-  GLIBC_2.1.1 {
-    # l*
-    lockf64;
-  }
   GLIBC_2.1.3 {
     # For the cancelation wrappers.
     __libc_open64; __libc_lseek64;
Index: gnu/glibc-2.1/misc/Makefile
diff -u gnu/glibc-2.1/misc/Makefile:1.1.1.12 gnu/glibc-2.1/misc/Makefile:1.2
--- gnu/glibc-2.1/misc/Makefile:1.1.1.12	Thu Oct  8 08:10:58 1998
+++ gnu/glibc-2.1/misc/Makefile	Fri Nov 10 11:56:20 2000
@@ -29,7 +29,8 @@
 	   sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \
 	   sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
 	   sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \
-	   regexp.h bits/select.h bits/mman.h
+	   regexp.h bits/select.h bits/mman.h \
+	   bits/symver.h bits/symverinfo.h
 
 routines := brk sbrk sstk ioctl \
 	    readv writev \
Index: gnu/glibc-2.1/misc/bits/symver.h.in
diff -u /dev/null gnu/glibc-2.1/misc/bits/symver.h.in:1.1
--- /dev/null	Sat Nov 18 14:20:21 2000
+++ gnu/glibc-2.1/misc/bits/symver.h.in	Fri Nov 10 11:56:20 2000
@@ -0,0 +1,39 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _BITS_SYMVER_H
+#define _BITS_SYMVER_H 1
+
+#ifdef __ASSEMBLER__
+# define _symbol_version(real, name, version) \
+    .symver real, name##@##version
+# define _default_symbol_version(real, name, version) \
+    .symver real, name##@##@##version
+# define _full_symbol_version(real, name, version) \
+    .symver real, name##@##@##@##version
+#else
+# define _symbol_version(real, name, version) \
+    __asm__ (".symver " #real "," #name "@" #version)
+# define _default_symbol_version(real, name, version) \
+    __asm__ (".symver " #real "," #name "@@" #version)
+# define _full_symbol_version(real, name, version) \
+    __asm__ (".symver " #real "," #name "@@@" #version)
+#endif
+
+#include <bits/symverinfo.h>
+
Index: gnu/glibc-2.1/misc/bits/symverinfo.h.in
diff -u /dev/null gnu/glibc-2.1/misc/bits/symverinfo.h.in:1.3
--- /dev/null	Sat Nov 18 14:20:21 2000
+++ gnu/glibc-2.1/misc/bits/symverinfo.h.in	Sat Nov 18 14:17:20 2000
@@ -0,0 +1,76 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _BITS_SYMVERINFO_H
+#define _BITS_SYMVERINFO_H 1
+
+/* These are defined by the user (or the compiler) to specify which
+   version of glibc the source will be compiled against:
+
+   _GLIBC_2_0_SOURCE		glibc 2.0
+   _GLIBC_2_1_SOURCE		glibc 2.1
+   _GLIBC_2_1_1_SOURCE		glibc 2.1.1
+   _GLIBC_2_1_2_SOURCE		glibc 2.1.2
+
+   _GLIBC_VERSIONED_SOURCE	glibc with versioned interface
+
+   These are defined by this file and are used by the
+   header files to decide what to declare or define:
+
+   __USE_GLIBC_2_0		Define glibc 2.0 things.
+   __USE_GLIBC_2_1		Define glibc 2.1 things.
+   __USE_GLIBC_2_1_1		Define glibc 2.1.1 things.
+   __USE_GLIBC_2_1_2		Define glibc 2.1.2 things.
+
+   __USE_VERSIONED_INTERFACE	Define versioned interface.
+
+ */
+
+#undef __USE_GLIBC_2_0
+#undef __USE_GLIBC_2_1
+#undef __USE_GLIBC_2_1_1
+#undef __USE_GLIBC_2_1_2
+
+#ifdef _GLIBC_2_0_SOURCE
+# define __USE_GLIBC_2_0
+#elif defined _GLIBC_2_1_SOURCE
+# define __USE_GLIBC_2_1
+#elif defined _GLIBC_2_1_1_SOURCE
+# define __USE_GLIBC_2_1_1
+#elif defined _GLIBC_2_1_2_SOURCE
+# define __USE_GLIBC_2_1_2
+#endif
+
+#undef __USE_VERSIONED_INTERFACE
+
+#ifdef _GLIBC_VERSIONED_SOURCE
+# define __USE_VERSIONED_INTERFACE
+#endif
+
+#ifndef __USE_VERSIONED_INTERFACE
+# if defined __USE_GLIBC_2_0 || defined __USE_GLIBC_2_1 \
+    || defined __USE_GLIBC_2_1_1 || defined __USE_GLIBC_2_1_2
+#  define __USE_VERSIONED_INTERFACE
+# endif
+#endif
+
+#ifdef __USE_GLIBC_2_0
+# ifndef _IO_USE_OLD_IO_FILE
+#  define _IO_USE_OLD_IO_FILE
+# endif
+#endif
Index: gnu/glibc-2.1/pwd/Versions
diff -u gnu/glibc-2.1/pwd/Versions:1.1.1.2 gnu/glibc-2.1/pwd/Versions:1.2
--- gnu/glibc-2.1/pwd/Versions:1.1.1.2	Sun Jul 11 12:25:25 1999
+++ gnu/glibc-2.1/pwd/Versions	Thu Nov  9 10:25:01 2000
@@ -14,6 +14,6 @@
   }
   GLIBC_2.1.2 {
     # g*
-    getpwent_r; getpwuid_r;
+    getpwent_r; getpwuid_r; getpwnam_r;
   }
 }
Index: gnu/glibc-2.1/scripts/versions.awk
diff -u gnu/glibc-2.1/scripts/versions.awk:1.1.1.4 gnu/glibc-2.1/scripts/versions.awk:1.6
--- gnu/glibc-2.1/scripts/versions.awk:1.1.1.4	Sun Feb 14 09:07:34 1999
+++ gnu/glibc-2.1/scripts/versions.awk	Sat Nov 18 14:15:18 2000
@@ -1,10 +1,11 @@
 # Combine version map fragments into version files for the generated
 # shared object.
-# (C) Copyright 1998, 1999 Free Software Foundation, Inc.
+# (C) Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
 # Written by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
 # This script expects the following variables to be defined:
 # defsfile		name of Versions.def file
+# srcroot		name of source root directory with trailing slash
 # buildroot		name of build directory with trailing slash
 # move_if_change	move-if-change command
 
@@ -80,6 +81,19 @@
 
 # Now print the accumulated information.
 END {
+  system("mkdir -p " buildroot "bits");
+  real_symver = buildroot "bits/symver.h.new"
+  symver = real_symver "T"
+  system("cp " srcroot "misc/bits/symver.h.in " symver);
+  real_symverinfo = buildroot "bits/symverinfo.h.new"
+  symverinfo = real_symverinfo "T"
+  system("cp " srcroot "misc/bits/symverinfo.h.in " symverinfo);
+  # We exclude some functions like system call wrappers in libpthread.
+  excludes="accept; close; connect; fcntl; fsync; lseek; msync; \
+	    nanosleep; open; pause; read; recv; recvfrom; recvmsg; \
+	    send; sendmsg; sendto; system; tcdrain; wait; waitpid; \
+	    write;"
+  split(excludes, excluded);
   close(sort);
   oldlib = "";
   oldver = "";
@@ -107,11 +121,122 @@
     printf("   ") > outfile;
     for (n = 3; n <= NF; ++n) {
       printf(" %s", $n) > outfile;
+      if ($n ~ /^_/ && $n !~ /^_sys_errlist/ && $n !~ /^_sys_siglist/ && $n !~ /^_sys_nerr/)
+	continue;
+      # No pthread functions.
+      if ($n ~ /^pthread_/ && $n !~ /^pthread_attr_init/)
+	continue;
+      if ($n ~ /[*\.\[\]\?]/)
+	continue;
+      skip=0;
+      for (i in excluded) {
+	if ($n ~ "^" excluded[i]) {
+	  skip=1;
+	  break;
+	}
+      }
+      if (skip == 1)
+	continue;
+      if ($1 == "libc") {
+	symbol=$n;
+	sub (/;/, "", symbol);
+	symbols[$2, symbol] = symbol;
+	nsymbols[symbol]++;
+      }
     }
     printf("\n") > outfile;
   }
+  close(tmpfile)
   printf("\n");
   closeversion(oldver);
   close_and_move(outfile, real_outfile);
+  printf("#ifdef __USE_VERSIONED_INTERFACE\n\n") >> symver;
+  for (v in versions) {
+    printf ("%s\n", v) | sort;
+  }
+  close(sort);
+  totalversion=0;
+  while(getline < tmpfile) {
+    totalversion++;
+    sortedversions[totalversion]=$1;
+  }
+  close(tmpfile)
+  for (s in nsymbols) {
+    printf ("%s\n", s) | sort;
+    nsymbols[s]=0;
+    for (v in versions) {
+      if (symbols[v, s]) {
+	nsymbols[s]++;
+      }
+    }
+  }
+  close(sort);
+  while(getline < tmpfile) {
+    s=$1;
+    if (nsymbols[s] > 1) {
+      nversions=0;
+      for (v in versions) {
+	if (symbols[v, s]) {
+	  nversions++;
+	}
+      }
+      for (j = 0; j < totalversion; j++) {
+	if (symbols[sortedversions[j], s]) {
+	  n=j;
+	  for (i = n + 1; i < totalversion; i++) {
+	    if (symbols[sortedversions[i], s]) {
+	      n=i;
+	      break;
+	    }
+	  }
+	  m="__USE_" sortedversions[j] "_" s;
+	  gsub (/\./, "_", m);
+	  for (i = j; i < n; i++) {
+	    glibcver="__USE_" sortedversions[i];
+	    gsub (/\./, "_", glibcver);
+	    printf("#ifdef %s\n", glibcver) >> symverinfo
+	    printf("#define %s\n", m) >> symverinfo
+	    printf("#endif\n") >> symverinfo
+	  }
+        }
+      }
+      i=0;
+      for (j = 0; j < totalversion; j++) {
+	v=sortedversions[j];
+	if (symbols[v, s]) {
+	  i++;
+	  m="__USE_" v "_" s;
+	  gsub (/\./, "_", m);
+	  if (i == 1) {
+	    printf("#ifdef %s\n", m) >> symver;
+	    printf("_symbol_version (%s, %s, %s);\n", s, s, v) >> symver;
+	  }
+	  else if (i != nversions) {
+	    printf("#elif defined %s\n", m) >> symver;
+	    printf("_symbol_version (%s, %s, %s);\n", s, s, v) >> symver;
+	  }
+	  else {
+	    printf("#else\n") >> symver;
+	    printf("_symbol_version (%s, %s, %s);\n", s, s, v) >> symver;
+	    printf("#endif\n") >> symver;
+	  }
+	}
+      }
+    }
+    else {
+      for (v in versions) {
+	if (symbols[v, s]) {
+	  printf("_full_symbol_version (%s, %s, %s);\n", s, s, v) >> symver;
+	  break;
+	}
+      }
+    }
+  }
+  close(tmpfile)
+  printf("\n#endif /* !__USE_VERSIONED_INTERFACE */\n") >> symver;
+  printf("\n#endif /* bits/symver.h */\n") >> symver;
+  close_and_move(symver, real_symver);
+  printf("\n#endif /* bits/symverinfo.h */\n") >> symverinfo;
+  close_and_move(symverinfo, real_symverinfo);
   system("rm -f " tmpfile);
 }
Index: gnu/glibc-2.1/sunrpc/Versions
diff -u gnu/glibc-2.1/sunrpc/Versions:1.1.1.6 gnu/glibc-2.1/sunrpc/Versions:1.2
--- gnu/glibc-2.1/sunrpc/Versions:1.1.1.6	Thu Apr  8 12:21:14 1999
+++ gnu/glibc-2.1/sunrpc/Versions	Fri Nov 10 11:56:20 2000
@@ -98,9 +98,8 @@
 
     # x*
     xdecrypt; xdr_authdes_cred; xdr_authdes_verf;
-    xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block;
-    xdr_getcredres; xdr_int16_t; xdr_int32_t; xdr_int8_t; xdr_key_netstarg;
-    xdr_key_netstres; xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof;
+    xdr_getcredres; xdr_int16_t; xdr_int32_t; xdr_int8_t;
+    xdr_netnamestr; xdr_sizeof;
     xdr_uint16_t; xdr_uint32_t; xdr_uint8_t; xdr_unixcred;
   }
   GLIBC_2.1.1 {
Index: gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions
diff -u gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions:1.1.1.1 gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions:1.2
--- gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions:1.1.1.1	Tue Jul 14 17:23:42 1998
+++ gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions	Fri Nov 10 11:56:20 2000
@@ -32,7 +32,7 @@
     getrusage;
 
     # time type change
-    gettimeofday;
+    gettimeofday; getitimer;
 
     # i*
     ieee_get_fp_control; ieee_set_fp_control;
Index: gnu/glibc-2.1/time/Versions
diff -u gnu/glibc-2.1/time/Versions:1.1.1.2 gnu/glibc-2.1/time/Versions:1.2
--- gnu/glibc-2.1/time/Versions:1.1.1.2	Fri Jan 29 16:03:09 1999
+++ gnu/glibc-2.1/time/Versions	Fri Nov 10 11:56:21 2000
@@ -44,6 +44,6 @@
     getdate_err;
 
     # g*
-    getdate; getdate_r; getitimer;
+    getdate; getdate_r;
   }
 }
