about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-01-22 05:26:05 +0000
committerUlrich Drepper <drepper@redhat.com>1997-01-22 05:26:05 +0000
commit1ef32c3dc40295020b91220399d24435f6a78e48 (patch)
treeef31e1d6356e50956094905035fab7f9d63016f8
parentfd26970f3324277683be531ad2c31f42e19e4b48 (diff)
downloadglibc-1ef32c3dc40295020b91220399d24435f6a78e48.tar.gz
glibc-1ef32c3dc40295020b91220399d24435f6a78e48.tar.xz
glibc-1ef32c3dc40295020b91220399d24435f6a78e48.zip
update from main archive 970121 cvs/libc-970122
1997-01-21  Paul Eggert  <eggert@twinsun.com>

	* posix/getopt.c (_getopt_internal): Return -1, not EOF, when args
	are exhausted; this is required by POSIX.2.
	* catgets/gencat.c, db/makedb.c, locale/programs/locale.c,
	locale/programs/localedef.c, manual/examples/subopt.c,
	posix/getopt.c, posix/getopt1.c, stdio-common/bug4.c,
	sunrpc/rpcinfo.c (main): Check getopt return value against -1, not EOF.

Tue Jan 21 23:10:40 1997  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 1.102.

	* sysdeps/unix/sysv/linux/alpha/Dist: Add kernel_sigaction.h.

	* elf/Makefile: Don't use CFLAGS-dl-load.c, but instead
	CPPFLAGS-dl-load.c so that dependencies can be determined correctly.
	* elf/dl-load.c: Fix comment.

	* time/Banner: New file.
	* time/Makefile (distribute): Add Banner.

	Update from ADO tzcode1997a and tzdata1997a.
	* time/antarctica: Update.
	* time/australia: Update.
	* time/zdump.c: Update.
	* time/zic.c: Update.
	* time/zone.tab: Update.

