From 1ef32c3dc40295020b91220399d24435f6a78e48 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 22 Jan 1997 05:26:05 +0000 Subject: update from main archive 970121 1997-01-21 Paul Eggert * 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 * 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 * 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 * Makefile (distribute): Add glibcbug.in. Reported by Philip Blundell . * elf/Makefile ($(objpfx)trusted-dirs.h): Create elf/ subdir in build directory if necessary. Reported by marcus@shannon.sysc.pdx.edu (Marcus G. Daniels). --- ChangeLog | 86 ++++++++++++++++++++++++++++++++++++ Makeconfig | 8 ++++ Makefile | 8 +++- Makerules | 33 +++++++++++--- Rules | 3 +- catgets/gencat.c | 2 +- config.make.in | 5 +++ configure | 4 ++ configure.in | 4 +- db/makedb.c | 2 +- elf/Makefile | 25 +++++++++-- elf/dl-load.c | 2 +- locale/programs/locale.c | 2 +- locale/programs/localedef.c | 2 +- manual/examples/subopt.c | 2 +- nis/Makefile | 3 +- posix/getopt.c | 12 ++--- posix/getopt.h | 4 +- posix/getopt1.c | 5 +-- stdio-common/bug4.c | 2 +- sunrpc/rpcinfo.c | 2 +- sunrpc/xdr.c | 2 + sysdeps/unix/sysv/linux/a.out.h | 6 ++- sysdeps/unix/sysv/linux/alpha/Dist | 1 + sysdeps/unix/sysv/linux/configure | 9 +++- sysdeps/unix/sysv/linux/configure.in | 7 +++ time/Banner | 1 + time/Makefile | 5 ++- time/antarctica | 44 ++++++++++++++---- time/australasia | 3 +- time/zdump.c | 4 +- time/zic.c | 4 +- time/zone.tab | 2 + version.h | 2 +- 34 files changed, 254 insertions(+), 52 deletions(-) create mode 100644 time/Banner diff --git a/ChangeLog b/ChangeLog index a42b6d0b6f..be142d580a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,89 @@ +1997-01-21 Paul Eggert + + * 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 + + * 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 + + * 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 + + * Makefile (distribute): Add glibcbug.in. + Reported by Philip Blundell . + + * 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 * 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 +#ifdef _LIBC +# include_next +#else +# include +#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 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 (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 (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: +# (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" -- cgit v1.2.3