Mon Jan 20 08:38:32 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* config.make.in (has-ldconfig): New variable.

	* configure, configure.in (has_ldconfig): New substitute.

	* sysdeps/unix/sysv/linux/configure.in (has_ldconfig): New,
	check if $srcdir/elf/ldconfig.c exists.

	* Makeconfig (rootsbindir): New, default as
	$(exec_prefix)/sbin.
	(rtld-version-installed-name): New, default as
	ld-$(version).so.

	* Makefile (install): Call `$(common-objpfx)elf/ldconfig -d'
	only if $(cross-compiling) is no and $(build-shared) is yes.

	* Makerules (make-shlib-link): New macro.
	($(slibdir)/libfoo.so.$(libfoo.so-version)): Use
	$(make-shlib-link) for symlink.
	(install-rootsbin, install-rootsbin-nosubdir): New.
	(install-no-libc.a-nosubdir): Add
	install-rootsbin-nosubdir.

	* Rules (others): Add $(install-rootsbin).

	* config.make.in (rootsbindir): New.

	* configure, configure.in (libc_cv_rootsbindir): New
	substitute.

	* elf/Makefile (others, install-rootsbin): New, set to
	ldconfig.
	(+link): New for static linking.
	($(slibdir)/$(rtld-version-installed-name)): New.
	($(slibdir)/$(rtld-installed-name)): Depend on
	$(slibdir)/$(rtld-version-installed-name) and use
	$(make-shlib-link) for symlink.

	* sunrpc/xdr.c (xdr_string): Return FALSE if sp == NULL
	while XDR_ENCODE.

	* sysdeps/unix/sysv/linux/a.out.h: Use #include_next for
	glibc internals.

	* sysdeps/unix/sysv/linux/configure.in (libc_cv_rootsbindir):
	New, set to "/sbin" if "$prefix" == "/usr".

Tue Jan 21 13:38:39 1997  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile (distribute): Add glibcbug.in.
	Reported by Philip Blundell <pjb27@cam.ac.uk>.

	* elf/Makefile ($(objpfx)trusted-dirs.h): Create elf/ subdir in
	build directory if necessary.
	Reported by marcus@shannon.sysc.pdx.edu (Marcus G. Daniels).
-rw-r--r--ChangeLog86
-rw-r--r--Makeconfig8
-rw-r--r--Makefile8
-rw-r--r--Makerules33
-rw-r--r--Rules3
-rw-r--r--catgets/gencat.c2
-rw-r--r--config.make.in5
-rwxr-xr-xconfigure4
-rw-r--r--configure.in4
-rw-r--r--db/makedb.c2
-rw-r--r--elf/Makefile25
-rw-r--r--elf/dl-load.c2
-rw-r--r--locale/programs/locale.c2
-rw-r--r--locale/programs/localedef.c2
-rw-r--r--manual/examples/subopt.c2
-rw-r--r--nis/Makefile3
-rw-r--r--posix/getopt.c12
-rw-r--r--posix/getopt.h4
-rw-r--r--posix/getopt1.c5
-rw-r--r--stdio-common/bug4.c2
-rw-r--r--sunrpc/rpcinfo.c2
-rw-r--r--sunrpc/xdr.c2
-rw-r--r--sysdeps/unix/sysv/linux/a.out.h6
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/configure9
-rw-r--r--sysdeps/unix/sysv/linux/configure.in7
-rw-r--r--time/Banner1
-rw-r--r--time/Makefile5
-rw-r--r--time/antarctica44
-rw-r--r--time/australasia3
-rw-r--r--time/zdump.c4
-rw-r--r--time/zic.c4
-rw-r--r--time/zone.tab2
-rw-r--r--version.h2
34 files changed, 254 insertions, 52 deletions
diff --git a/ChangeLog b/ChangeLog
index a42b6d0b6f..be142d580a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,89 @@
+1997-01-21  Paul Eggert  <eggert@twinsun.com>
+
+	* posix/getopt.c (_getopt_internal): Return -1, not EOF, when args
+	are exhausted; this is required by POSIX.2.
+	* catgets/gencat.c, db/makedb.c, locale/programs/locale.c,
+	locale/programs/localedef.c, manual/examples/subopt.c,
+	posix/getopt.c, posix/getopt1.c, stdio-common/bug4.c,
+	sunrpc/rpcinfo.c (main): Check getopt return value against -1, not EOF.
+
+Tue Jan 21 23:10:40 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+	* version.h (VERSION): Bump to 1.102.
+
+	* sysdeps/unix/sysv/linux/alpha/Dist: Add kernel_sigaction.h.
+
+	* elf/Makefile: Don't use CFLAGS-dl-load.c, but instead
+	CPPFLAGS-dl-load.c so that dependencies can be determined correctly.
+	* elf/dl-load.c: Fix comment.
+
+	* time/Banner: New file.
+	* time/Makefile (distribute): Add Banner.
+
+	Update from ADO tzcode1997a and tzdata1997a.
+	* time/antarctica: Update.
+	* time/australia: Update.
+	* time/zdump.c: Update.
+	* time/zic.c: Update.
+	* time/zone.tab: Update.
+
+Mon Jan 20 08:38:32 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
+
+	* config.make.in (has-ldconfig): New variable.
+
+	* configure, configure.in (has_ldconfig): New substitute.
+
+	* sysdeps/unix/sysv/linux/configure.in (has_ldconfig): New,
+	check if $srcdir/elf/ldconfig.c exists.
+
+	* Makeconfig (rootsbindir): New, default as
+	$(exec_prefix)/sbin.
+	(rtld-version-installed-name): New, default as
+	ld-$(version).so.
+
+	* Makefile (install): Call `$(common-objpfx)elf/ldconfig -d'
+	only if $(cross-compiling) is no and $(build-shared) is yes.
+
+	* Makerules (make-shlib-link): New macro.
+	($(slibdir)/libfoo.so.$(libfoo.so-version)): Use
+	$(make-shlib-link) for symlink.
+	(install-rootsbin, install-rootsbin-nosubdir): New.
+	(install-no-libc.a-nosubdir): Add
+	install-rootsbin-nosubdir.
+
+	* Rules (others): Add $(install-rootsbin).
+
+	* config.make.in (rootsbindir): New.
+
+	* configure, configure.in (libc_cv_rootsbindir): New
+	substitute.
+
+	* elf/Makefile (others, install-rootsbin): New, set to
+	ldconfig.
+	(+link): New for static linking.
+	($(slibdir)/$(rtld-version-installed-name)): New.
+	($(slibdir)/$(rtld-installed-name)): Depend on
+	$(slibdir)/$(rtld-version-installed-name) and use
+	$(make-shlib-link) for symlink.
+
+	* sunrpc/xdr.c (xdr_string): Return FALSE if sp == NULL
+	while XDR_ENCODE.
+
+	* sysdeps/unix/sysv/linux/a.out.h: Use #include_next for
+	glibc internals.
+
+	* sysdeps/unix/sysv/linux/configure.in (libc_cv_rootsbindir):
+	New, set to "/sbin" if "$prefix" == "/usr".
+
+Tue Jan 21 13:38:39 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+	* Makefile (distribute): Add glibcbug.in.
+	Reported by Philip Blundell <pjb27@cam.ac.uk>.
+
+	* elf/Makefile ($(objpfx)trusted-dirs.h): Create elf/ subdir in
+	build directory if necessary.
+	Reported by marcus@shannon.sysc.pdx.edu (Marcus G. Daniels).
+
 Tue Jan 21 04:05:20 1997  Ulrich Drepper  <drepper@cygnus.com>
 
 	* version.h (VERSION): Bump to 1.101.
diff --git a/Makeconfig b/Makeconfig
index 37d5f62173..46d9b72e79 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -194,6 +194,10 @@ bindir = $(exec_prefix)/bin
 endif
 
 # Where to install administrative programs.
+ifndef rootsbindir
+rootsbindir = $(exec_prefix)/sbin
+endif
+
 ifndef sbindir
 sbindir = $(exec_prefix)/sbin
 endif
@@ -561,6 +565,10 @@ rtld-installed-name = ld.so.1
 endif
 endif
 
+ifndef rtld-version-installed-name
+rtld-version-installed-name = ld-$(version).so
+endif
+
 endif # build-shared
 
 endif # Makeconfig not yet included
diff --git a/Makefile b/Makefile
index 8f0a879053..0d47b07c14 100644
--- a/Makefile
+++ b/Makefile
@@ -111,6 +111,12 @@ include Makerules
 
 # Install from subdirectories too.
 install: subdir_install
+ifeq (no,$(cross-compiling))
+ifeq (yes,$(build-shared))
+	test ! -x $(common-objpfx)elf/ldconfig || \
+	  $(common-objpfx)elf/ldconfig -d
+endif
+endif
 
 # Build subdirectory lib objects.
 lib-noranlib: subdir_lib
@@ -296,7 +302,7 @@ distribute  := README INSTALL FAQ NOTES NEWS PROJECTS			\
 	       autolock.sh rellns-sh munch-tmpl.c munch.awk interp.c	\
 	       sysdep.h set-hooks.h libc-symbols.h version.h shlib-versions \
 	       rpm/Makefile rpm/template rpm/rpmrc nsswitch.h netgroup.h \
-	       mcheck.h
+	       mcheck.h glibcbug.in
 
 distribute := $(strip $(distribute))
 generated := $(generated) stubs.h version-info.h
diff --git a/Makerules b/Makerules
index 88d55a664a..08de5a17f9 100644
--- a/Makerules
+++ b/Makerules
@@ -616,13 +616,27 @@ mv -f $@.new $@
 endef
 endif
 
+# XXX The following will have to be changed when `ldconfig' is available.
+ifneq (yes,$(cross-compiling))
+ifeq (yes,$(has-ldconfig))
+define make-shlib-link
+@:
+endef
+endif
+endif
+ifndef make-shlib-link
+define make-shlib-link
+$(make-link)
+endef
+endif
+
 ifdef libc.so-version
 # For a library specified to be version N, install three files:
 # libc.so	->	libc.so.N	(e.g. libc.so.6)
 # libc.so.6	->	libc-VERSION.so	(e.g. libc-1.10.so)
 
 $(slibdir)/libc.so$(libc.so-version): $(slibdir)/libc-$(version).so
-	$(make-link)
+	$(make-shlib-link)
 $(slibdir)/libc-$(version).so: $(common-objpfx)libc.so; $(do-install-program)
 install: $(slibdir)/libc.so$(libc.so-version)
 
@@ -672,7 +686,8 @@ include $(o-iterator)
 
 ifeq (,$($(subdir)-version))
 define o-iterator-doit
-$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$(version).so; $$(make-link)
+$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$(version).so;
+	$$(make-shlib-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
@@ -685,7 +700,7 @@ include $(o-iterator)
 else
 define o-iterator-doit
 $(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$($(subdir)-version).so;
-	$$(make-link)
+	$$(make-shlib-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
@@ -718,6 +733,10 @@ ifdef install-bin
 $(addprefix $(bindir)/,$(install-bin)): $(bindir)/%: $(objpfx)%
 	$(do-install-program)
 endif
+ifdef install-rootsbin
+$(addprefix $(rootsbindir)/,$(install-rootsbin)): $(rootsbindir)/%: $(objpfx)%
+	$(do-install-program)
+endif
 ifdef install-sbin
 $(addprefix $(sbindir)/,$(install-sbin)): $(sbindir)/%: $(objpfx)%
 	$(do-install-program)
@@ -746,9 +765,10 @@ $(addprefix $(includedir)/,$(headers)): \
 	$(includedir)/%: %;$(do-install)
 endif	# headers
 
-.PHONY: install-bin-nosubdir install-sbin-nosubdir install-lib-nosubdir \
-	install-data-nosubdir install-headers-nosubdir
+.PHONY: install-bin-nosubdir install-rootsbin-nosubdir install-sbin-nosubdir \
+	install-lib-nosubdir install-data-nosubdir install-headers-nosubdir
 install-bin-nosubdir: $(addprefix $(bindir)/,$(install-bin))
+install-rootsbin-nosubdir: $(addprefix $(rootsbindir)/,$(install-rootsbin))
 install-sbin-nosubdir: $(addprefix $(sbindir)/,$(install-sbin))
 install-lib-nosubdir: $(addprefix $(libdir)/,\
 		       $(patsubst lib%.a,lib$(libprefix)%.a,$(install-lib.a)) \
@@ -766,7 +786,8 @@ install-%:: install-%-nosubdir ;
 .PHONY: install install-no-libc.a-nosubdir
 install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir\
 			    install-bin-nosubdir install-lib-nosubdir	\
-			    install-others-nosubdir install-sbin-nosubdir
+			    install-others-nosubdir install-rootsbin-nosubdir \
+			    install-sbin-nosubdir
 install: install-no-libc.a-nosubdir
 
 # Command to compile $< in $(objdir) using the native libraries.
diff --git a/Rules b/Rules
index 0cf6c002c0..32b1753f44 100644
--- a/Rules
+++ b/Rules
@@ -39,7 +39,8 @@ export subdir := $(subdir)
 all: objs lib others
 
 others: $(addprefix $(objpfx),$(extra-objs) \
-			      $(install-lib) $(install-bin) $(install-sbin))
+			      $(install-lib) $(install-bin) \
+			      $(install-rootsbin) $(install-sbin))
 
 ifneq	"$(findstring env,$(origin headers))" ""
 headers :=
diff --git a/catgets/gencat.c b/catgets/gencat.c
index 1616abfa1e..7047057832 100644
--- a/catgets/gencat.c
+++ b/catgets/gencat.c
@@ -141,7 +141,7 @@ main (int argc, char *argv[])
   header_name = NULL;
   result = NULL;
 
-  while ((opt = getopt_long (argc, argv, "hH:o:V", long_options, NULL)) != EOF)
+  while ((opt = getopt_long (argc, argv, "hH:o:V", long_options, NULL)) != -1)
     switch (opt)
       {
       case '\0':	/* Long option.  */
diff --git a/config.make.in b/config.make.in
index a4a667625e..0e61a145f1 100644
--- a/config.make.in
+++ b/config.make.in
@@ -7,6 +7,11 @@ prefix = @prefix@
 exec_prefix = @exec_prefix@
 slibdir = @libc_cv_slibdir@
 sysconfdir = @libc_cv_sysconfdir@
+rootsbindir = $(install_root)@libc_cv_rootsbindir@
+
+# If ldconfig exists.  This will go away as soon as `ldconfig' is available
+# in GNU libc.
+has-ldconfig = @has_ldconfig@
 
 # System configuration.
 config-machine = @host_cpu@
diff --git a/configure b/configure
index 64c9ea5632..e65b1b3e19 100755
--- a/configure
+++ b/configure
@@ -1950,6 +1950,8 @@ echo "$ac_t""$malloc" 1>&6
 
 
 
+
+
   
 if test $gnu_ld = yes; then
   cat >> confdefs.h <<\EOF
@@ -2162,6 +2164,8 @@ s%@malloc@%$malloc%g
 s%@USE_NEW_MALLOC@%$USE_NEW_MALLOC%g
 s%@libc_cv_slibdir@%$libc_cv_slibdir%g
 s%@libc_cv_sysconfdir@%$libc_cv_sysconfdir%g
+s%@libc_cv_rootsbindir@%$libc_cv_rootsbindir%g
+s%@has_ldconfig@%$has_ldconfig%g
 s%@gnu_ld@%$gnu_ld%g
 s%@gnu_as@%$gnu_as%g
 s%@elf@%$elf%g
diff --git a/configure.in b/configure.in
index 6cd3291bf1..7b17d88528 100644
--- a/configure.in
+++ b/configure.in
@@ -745,9 +745,11 @@ esac
 AC_SUBST(USE_NEW_MALLOC)
 AC_MSG_RESULT($malloc)
 
-
 AC_SUBST(libc_cv_slibdir)
 AC_SUBST(libc_cv_sysconfdir)
+AC_SUBST(libc_cv_rootsbindir)
+
+AC_SUBST(has_ldconfig)
 
 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
 if test $gnu_ld = yes; then
diff --git a/db/makedb.c b/db/makedb.c
index ebdb9014c8..7ce9548788 100644
--- a/db/makedb.c
+++ b/db/makedb.c
@@ -86,7 +86,7 @@ main (argc, argv)
   be_quiet = 0;
   output_name = NULL;
 
-  while ((opt = getopt_long (argc, argv, "fho:uV", long_options, NULL)) != EOF)
+  while ((opt = getopt_long (argc, argv, "fho:uV", long_options, NULL)) != -1)
     switch (opt)
       {
       case '\0':        /* Long option.  */
diff --git a/elf/Makefile b/elf/Makefile
index 87f2d0d67d..63a63127f8 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -55,10 +55,22 @@ install-others	= $(slibdir)/$(rtld-installed-name)
 install-bin	= ldd
 endif
 
+ifeq (yes,$(has-ldconfig))
+others		= ldconfig
+install-rootsbin = ldconfig
+
+$(objpfx)ldconfig: ldconfig.o
+	$(CC) -nostdlib -nostartfiles -o $@ $(sysdep-LDFLAGS) -static	      \
+	      $(addprefix $(csu-objpfx),start.o) $(+preinit)		      \
+	      $(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit)     \
+		$(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^)     \
+	      $(link-extra-libs) $(common-objpfx)libc.a $(gnulib) $(+postinit)
+endif
+
 include ../Rules
 
 
-ifeq (yes, $(build-shared))
+ifeq (yes,$(build-shared))
 # Make sure these things are built in the `make lib' pass so they can be used
 # to run programs during the `make others' pass.
 lib-noranlib: $(objpfx)$(rtld-installed-name) \
@@ -86,7 +98,7 @@ endef
 # The dl code in the static libc needs a default library path.
 CFLAGS-dl-support.c = -D'DEFAULT_RPATH="$(default-rpath)"'
 
-ifneq (ld.so, $(rtld-installed-name))
+ifneq (ld.so,$(rtld-installed-name))
 # Make sure ld.so.1 exists in the build directory so we can link
 # against it.
 $(objpfx)$(rtld-installed-name): $(objpfx)ld.so
@@ -99,18 +111,23 @@ endif
 # add directories to the list by defining $(user-defined-trusted-dirs)
 # before starting make.
 $(objpfx)trusted-dirs.h: Makefile
+	$(make-target-directory)
 	(for dir in `echo "$(default-rpath) $(user-defined-trusted-dirs)" |   \
 		     sed 's/:/ /g'`; do					      \
 	   echo "  \"$$dir\",";						      \
 	 done;) > $@T
 	mv -f $@T $@
-CFLAGS-dl-load.c = -I$(objdir)/$(subdir)
+CPPFLAGS-dl-load.c = -I$(objdir)/$(subdir)
 
 # Specify the dependencies of libdl.so; its commands come from the generic
 # rule to build a shared library.
 $(objpfx)libdl.so: $(objpfx)libdl_pic.a $(common-objpfx)libc.so $(objpfx)ld.so
 
-$(slibdir)/$(rtld-installed-name): $(objpfx)ld.so; $(do-install-program)
+$(slibdir)/$(rtld-version-installed-name): $(objpfx)ld.so
+	$(do-install-program)
+
+$(slibdir)/$(rtld-installed-name): $(slibdir)/$(rtld-version-installed-name)
+	$(make-shlib-link)
 
 ifneq ($(have-bash2),yes)
 $(objpfx)ldd: ldd.sh.in $(common-objpfx)version.mk \
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 6a3d919976..7368858f64 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -627,7 +627,7 @@ _dl_map_object (struct link_map *loader, const char *name, int type,
 	  /* We haven't found an appropriate library.  But since we
 	     are only interested in the list of libraries this isn't
 	     so severe.  Fake an entry with all the information we
-	     have (in fact only the name).  */
+	     have.  */
 	  static const ElfW(Symndx) dummy_bucket = STN_UNDEF;
 
 	  /* Enter the new object in the list of loaded objects.  */
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index d42081bb53..8587345bf2 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -153,7 +153,7 @@ main (int argc, char *argv[])
   textdomain (PACKAGE);
 
   while ((optchar = getopt_long (argc, argv, "achkmV", long_options, NULL))
-         != EOF)
+         != -1)
     switch (optchar)
       {
       case '\0':		/* Long option.  */
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 950f0d0e31..580816b37e 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -127,7 +127,7 @@ main (int argc, char *argv[])
   textdomain (_libc_intl_domainname);
 
   while ((optchar = getopt_long (argc, argv, "cf:hi:u:vV", long_options, NULL))
-         != EOF)
+         != -1)
     switch (optchar)
       {
       case '\0':		/* Long option.  */
diff --git a/manual/examples/subopt.c b/manual/examples/subopt.c
index 4a89f6441e..df71720fe9 100644
--- a/manual/examples/subopt.c
+++ b/manual/examples/subopt.c
@@ -29,7 +29,7 @@ main (int argc, char *argv[])
   char *subopts, *value;
   int opt;
 
-  while ((opt = getopt (argc, argv, "at:o:")) != EOF)
+  while ((opt = getopt (argc, argv, "at:o:")) != -1)
     switch (opt)
       {
       case 'a':
diff --git a/nis/Makefile b/nis/Makefile
index a6d4d4f56a..98ef4090a2 100644
--- a/nis/Makefile
+++ b/nis/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,7 @@
 subdir	:= nis
 
 headers			:= $(wildcard rpcsvc/*.[hx])
+distribute		:= nss-nis.h
 
 # These are the databases available for the nis (and perhaps later nisplus)
 # service.  This must be a superset of the services in nss.
diff --git a/posix/getopt.c b/posix/getopt.c
index 1c79eaaae2..f57f281297 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -126,7 +126,7 @@ char *optarg = NULL;
 
    On entry to `getopt', zero means this is the first call; initialize.
 
-   When `getopt' returns EOF, this is the index of the first of the
+   When `getopt' returns -1, this is the index of the first of the
    non-option elements that the caller should itself scan.
 
    Otherwise, `optind' communicates from one call to the next
@@ -188,7 +188,7 @@ int optopt = '?';
 
    The special argument `--' forces an end of option-scanning regardless
    of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
-   `--' can cause `getopt' to return EOF with `optind' != ARGC.  */
+   `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
 
 static enum
 {
@@ -417,7 +417,7 @@ _getopt_initialize (argc, argv, optstring)
    updating `optind' and `nextchar' so that the next call to `getopt' can
    resume the scan with the following option character or ARGV-element.
 
-   If there are no more option characters, `getopt' returns `EOF'.
+   If there are no more option characters, `getopt' returns -1.
    Then `optind' is the index in ARGV of the first ARGV-element
    that is not an option.  (The ARGV-elements have been permuted
    so that those that are not options now come last.)
@@ -546,7 +546,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
 	     that we previously skipped, so the caller will digest them.  */
 	  if (first_nonopt != last_nonopt)
 	    optind = first_nonopt;
-	  return EOF;
+	  return -1;
 	}
 
       /* If we have come to a non-option and did not permute it,
@@ -555,7 +555,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
       if (NONOPTION_P)
 	{
 	  if (ordering == REQUIRE_ORDER)
-	    return EOF;
+	    return -1;
 	  optarg = argv[optind++];
 	  return 1;
 	}
@@ -945,7 +945,7 @@ main (argc, argv)
       int this_option_optind = optind ? optind : 1;
 
       c = getopt (argc, argv, "abc:d:0123456789");
-      if (c == EOF)
+      if (c == -1)
 	break;
 
       switch (c)
diff --git a/posix/getopt.h b/posix/getopt.h
index 9da23aac2b..7dad11b79f 100644
--- a/posix/getopt.h
+++ b/posix/getopt.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989, 90, 91, 92, 93, 94, 96 Free Software Foundation, Inc.
+   Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.  Its master source is NOT part of
    the C library, however.  The master source lives in /gd/gnu/lib.
@@ -40,7 +40,7 @@ extern char *optarg;
 
    On entry to `getopt', zero means this is the first call; initialize.
 
-   When `getopt' returns EOF, this is the index of the first of the
+   When `getopt' returns -1, this is the index of the first of the
    non-option elements that the caller should itself scan.
 
    Otherwise, `optind' communicates from one call to the next
diff --git a/posix/getopt1.c b/posix/getopt1.c
index 358935db69..19fd4a0cb5 100644
--- a/posix/getopt1.c
+++ b/posix/getopt1.c
@@ -1,6 +1,5 @@
 /* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 1996
-	Free Software Foundation, Inc.
+   Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.  Its master source is NOT part of
    the C library, however.  The master source lives in /gd/gnu/lib.
@@ -124,7 +123,7 @@ main (argc, argv)
 
       c = getopt_long (argc, argv, "abc:d:0123456789",
 		       long_options, &option_index);
-      if (c == EOF)
+      if (c == -1)
 	break;
 
       switch (c)
diff --git a/stdio-common/bug4.c b/stdio-common/bug4.c
index acf5b5433b..492a41d923 100644
--- a/stdio-common/bug4.c
+++ b/stdio-common/bug4.c
@@ -16,7 +16,7 @@ DEFUN(main, (argc, argv),
   char buffer[31];
   const char filename[] = "/tmp/bugtest";
 
-  while ((i = getopt (argc, argv, "rw")) != EOF)
+  while ((i = getopt (argc, argv, "rw")) != -1)
     switch (i)
       {
       case 'r':
diff --git a/sunrpc/rpcinfo.c b/sunrpc/rpcinfo.c
index 0df991ae47..30932c83a6 100644
--- a/sunrpc/rpcinfo.c
+++ b/sunrpc/rpcinfo.c
@@ -94,7 +94,7 @@ main(argc, argv)
 	function = NONE;
 	portnum = 0;
 	errflg = 0;
-	while ((c = getopt(argc, argv, "ptubdn:")) != EOF) {
+	while ((c = getopt(argc, argv, "ptubdn:")) != -1) {
 		switch (c) {
 
 		case 'p':
diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
index c36afd983c..969fa6ba04 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -575,6 +575,8 @@ xdr_string(xdrs, cpp, maxsize)
 		}
 		/* fall through... */
 	      case XDR_ENCODE:
+		if (sp == NULL)
+		  	return FALSE;
 		size = strlen(sp);
 		break;
 	}
diff --git a/sysdeps/unix/sysv/linux/a.out.h b/sysdeps/unix/sysv/linux/a.out.h
index 027c49ad55..d963de74cf 100644
--- a/sysdeps/unix/sysv/linux/a.out.h
+++ b/sysdeps/unix/sysv/linux/a.out.h
@@ -1 +1,5 @@
-#include <linux/a.out.h>
+#ifdef _LIBC
+# include_next <linux/a.out.h>
+#else
+# include <linux/a.out.h>
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/Dist b/sysdeps/unix/sysv/linux/alpha/Dist
index 368b49066d..cdb11e98d0 100644
--- a/sysdeps/unix/sysv/linux/alpha/Dist
+++ b/sysdeps/unix/sysv/linux/alpha/Dist
@@ -4,6 +4,7 @@ ioperm.c
 init-first.h
 clone.S
 sys/io.h
+kernel_sigaction.h
 kernel_termios.h
 sys/acct.h
 sys/procfs.h
diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure
index 42fe89c269..20923215ae 100644
--- a/sysdeps/unix/sysv/linux/configure
+++ b/sysdeps/unix/sysv/linux/configure
@@ -20,7 +20,7 @@ else
 #include "confdefs.h"
 #include <linux/version.h>
 int main() {
-#if LINUX_VERSION_CODE <  (2 *65536+ 0 *256+ 10) /* 2.0.10 */
+#if LINUX_VERSION_CODE <  ( *65536+ 0 *256+ 10) /* .0.10 */
 eat flaming death
 #endif
 ; return 0; }
@@ -55,6 +55,7 @@ fi
 if test "$prefix" = "/usr"; then
   libc_cv_slibdir="/lib"
   libc_cv_sysconfdir="/etc"
+  libc_cv_rootsbindir="/sbin"
 fi
 
 # Under Linux the LinuxThreads and crypt add-on should be available.
@@ -94,3 +95,9 @@ if test "$message"; then
     echo "$message"
   fi
 fi
+
+# Check whether `ldconfig' sources are available.  This will go away as soon
+# as ldconfig is available in GNU libc.
+if test -f $srcdir/elf/ldconfig.c; then
+  has_ldconfig=yes
+fi
diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in
index 4ac65d02fa..0c77d7d75f 100644
--- a/sysdeps/unix/sysv/linux/configure.in
+++ b/sysdeps/unix/sysv/linux/configure.in
@@ -40,6 +40,7 @@ fi
 if test "$prefix" = "/usr"; then
   libc_cv_slibdir="/lib"
   libc_cv_sysconfdir="/etc"
+  libc_cv_rootsbindir="/sbin"
 fi
 
 # Under Linux the LinuxThreads and crypt add-on should be available.
@@ -79,3 +80,9 @@ if test "$message"; then
     echo "$message"
   fi
 fi
+
+# Check whether `ldconfig' sources are available.  This will go away as soon
+# as ldconfig is available in GNU libc.
+if test -f $srcdir/elf/ldconfig.c; then
+  has_ldconfig=yes
+fi
diff --git a/time/Banner b/time/Banner
new file mode 100644
index 0000000000..eb972db206
--- /dev/null
+++ b/time/Banner
@@ -0,0 +1 @@
+tzcode1997a and tzdata1997a by Arthur David Olson et. al.
diff --git a/time/Makefile b/time/Makefile
index af03fa2961..21ad62e071 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -23,7 +23,8 @@ subdir	:= time
 
 headers	:= time.h sys/time.h sys/timeb.h timebits.h
 distribute := tzfile.h private.h scheck.c ialloc.c yearistype	\
-	      iso3166.tab zone.tab tzselect.ksh checktab.awk
+	      iso3166.tab zone.tab tzselect.ksh checktab.awk	\
+	      Banner
 extra-objs = scheck.o ialloc.o $(tzfiles:%=z.%)
 
 routines	:= offtime asctime clock ctime ctime_r difftime	\
@@ -45,7 +46,7 @@ tzfiles := africa antarctica asia australasia europe northamerica \
 	   solar87 solar88 solar89
 # pacificnew doesn't compile; if it is to be used, it should be included in
 # northamerica.
-distribute := $(distribute) $(tzfiles) leapseconds pacificnew simplebackw
+distribute += $(tzfiles) leapseconds pacificnew simplebackw
 
 install-sbin := zic zdump
 
diff --git a/time/antarctica b/time/antarctica
index b4a7d397a3..1cff7552d1 100644
--- a/time/antarctica
+++ b/time/antarctica
@@ -1,10 +1,11 @@
-# @(#)antarctica	7.5
+# @(#)antarctica	7.6
 
-# From Paul Eggert (1996-09-03):
+# From Paul Eggert (1997-01-20):
 # To keep things manageable, we list only locations occupied year-round;
 # see <URL:http://earth.agu.org/amen/nations.html> (1996-05-24).
 # Unless otherwise specified, we have no time zone information.
 #
+# Except for the French entries,
 # I made up all time zone abbreviations mentioned here; corrections welcome!
 # FORMAT is `___' and GMTOFF is 0 for locations while uninhabited.
 
@@ -56,16 +57,41 @@ Zone Antarctica/Mawson	0	-	___	1954 Feb 13
 # Finland - year-round base
 # Aboa, Queen Maud Land, since 1988
 
-# France
+# France - year-round bases
+#
+# From Antoine Leca <Antoine.Leca@Renault.FR> (1997-01-20):
+# Time data are from Nicole Pailleau at the IFRTP
+# (French Institute for Polar Research and Technology).
+# She confirms that French Southern Territories and Terre Adelie bases
+# don't observe daylight saving time, even if Terre Adelie supplies came
+# from Tasmania.
 #
 # French Southern Territories with year-round inhabitants
-# Amsterdam Island
-# Crozet Islands
-# Kerguelen Islands
-# St Paul Island
 #
-# year-round base
-# Dumont d'Urville, Adelie Land, since IGY
+# Martin-de-Vivies Base, Amsterdam Island, -374105+0773155, since 1950
+# Alfred-Faure Base, Crozet Islands, -462551+0515152, since 1964
+# Port-aux-Francais, Kerguelen Islands, -492110+0701303, since 1951
+#
+# St Paul Island - near Amsterdam, uninhabited since 1927
+#
+# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
+Zone Indian/Kerguelen	0	-	___	1950	# Port-aux-Francais
+			5:00	-	TFT	# ISO code TF Time
+#
+# year-round base in the main continent
+# Dumont-d'Urville, Terre Adelie (Adelie Land), -6040+14001, since 1956-11
+#
+# Another base at Port-Martin, 50km east, began operation in 1947.
+# It was destroyed by fire on 1952-01-14.
+#
+# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
+Zone Antarctica/DumontDUrville 0 -	___	1947
+			10:00	-	PMT	1952 Jan 14 # Port-Martin Time
+			0	-	___	1956 Nov
+			10:00	-	DDUT	# Dumont-d'Urville Time
+# Reference:
+# <URL:http://www.icair.iac.org.nz/science/reports/fr/IFRTP.html> (1996-09-10)
+
 
 # Germany - year-round base
 # Georg von Neumayer
diff --git a/time/australasia b/time/australasia
index 811e569127..aa6387997e 100644
--- a/time/australasia
+++ b/time/australasia
@@ -1,4 +1,4 @@
-# @(#)australasia	7.31
+# @(#)australasia	7.32
 # This file also includes Pacific islands.
 
 # Notes are at the end of this file
@@ -22,6 +22,7 @@ Rule	Aus	1943	only	-	Oct	 3	2:00	1:00	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 # Northern Territory
 Zone Australia/Darwin	 8:43:20 -	LMT	1895 Feb
+			 9:00	-	CST	1899 May
 			 9:30	-	CST	1917 Jan 1 0:01
 			 9:30	Aus	CST
 # Western Australia
diff --git a/time/zdump.c b/time/zdump.c
index 1058a840ef..e5ed82f104 100644
--- a/time/zdump.c
+++ b/time/zdump.c
@@ -1,6 +1,6 @@
 #ifndef lint
 #ifndef NOID
-static char	elsieid[] = "@(#)zdump.c	7.24";
+static char	elsieid[] = "@(#)zdump.c	7.25";
 #endif /* !defined NOID */
 #endif /* !defined lint */
 
@@ -159,7 +159,7 @@ char *	argv[];
 		if (c == 'v')
 			vflag = 1;
 		else	cutoff = optarg;
-	if (c != EOF ||
+	if ((c != EOF && c != -1) ||
 		(optind == argc - 1 && strcmp(argv[optind], "=") == 0)) {
 			(void) fprintf(stderr,
 _("%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"),
diff --git a/time/zic.c b/time/zic.c
index 5a0063ab4b..9ab3967e98 100644
--- a/time/zic.c
+++ b/time/zic.c
@@ -1,6 +1,6 @@
 #ifndef lint
 #ifndef NOID
-static char	elsieid[] = "@(#)zic.c	7.80";
+static char	elsieid[] = "@(#)zic.c	7.81";
 #endif /* !defined NOID */
 #endif /* !defined lint */
 
@@ -476,7 +476,7 @@ char *	argv[];
 	(void) textdomain(TZ_DOMAIN);
 #endif /* HAVE_GETTEXT - 0 */
 	progname = argv[0];
-	while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF)
+	while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
 		switch (c) {
 			default:
 				usage();
diff --git a/time/zone.tab b/time/zone.tab
index 9d86110ca7..6d91b4ea6c 100644
--- a/time/zone.tab
+++ b/time/zone.tab
@@ -34,6 +34,7 @@ AQ	-9000+00000	Antarctica/South_Pole	Amundsen-Scott Station, South Pole
 AQ	-6448-06406	Antarctica/Palmer	Palmer Station, Anvers Island
 AQ	-6736+06253	Antarctica/Mawson	Mawson Station, Holme Bay
 AQ	-6617+11031	Antarctica/Casey	Casey Station, Bailey Peninsula
+AQ	-6040+14001	Antarctica/DumontDUrville	Dumont-d'Urville Base, Terre Adelie
 AR	-3436-05827	America/Buenos_Aires	E Argentina (BA, DF, SC, TF)
 AR	-3257-06040	America/Rosario	NE Argentina (SF, ER, CN, MN, CC, FM, LP, CH)
 AR	-3124-06411	America/Cordoba	W Argentina (CB, SA, TM, LR, SJ, SL, NQ, RN)
@@ -310,6 +311,7 @@ SY	+3330+03618	Asia/Damascus
 SZ	-2618+03106	Africa/Mbabane
 TC	+2128-07108	America/Grand_Turk
 TD	+1207+01503	Africa/Ndjamena
+TF	-492110+0701303	Indian/Kerguelen
 TG	+0608+00113	Africa/Lome
 TH	+1345+10031	Asia/Bangkok
 TJ	+3835+06848	Asia/Dushanbe
diff --git a/version.h b/version.h
index 3ce9ff8d7d..3b861215ba 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
 /* This file just defines the current version number of libc.  */
 
 #define RELEASE "alpha"
-#define VERSION "1.101"
+#define VERSION "1.102"