update from main archive 970121
authordrepper <drepper>
Thu, 23 Jan 1997 04:22:42 +0000 (04:22 +0000)
committerdrepper <drepper>
Thu, 23 Jan 1997 04:22:42 +0000 (04:22 +0000)
60 files changed:
ChangeLog
Make-dist
Makeconfig
Makefile
Makerules
config.make.in
elf/Makefile
gnu-versions.h
hurd/Makefile
intl/Makefile
malloc/obstack.h
manual/Makefile
misc/regexp.h
po/Makefile
posix/getopt.c
posix/getopt1.c
stdio-common/Makefile
stdio-common/bug10.c
stdio-common/scanf1.c
stdio-common/scanf10.c
stdio-common/scanf3.c
stdio-common/tstdiomisc.c
stdio-common/vfscanf.c
sunrpc/Makefile
sysdeps/mach/hurd/Makefile
sysdeps/mach/hurd/configure
sysdeps/mach/hurd/configure.in
sysdeps/mach/hurd/getdents.c
sysdeps/mach/hurd/vdprintf.c
sysdeps/posix/pipestream.c
sysdeps/standalone/i386/force_cpu386/Makefile
sysdeps/stub/getdents.c
sysdeps/unix/bsd/sony/newsos4/Makefile
sysdeps/unix/bsd/sun/sunos4/Makefile
sysdeps/unix/getdents.c
sysdeps/unix/readdir.c
sysdeps/unix/sysv/Makefile
sysdeps/unix/sysv/getdents.c
sysdeps/unix/sysv/linux/Dist
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/alpha/Dist
sysdeps/unix/sysv/linux/alpha/Makefile
sysdeps/unix/sysv/linux/alpha/ioctls.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/ioperm.c
sysdeps/unix/sysv/linux/alpha/kernel_termios.h [deleted file]
sysdeps/unix/sysv/linux/alpha/sys/kernel_termios.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/sys/procfs.h
sysdeps/unix/sysv/linux/alpha/syscalls.list
sysdeps/unix/sysv/linux/configure
sysdeps/unix/sysv/linux/getdents.c
sysdeps/unix/sysv/linux/i386/Makefile
sysdeps/unix/sysv/linux/kernel_termios.h [deleted file]
sysdeps/unix/sysv/linux/sys/kernel_termios.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/sys/procfs.h
sysdeps/unix/sysv/linux/tcgetattr.c
sysdeps/unix/sysv/linux/tcsetattr.c
time/Banner [deleted file]
time/Makefile
time/README [new file with mode: 0644]
time/strftime.c

index be142d5..338352f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,131 @@
+Thu Jan 23 04:06:42 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+       * Make-dist (.PHONY: dist): Remove duplicate declaration.
+       (README): Depend on version.h not version.c.
+       * Makefile (README): Depend on version.h not version.c.
+
+       * Makeconfig (inst_libdir, inst_slibdir, inst_includedir,
+       inst_datadir, inst_zonedir, inst_localedir, inst_i18ndir, inst_bindir,
+       inst_sbindir, inst_infodir, inst_sysconfdir): New variables.  Same
+       as variable withough inst_ but prepended with $(install_root).
+       (localtime-time): Use $(inst_sysconfdir) not $(sysconfdir).
+       * Makefile (install-others): Use $(inst_includedir).
+       (gnu/stabs.h, gnu/lib-names.h): Use $(inst_includedir).
+       * Makerules (tons of install rules): Use inst_% variables.
+       * elf/Makefile: Likewise.
+       * hurd/Makefile: Likewise.
+       * intl/Makefile: Likewise.
+       * manual/Makefile: Likewise.
+       * po/Makefile: Likewise.
+       * sunrpc/Makefile: Likewise.
+       * sysdeps/mach/hurd/Makefile: Likewise.
+       * sysdeps/standalone/i386/force_cpu386/Makefile: Likewise.
+       * time/Makefile: Likewise.
+
+       * config.make.in: Revert patch from Sat Jan 18 22:15:26 1997,
+       leave install_root in place.
+
+       * gnu-versions.h (_GNU_GETOPT_INTERFACE_VERSION): Define to 2.
+       * posix/getopt.c (GETOPT_INTERFACE_VERSION): Define to 2.
+       * posix/getopt1.c (GETOPT_INTERFACE_VERSION): Define to 2.
+
+       * elf/Makefile [yes==$(has-ldconfig)]: Correct dependencies of
+       ldconfig.
+       (CFLAGS-dl-load.c): New variable, avoid gcc warning.
+
+       * sysdeps/mach/hurd/configure.in: Add _LIBC_REENTRENT to DEFINES.
+
+       * sysdeps/mach/hurd/getdents.c: Update copyright.  De-ANSI-declfy.
+       * sysdeps/stub/getdents.c: Likewise.  Correct return value.
+       * sysdeps/unix/getdents.c: Likewise.
+       * sysdeps/unix/sysv/getdents.c: Likewise.
+
+       * sysdeps/unix/readdir.c: Update copyright.
+
+       * sysdeps/unix/bsd/sony/newsos4/Makefile: Correct ifeq arguments.
+       * sysdeps/unix/bsd/sun/sunos4/Makefile: Likewise.
+       * sysdeps/unix/sysv/Makefile: Likewise.
+       * sysdeps/unix/sysv/linux/Makefile: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
+       * sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
+
+       * sysdeps/unix/sysv/linux/Dist: Don't distribute kernel_termios.h,
+       but sys/kernel_termios.h.
+       * sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
+       * sysdeps/unix/sysv/linux/Makefile [$(subdir)==termios]
+       (sysdep_headers): Add sys/kernel_termios.h.
+       * sysdeps/unix/sysv/linux/kernel_termios.h: Moved to...
+       * sysdeps/unix/sysv/linux/sys/kernel_termios.h: ...here.
+       * sysdeps/unix/sysv/linux/sys/tcgetattr.c: Use __kernel_termios and
+       __KERNEL_NCCS instead of kernel_termios and KERNEL_NCCS resp.
+
+       * sysdeps/unix/sysv/linux/alpha/ioctls.h: New file.
+
+       * sysdeps/unix/sysv/linux/getdents.c: Correct problems with alignment.
+       * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove getdents.
+       Reported by Eirik Fuller <eirik@netcom.com>.
+
+       * time/Banner: Removed.  Wrong and unnecessary information.  It's now
+       in...
+       * time/README: New file.
+       * time/Makefile (distribute): Remove Banner, add README.
+
+Wed Jan 22 13:19:56 1997  Richard Henderson  <rth@tamu.edu>
+
+       * sysdeps/unix/sysv/linux/alpha/ioperm.c (platforms): Add Sable.
+       (init_iosys): Recognize /etc/alpha_systype as a four-tuple for
+       the purpose of supporting brand new systems.
+       (*): The type of iosys variables should be iosys_t.
+
+1997-01-22  Paul Eggert  <eggert@twinsun.com>
+
+       * strftime.c (_strftime_copytm):
+       New function, to work around Solaris 2.5 tzset bug.
+
+Wed Jan 22 23:05:14 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/mach/hurd/vdprintf.c: Complete de-ANSI-declfication.
+       * sysdeps/posix/pipestream.c (writedecl): Fix typo.
+       Reported by Marcus G. Daniels <marcus@shannon.sysc.pdx.edu>.
+
+Wed Jan 22 13:58:56 1997  Andreas Jaeger  <aj@arthur.pfalz.de>
+
+       * elf/Makefile (CFLAGS-dl-load.c): New Variable to keep gcc silent
+       since name_copy is initialized.
+
+Wed Jan 22 16:58:12 1997  Ulrich Drepper  <drepper@cygnus.com>
+
+       * stdio-common/Makefile (tests): Remove scanf11.
+       * stdio-common/scanf11.c: Removed.
+       * stdio-common/vfscanf.c Revert patch of Thu Jan 16 23:39:25 1997.
+       Although the Corrigendum 1 describes the result as implemented the
+       even more recent Amendement 1 seconds the position of ISO C:1990
+       where the %n directive has no effect on the assignment count.
+       * stdio-common/bug10.c: Likewise.
+       * stdio-common/scanf1.c: Likewise.
+       * stdio-common/scanf3.c: Likewise.
+       * stdio-common/scanf10.c: Likewise.
+       * stdio-common/tstdiomisc.c: Likewise.
+
+       * new-malloc/obstack.h: Don't define malloc using bcopy if malloc
+       is not available.  This leads to problems since bcopy does not
+       return a value.  Instead define _obstack_memcpy based on memcpy or
+       bcopy.  This name isn't used outside obstack.h and so no problems
+       from using the memcpy function in a file including obstack.h can
+       result.
+       Reported by Martin Trapp <trapp@ipd.info.uni-karlsruhe.de>.
+
+Tue Jan 21 18:35:55 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * misc/regexp.h (compile): Fix typos.
+
+Tue Jan 21 01:01:59 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * sysdeps/unix/sysv/linux/sys/procfs.h (struct elf_prpsinfo): Fix
+       type of pr_{pid,ppid,pgrp,sid} fields.
+       * sysdeps/unix/sysv/linux/alpha/sys/procfs.h (struct
+       elf_prpsinfo): Likewise.
+
 1997-01-21  Paul Eggert  <eggert@twinsun.com>
 
        * posix/getopt.c (_getopt_internal): Return -1, not EOF, when args
index 301eb6e..84252d4 100644 (file)
--- a/Make-dist
+++ b/Make-dist
@@ -190,7 +190,6 @@ endef
 configure: configure.in aclocal.m4; $(autoconf-it)
 %/configure: %/configure.in aclocal.m4; $(autoconf-it)
 
-.PHONY: dist
 dist: $(tardir).tar.gz
 
 subdir_dist: dist.tar
@@ -217,7 +216,7 @@ $(dist-subdirs):
        $(MAKE) -C $(patsubst dist-%,%,$@) dist
 
 # This is here instead of in Makefile so it can use $(release) and $(version).
-README: README.template version.c
+README: README.template version.h
        -rm -f $@
        sed -e 's/RELEASE/$(release)/' -e 's/VERSION/$(version)/' < $< > $@
 # Make it unwritable so I won't change it by mistake.
index 46d9b72..dd6d629 100644 (file)
@@ -146,11 +146,13 @@ endif
 ifndef libdir
 libdir = $(exec_prefix)/lib
 endif
+inst_libdir = $(install_root)$(libdir)
 
 # Where to install the shared library and dynamic linker.
 ifndef slibdir
 slibdir = $(exec_prefix)/lib
 endif
+inst_slibdir = $(install_root)$(slibdir)
 
 # Prefix to put on files installed in $(libdir).  For libraries `libNAME.a',
 # the prefix is spliced between `lib' and the name, so the linker switch
@@ -164,54 +166,64 @@ endif
 ifndef includedir
 includedir = $(exec_prefix)/include
 endif
+inst_includedir = $(install_root)$(includedir)
 
 # Where to install machine-independent data files.
 # These are the timezone database, and the locale database.
 ifndef datadir
 datadir = $(prefix)/share
 endif
+inst_datadir = $(install_root)$(datadir)
 
 # Where to install the timezone data files (which are machine-independent).
 ifndef zonedir
 zonedir = $(datadir)/zoneinfo
 endif
+inst_zonedir = $(install_root)$(zonedir)
 
 # Where to install the locale and message catalog data files (which are
 # machine-independent).
 ifndef localedir
 localedir = $(datadir)/locale
 endif
+inst_localedir = $(install_root)$(localedir)
 
 # Where to install the locale charmap source files.
 ifndef i18ndir
 i18ndir = $(datadir)/i18n
 endif
+inst_i18ndir = $(install_root)$(i18ndir)
 
 
 # Where to install programs.
 ifndef bindir
 bindir = $(exec_prefix)/bin
 endif
+inst_bindir = $(install_root)$(bindir)
 
 # Where to install administrative programs.
 ifndef rootsbindir
 rootsbindir = $(exec_prefix)/sbin
 endif
+inst_rootsbindir = $(install_root)$(rootsbindir)
 
 ifndef sbindir
 sbindir = $(exec_prefix)/sbin
 endif
+inst_sbindir = $(install_root)$(sbindir)
 
 # Where to install the Info files.
 ifndef infodir
 infodir = $(prefix)/info
 endif
+inst_infodir = $(install_root)$(infodir)
 
 # Where to install default configuration files.  These include the local
 # timezone specification and network data base files.
 ifndef sysconfdir
 sysconfdir = $(prefix)/etc
 endif
+inst_sysconfdir = $(install_root)$(sysconfdir)
 
 # What timezone should be the installed default (e.g., US/Eastern).
 # Run `make -C time echo-zonenames' to see a list of available zone names.
@@ -226,7 +238,7 @@ endif
 # other than there, so the zoneinfo directory contains only universal data,
 # localizing the configuration data elsewhere.
 ifndef localtime-file
-localtime-file = $(sysconfdir)/localtime
+localtime-file = $(inst_sysconfdir)/localtime
 endif
 
 # What to use for leap second specifications in compiling the default
index 0d47b07..38559c2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -90,9 +90,9 @@ before-compile = $(objpfx)version-info.h
 echo-headers: subdir_echo-headers
 
 # What to install.
-install-others = $(includedir)/gnu/stubs.h
+install-others = $(inst_includedir)/gnu/stubs.h
 ifeq (yes,$(build-shared))
-install-others += $(includedir)/gnu/lib-names.h
+install-others += $(inst_includedir)/gnu/lib-names.h
 endif
 install-bin = glibcbug
 
@@ -111,8 +111,11 @@ include Makerules
 
 # Install from subdirectories too.
 install: subdir_install
+
+# Create linkfs for shared libraries using the `ldconfig' program is possible.
 ifeq (no,$(cross-compiling))
 ifeq (yes,$(build-shared))
+install:
        test ! -x $(common-objpfx)elf/ldconfig || \
          $(common-objpfx)elf/ldconfig -d
 endif
@@ -175,7 +178,7 @@ subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)stub-$(dir))
 # iterates over all the subdirs; subdir_install in each subdir depends on
 # the subdir's stubs file.  Having more direct dependencies would result in
 # extra iterations over the list for subdirs and many recursive makes.
-$(includedir)/gnu/stubs.h: subdir_install
+$(inst_includedir)/gnu/stubs.h: subdir_install
        @rm -f $(objpfx)stubs.h
        (echo '/* This file is automatically generated.';\
         echo '   It defines a symbol `__stub_FUNCTION'\'' for each function';\
@@ -191,7 +194,7 @@ ifeq (yes,$(build-shared))
 
 # Like gnu/stubs.h the gnu/lib-names.h header is not used while building the
 # libc itself.  So we generate it while installing.
-$(includedir)/gnu/lib-names.h: $(common-objpfx)soversions.mk
+$(inst_includedir)/gnu/lib-names.h: $(common-objpfx)soversions.mk
        @rm -f $(objpfx)lib-names.h
        (echo '/* This file is automatically generated.';\
         echo '   It defines macros to allow user program to find the shared';\
@@ -307,7 +310,7 @@ distribute  := README INSTALL FAQ NOTES NEWS PROJECTS                       \
 distribute := $(strip $(distribute))
 generated := $(generated) stubs.h version-info.h
 
-README: README.template version.c ; # Make-dist should update README.
+README: README.template version.h ; # Make-dist should update README.
 
 define format-me
 @rm -f $@
index 08de5a1..95e1cbc 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -569,11 +569,11 @@ endef
 # to install everything it changes.
 ifdef objects
 installed-libcs := $(foreach o,$(object-suffixes),\
-                            $(libdir)/$(patsubst %,$(libtype$o),\
-                                                 $(libprefix)$(libc-name)))
+                            $(inst_libdir)/$(patsubst %,$(libtype$o),\
+                                                    $(libprefix)$(libc-name)))
 installed-libcs := $(filter-out %_pic.a,$(installed-libcs))
 install: $(installed-libcs)
-$(installed-libcs): $(libdir)/lib$(libprefix)%: lib
+$(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib
        $(make-target-directory)
        $(INSTALL_DATA) $(common-objpfx)lib$(*:$(libc-name)%=c%) $@
 # Running ranlib after installing makes the __.SYMDEF time stamp up to
@@ -591,15 +591,15 @@ install-lib.so := $(filter %.so,$(install-lib:%_pic.a=%.so))
 install-lib := $(filter-out %.so %_pic.a,$(install-lib))
 ifeq (yes,$(build-shared))
 
-install-lib-nosubdir: $(install-lib.so:%=$(libdir)/%)
+install-lib-nosubdir: $(install-lib.so:%=$(inst_libdir)/%)
 
 # Find which .so's have versions.
 versioned := $(strip $(foreach so,$(install-lib.so),\
                               $(patsubst %,$(so),$($(so)-version))))
 
 # Install all the unversioned shared libraries.
-$(addprefix $(slibdir)/,$(filter-out $(versioned),$(install-lib.so))): \
-$(slibdir)/%.so: $(objpfx)%.so; $(do-install-program)
+$(addprefix $(inst_slibdir)/, $(filter-out $(versioned),$(install-lib.so))): \
+       $(inst_slibdir)/%.so: $(objpfx)%.so; $(do-install-program)
 
 ifneq ($(findstring -s,$(LN_S)),)
 define make-link
@@ -635,20 +635,21 @@ ifdef libc.so-version
 # 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
+$(inst_slibdir)/libc.so$(libc.so-version): $(inst_slibdir)/libc-$(version).so
        $(make-shlib-link)
-$(slibdir)/libc-$(version).so: $(common-objpfx)libc.so; $(do-install-program)
-install: $(slibdir)/libc.so$(libc.so-version)
+$(inst_slibdir)/libc-$(version).so: $(common-objpfx)libc.so
+       $(do-install-program)
+install: $(inst_slibdir)/libc.so$(libc.so-version)
 
 ifndef subdir
 # What we install as libc.so for programs to link against is in fact a
 # link script.  It contains references for the various libraries we need.
 # The libc.so object is not complete since some functions are only defined
 # in libc.a and the dynamic linker is an etra object.
-install: $(libdir)/libc.so
-$(libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
-                  $(elfobjdir)/$(rtld-installed-name) \
-                  $(libdir)/lib$(libc-name).a
+install: $(inst_libdir)/libc.so
+$(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
+                       $(elfobjdir)/$(rtld-installed-name) \
+                       $(inst_libdir)/lib$(libc-name).a
        (echo '/* GNU ld script';\
         echo '   Use the shared library, but some functions are only in';\
         echo '   the static library, so try that secondarily.'; \
@@ -661,8 +662,9 @@ $(libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
 endif
 
 else
-install: $(slibdir)/libc.so
-$(slibdir)/libc.so: $(common-objpfx)libc.so; $(do-install-program)
+install: $(inst_slibdir)/libc.so
+$(inst_slibdir)/libc.so: $(common-objpfx)libc.so
+       $(do-install-program)
 endif
 
 
@@ -670,7 +672,7 @@ ifneq (,$(versioned))
 # Produce three sets of rules as above for all the smaller versioned libraries.
 
 define o-iterator-doit
-$(libdir)/$o: $(slibdir)/$o$($o-version); $$(make-link)
+$(inst_libdir)/$o: $(inst_slibdir)/$o$($o-version); $$(make-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
@@ -686,27 +688,28 @@ include $(o-iterator)
 
 ifeq (,$($(subdir)-version))
 define o-iterator-doit
-$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$(version).so;
+$(inst_slibdir)/$o$($o-version): $(inst_slibdir)/$(o:.so=)-$(version).so;
        $$(make-shlib-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
 
 define o-iterator-doit
-$(slibdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
+$(inst_slibdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
 else
 define o-iterator-doit
-$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$($(subdir)-version).so;
+$(inst_slibdir)/$o$($o-version): \
+  $(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so;
        $$(make-shlib-link)
 endef
 object-suffixes-left := $(versioned)
 include $(o-iterator)
 
 define o-iterator-doit
-$(slibdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
+$(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
        $$(do-install-program)
 endef
 object-suffixes-left := $(versioned)
@@ -722,23 +725,24 @@ endef
 
 so-versions := $(sort $(foreach so,$(install-lib.so),.so$($(so)-version)))
 $(foreach v,$(so-versions),\
-         $(slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so
+         $(inst_slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so
        $(do-install-so)
 $(foreach v,$(so-versions),\
-         $(slibdir)/$(libprefix)%$v): $(common-objpfx)%.so
+         $(inst_slibdir)/$(libprefix)%$v): $(common-objpfx)%.so
        $(do-install-so)
 endif
 
 ifdef install-bin
-$(addprefix $(bindir)/,$(install-bin)): $(bindir)/%: $(objpfx)%
+$(addprefix $(inst_bindir)/,$(install-bin)): $(inst_bindir)/%: $(objpfx)%
        $(do-install-program)
 endif
 ifdef install-rootsbin
-$(addprefix $(rootsbindir)/,$(install-rootsbin)): $(rootsbindir)/%: $(objpfx)%
+$(addprefix $(inst_rootsbindir)/,$(install-rootsbin)):
+   $(inst_rootsbindir)/%: $(objpfx)%
        $(do-install-program)
 endif
 ifdef install-sbin
-$(addprefix $(sbindir)/,$(install-sbin)): $(sbindir)/%: $(objpfx)%
+$(addprefix $(inst_sbindir)/,$(install-sbin)): $(inst_sbindir)/%: $(objpfx)%
        $(do-install-program)
 endif
 ifdef install-lib
@@ -750,31 +754,33 @@ $(addprefix $(libdir)/$(libprefix),$(install-lib-non.a)): \
        $(do-install)
 endif
 ifdef install-lib.a
-$(install-lib.a:lib%.a=$(libdir)/lib$(libprefix)%.a): \
-  $(libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a
+$(install-lib.a:lib%.a=$(inst_libdir)/lib$(libprefix)%.a): \
+  $(inst_libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a
        $(do-install)
        $(patsubst %,$(RANLIB) $@,$(filter-out $(non-lib.a),$(<F)))
 endif
 endif
 ifdef install-data
-$(addprefix $(datadir)/,$(install-data)): $(datadir)/%: %;$(do-install)
+$(addprefix $(inst_datadir)/,$(install-data)): $(inst_datadir)/%: %;
+       $(do-install)
 endif
 headers := $(strip $(headers))
 ifdef headers
-$(addprefix $(includedir)/,$(headers)): \
-       $(includedir)/%: %;$(do-install)
+$(addprefix $(inst_includedir)/,$(headers)): $(inst_includedir)/%: %;
+       $(do-install)
 endif  # headers
 
 .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)/,\
+install-bin-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin))
+install-rootsbin-nosubdir: \
+       $(addprefix $(inst_rootsbindir)/,$(install-rootsbin))
+install-sbin-nosubdir: $(addprefix $(inst_sbindir)/,$(install-sbin))
+install-lib-nosubdir: $(addprefix $(inst_libdir)/,\
                       $(patsubst lib%.a,lib$(libprefix)%.a,$(install-lib.a)) \
                       $(addprefix $(libprefix),$(install-lib-non.a)))
-install-data-nosubdir: $(addprefix $(datadir)/,$(install-data))
-install-headers-nosubdir: $(addprefix $(includedir)/,$(headers))
+install-data-nosubdir: $(addprefix $(inst_datadir)/,$(install-data))
+install-headers-nosubdir: $(addprefix $(inst_includedir)/,$(headers))
 install-others-nosubdir: $(install-others)
 
 # We need all the `-nosubdir' targets so that `install' in the parent
index 0e61a14..893dabe 100644 (file)
@@ -3,11 +3,12 @@
 # Don't edit this file.  Put configuration parameters in configparms instead.
 
 # Installation prefixes.
+install_root =
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 slibdir = @libc_cv_slibdir@
 sysconfdir = @libc_cv_sysconfdir@
-rootsbindir = $(install_root)@libc_cv_rootsbindir@
+rootsbindir = @libc_cv_rootsbindir@
 
 # If ldconfig exists.  This will go away as soon as `ldconfig' is available
 # in GNU libc.
index 63a6312..5426e4e 100644 (file)
@@ -51,15 +51,15 @@ include ../Makeconfig
 ifeq (yes,$(build-shared))
 extra-objs     = $(rtld-routines:=.so) soinit.so sofini.so eval.so
 generated      = librtld.so dl-allobjs.so
-install-others = $(slibdir)/$(rtld-installed-name)
+install-others = $(inst_slibdir)/$(rtld-installed-name)
 install-bin    = ldd
 endif
 
 ifeq (yes,$(has-ldconfig))
-others         = ldconfig
+extra-objs     = ldconfig.o
 install-rootsbin = ldconfig
 
-$(objpfx)ldconfig: ldconfig.o
+$(objpfx)ldconfig: $(objpfx)ldconfig.o
        $(CC) -nostdlib -nostartfiles -o $@ $(sysdep-LDFLAGS) -static         \
              $(addprefix $(csu-objpfx),start.o) $(+preinit)                  \
              $(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit)     \
@@ -118,15 +118,17 @@ $(objpfx)trusted-dirs.h: Makefile
         done;) > $@T
        mv -f $@T $@
 CPPFLAGS-dl-load.c = -I$(objdir)/$(subdir)
+CFLAGS-dl-load.c = -Wno-uninitialized
 
 # 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-version-installed-name): $(objpfx)ld.so
+$(inst_slibdir)/$(rtld-version-installed-name): $(objpfx)ld.so
        $(do-install-program)
 
-$(slibdir)/$(rtld-installed-name): $(slibdir)/$(rtld-version-installed-name)
+$(inst_slibdir)/$(rtld-installed-name): \
+  $(inst_slibdir)/$(rtld-version-installed-name)
        $(make-shlib-link)
 
 ifneq ($(have-bash2),yes)
index 68545bd..f27e34f 100644 (file)
@@ -1,5 +1,5 @@
 /* Header with interface version macros for library pieces copied elsewhere.
-   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1995, 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
@@ -47,7 +47,7 @@
 #define _GNU_OBSTACK_INTERFACE_VERSION 1 /* vs malloc/obstack.c */
 #define _GNU_REGEX_INTERFACE_VERSION   1 /* vs posix/regex.c */
 #define _GNU_GLOB_INTERFACE_VERSION    1 /* vs posix/glob.c */
-#define _GNU_GETOPT_INTERFACE_VERSION  1 /* vs posix/getopt.c and
+#define _GNU_GETOPT_INTERFACE_VERSION  2 /* vs posix/getopt.c and
                                             posix/getopt1.c */
 
 #endif /* gnu-versions.h */
index 7d0e971..deafb1e 100644 (file)
@@ -74,9 +74,10 @@ include ../Rules
 # to get installed.
 sunrpc-headers = netdb.h pmap_prot.h xdr.h types.h auth.h \
        rpc_msg.h auth_unix.h
-installed-sunrpc-headers = $(addprefix $(includedir)/rpc/,$(sunrpc-headers))
+installed-sunrpc-headers = $(addprefix $(inst_includedir)/rpc/, \
+                                      $(sunrpc-headers))
 install-headers-nosubdir: $(installed-sunrpc-headers)
-$(installed-sunrpc-headers): $(includedir)/%: $(..)sunrpc/%
+$(installed-sunrpc-headers): $(inst_includedir)/%: $(..)sunrpc/%
        $(do-install)
 
 
index 356a40c..db4db7c 100644 (file)
@@ -25,7 +25,7 @@ routines = bindtextdom dcgettext dgettext gettext     \
           l10nflist explodename
 distribute = gettext.h gettextP.h hash-string.h loadinfo.h locale.alias
 
-install-others = $(localedir)/locale.alias
+install-others = $(inst_localedir)/locale.alias
 
 include ../Rules
 
index 2802888..0e7eb09 100644 (file)
@@ -1,5 +1,5 @@
 /* obstack.h - object stack macros
-   Copyright (C) 1988,89,90,91,92,93,94,96 Free Software Foundation, Inc.
+   Copyright (C) 1988,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.
@@ -144,9 +144,12 @@ Summary:
 
 #if defined (_LIBC) || defined (HAVE_STRING_H)
 #include <string.h>
+#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
 #else
-#ifndef memcpy
-#define memcpy(To, From, N) bcopy (From, To, N)
+#ifdef memcpy
+#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
+#else
+#define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
 #endif
 #endif
 
@@ -377,7 +380,7 @@ __extension__                                                               \
    int __len = (length);                                               \
    if (__o->next_free + __len > __o->chunk_limit)                      \
      _obstack_newchunk (__o, __len);                                   \
-   memcpy (__o->next_free, (char *) (where), __len);                   \
+   _obstack_memcpy (__o->next_free, (char *) (where), __len);          \
    __o->next_free += __len;                                            \
    (void) 0; })
 
@@ -387,7 +390,7 @@ __extension__                                                               \
    int __len = (length);                                               \
    if (__o->next_free + __len + 1 > __o->chunk_limit)                  \
      _obstack_newchunk (__o, __len + 1);                               \
-   memcpy (__o->next_free, (char *) (where), __len);                   \
+   _obstack_memcpy (__o->next_free, (char *) (where), __len);          \
    __o->next_free += __len;                                            \
    *(__o->next_free)++ = 0;                                            \
    (void) 0; })
@@ -499,14 +502,14 @@ __extension__                                                             \
 ( (h)->temp = (length),                                                        \
   (((h)->next_free + (h)->temp > (h)->chunk_limit)                     \
    ? (_obstack_newchunk ((h), (h)->temp), 0) : 0),                     \
-  memcpy ((h)->next_free, (char *) (where), (h)->temp),                        \
+  _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp),       \
   (h)->next_free += (h)->temp)
 
 #define obstack_grow0(h,where,length)                                  \
 ( (h)->temp = (length),                                                        \
   (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit)                 \
    ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0),                 \
-  memcpy ((h)->next_free, (char *) (where), (h)->temp),                        \
+  _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp),       \
   (h)->next_free += (h)->temp,                                         \
   *((h)->next_free)++ = 0)
 
index 9557505..0f525be 100644 (file)
@@ -118,11 +118,11 @@ realclean: distclean
 
 .PHONY: install subdir_install installdirs install-data
 install-data subdir_install: install
-install: $(infodir)/libc.info
+install: $(inst_infodir)/libc.info
 # Catchall implicit rule for other installation targets from the parent.
 install-%: ;
 
-$(infodir)/libc.info: libc.info installdirs
+$(inst_infodir)/libc.info: libc.info installdirs
        for file in $<*; do \
          name=`basename $$file`; \
          $(INSTALL_DATA) $$file \
@@ -130,7 +130,7 @@ $(infodir)/libc.info: libc.info installdirs
        done
 
 installdirs: $(firstword $(wildcard mkinstalldirs ../mkinstalldirs))
-       $(dir $<)$(notdir $<) $(infodir)
+       $(dir $<)$(notdir $<) $(inst_infodir)
 
 .PHONY: dist
 dist: # glibc-doc-$(edition).tar.gz
index e31407e..f31b1af 100644 (file)
@@ -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.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -100,7 +100,7 @@ compile (char *__instring, char *__expbuf, __const char *__endbuf, int __eof)
   size_t __input_size = 0;
   size_t __current_size;
   int __ch;
-  int __result;
+  int __error;
 
   /* Align the expression buffer according to the needs for an object
      of type `regex_t'.  Then check for minimum size of the buffer for
@@ -169,7 +169,7 @@ compile (char *__instring, char *__expbuf, __const char *__endbuf, int __eof)
       case REG_EESCAPE:
       case REG_BADRPT:
       case REG_EEND:
-      case REG_RPAREN:
+      case REG_ERPAREN:
       default:
        /* There is no matching error code.  */
        RETURN (36);
index ffaecaa..32cdc2d 100644 (file)
@@ -41,7 +41,7 @@ include ../Makeconfig
 -include $(common-objpfx)version.mk
 
 # Pattern for where message catalog object for language % gets installed.
-mo-installed = $(localedir)/%/LC_MESSAGES/$(domainname).mo
+mo-installed = $(inst_localedir)/%/LC_MESSAGES/$(domainname).mo
 
 # Files to install: a $(domainname).mo file for each language.
 install-others = $(LINGUAS:%=$(mo-installed))
index f57f281..eac576b 100644 (file)
@@ -52,7 +52,7 @@
    program understand `configure --with-gnu-libc' and omit the object files,
    it is simpler to just do this in the source for each such file.  */
 
-#define GETOPT_INTERFACE_VERSION 1
+#define GETOPT_INTERFACE_VERSION 2
 #if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
 #include <gnu-versions.h>
 #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
index 19fd4a0..8347bb1 100644 (file)
@@ -43,7 +43,7 @@
    program understand `configure --with-gnu-libc' and omit the object files,
    it is simpler to just do this in the source for each such file.  */
 
-#define GETOPT_INTERFACE_VERSION 1
+#define GETOPT_INTERFACE_VERSION 2
 #if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
 #include <gnu-versions.h>
 #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
index e7c1cb8..814374b 100644 (file)
@@ -43,8 +43,7 @@ tests := tst-printf tstscanf test_rdwr test-popen tstgetln test-fseek \
         xbug errnobug \
         bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 \
         tfformat tiformat tstdiomisc \
-        scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \
-        scanf11
+        scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10
 
 
 include ../Rules
index 5e8ae25..3e15526 100644 (file)
@@ -14,7 +14,7 @@ main (int arc, char *argv)
   printf("Result of sscanf = %d\n", res);
   printf("Scanned format %%u = %u\n", val);
   printf("Possibly scanned format %%n = %d\n", n);
-  result |= res != 2 || val != 111 || n != 3;
+  result |= res != 1 || val != 111 || n != 3;
 
 
   result |= sscanf ("", " %n", &n) == EOF;
index 58c78c2..be6d63e 100644 (file)
@@ -9,7 +9,7 @@ main (int argc, char *argv[])
   n = i = r = -1;
   r = sscanf ("1234:567", "%d%n", &i, &n);
   printf ("%d %d %d\n", r, n, i);
-  if (r != 2 || i != 1234 || n != 4)
+  if (r != 1 || i != 1234 || n != 4)
     abort ();
   return 0;
 }
index 27a5e66..f896137 100644 (file)
@@ -11,5 +11,5 @@ main (int argc, char *argv[])
 
   printf ("retc=%d a=%d b=%d\n", retc, a, b);
 
-  return retc == 2 && a == 6 && b == 12 ? 0 : 1;
+  return retc == -1 && a == 6 && b == 12 ? 0 : 1;
 }
index 5bfa80b..33495cc 100644 (file)
@@ -13,7 +13,7 @@ main(int arc, char *argv[])
   printf("Result of sscanf = %d\n", res);
   printf("Scanned format %%u = %u\n", val);
   printf("Possibly scanned format %%n = %d\n", n);
-  if (n != 3 || val != 111 || res != 2)
+  if (n != 3 || val != 111 || res != 1)
     abort ();
 
   val = n = -1;
@@ -21,7 +21,7 @@ main(int arc, char *argv[])
   printf("Result of sscanf = %d\n", res);
   printf("Scanned format %%u = %u\n", val);
   printf("Possibly scanned format %%n = %d\n", n);
-  if (n != 3 || val != 111 || res != 2)
+  if (n != 3 || val != 111 || res != 1)
     abort ();
 
   return 0;
index dbce623..8dac4f2 100644 (file)
@@ -27,7 +27,7 @@ t2 (void)
   SCAN ("12345", "%ld", N, 1, 12345);
   SCAN ("12345", "%llllld", N, 0, -1);
   SCAN ("12345", "%LLLLLd", N, 0, -1);
-  SCAN ("test ", "%*s%n",  n, 1, 4);
+  SCAN ("test ", "%*s%n",  n, 0, 4);
   SCAN ("test ",   "%2*s%n",  n, 0, -1);
   SCAN ("12 ",   "%l2d",  n, 0, -1);
   SCAN ("12 ",   "%2ld",  N, 1, 12);
index ef0dbee..f201c46 100644 (file)
@@ -462,7 +462,35 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
                *ARG (short int *) = read_in;
              else
                *ARG (int *) = read_in;
+
+#ifdef NO_BUG_IN_ISO_C_CORRIGENDUM_1
+             /* We have a severe problem here.  The ISO C standard
+                contradicts itself in explaining the effect of the %n
+                format in `scanf'.  While in ISO C:1990 and the ISO C
+                Amendement 1:1995 the result is described as
+
+                  Execution of a %n directive does not effect the
+                  assignment count returned at the completion of
+                  execution of the f(w)scanf function.
+
+                in ISO C Corrigendum 1:1994 the following was added:
+
+                  Subclause 7.9.6.2
+                  Add the following fourth example:
+                    In:
+                      #include <stdio.h>
+                      int d1, d2, n1, n2, i;
+                      i = sscanf("123", "%d%n%n%d", &d1, &n1, &n2, &d2);
+                    the value 123 is assigned to d1 and the value3 to n1.
+                    Because %n can never get an input failure the value
+                    of 3 is also assigned to n2.  The value of d2 is not
+                    affected.  The value 3 is assigned to i.
+
+                We go for now with the historically correct code fro ISO C,
+                i.e., we don't count the %n assignments.  When it ever
+                should proof to be wrong just remove the #ifdef above.  */
              ++done;
+#endif
            }
          break;
 
index ef8b354..241eca5 100644 (file)
@@ -53,8 +53,8 @@ headers = $(addprefix rpc/,auth.h auth_unix.h clnt.h netdb.h pmap_clnt.h \
 rpcsvc = bootparam.x nlm_prot.x rstat.x \
         yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
         rusers.x spray.x nfs_prot.x rquota.x
-install-others = $(includedir)/rpcsvc/bootparam_prot.h \
-                $(sysconfdir)/rpc
+install-others = $(inst_includedir)/rpcsvc/bootparam_prot.h \
+                $(inst_sysconfdir)/rpc
 generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c)
 
 routines := auth_none auth_unix authuxprot bindrsvprt \
@@ -103,12 +103,13 @@ rpcgen-cmd = $(built-program-cmd)
 # The proper file name is longer than 14 chars, so we install it under
 # a shorter name.  But if the filesystem can handle it, we want to
 # install under the proper name as well.
-$(includedir)/rpcsvc/bootparam_prot.h: $(includedir)/rpcsvc/bootparam.h
+$(inst_includedir)/rpcsvc/bootparam_prot.h: \
+  $(inst_includedir)/rpcsvc/bootparam.h
        @echo It is safe to ignore an error here if this file name is too long.
        -$(do-install)
 
 # Install the rpc data base file.
-$(sysconfdir)/rpc: etc.rpc
+$(inst_sysconfdir)/rpc: etc.rpc
        $(do-install)
 
 defines := $(defines) -D_PATH_RPC='"$(sysconfdir)/rpc"'
index b68d538..618ad1d 100644 (file)
@@ -98,9 +98,9 @@ common-generated += errnos.d stamp-errnos
 libc-name = crt
 
 ifeq (,$(subdir))
-install-others += $(libdir)/libc.a $(libdir)/libc_p.a
-$(libdir)/libc.a: $(hurd)/libc-ldscript; $(do-install)
-$(libdir)/libc_p.a: $(hurd)/libc_p-ldscript; $(do-install)
+install-others += $(inst_libdir)/libc.a $(inst_libdir)/libc_p.a
+$(inst_libdir)/libc.a: $(hurd)/libc-ldscript; $(do-install)
+$(inst_libdir)/libc_p.a: $(hurd)/libc_p-ldscript; $(do-install)
 endif
 
 # Make sure these are used to build the libc.so shared object too.
@@ -110,7 +110,7 @@ $(common-objpfx)libc.so: $(rpcuserlibs)
 rpath-link := $(rpath-link):$(common-objpfx)mach:$(common-objpfx)hurd
 
 # And get them into the libc.so ldscript.
-$(libdir)/libc.so: $(rpcuserlibs)
+$(inst_libdir)/libc.so: $(rpcuserlibs)
 
 # The RPC stubs from these libraries are needed in building the dynamic
 # linker, too.  It must be self-contained, so we link the needed PIC
index ab0a802..99497b8 100755 (executable)
@@ -1,4 +1,7 @@
  
+# GNU libc on the Hurd is always reentrant.
+DEFINES="$DEFINES -D_LIBC_REENTRANT"
+
 # Don't bother trying to generate any glue code to be compatible with the
 # existing system library, because we are the only system library.
 inhibit_glue=yes
index d9ebba5..29bb7e0 100644 (file)
@@ -1,6 +1,9 @@
 sinclude(./aclocal.m4)dnl Autoconf lossage.
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 
+# GNU libc on the Hurd is always reentrant.
+DEFINES="$DEFINES -D_LIBC_REENTRANT"
+
 # Don't bother trying to generate any glue code to be compatible with the
 # existing system library, because we are the only system library.
 inhibit_glue=yes
index 4de2eb3..61b11ac 100644 (file)
@@ -1,23 +1,21 @@
-/* Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Ince 
+/* Copyright (C) 1992, 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
 
-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 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.
 
-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.  */
 
-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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
 #include <stddef.h>
 #include <errno.h>
 #include <sys/types.h>
@@ -26,8 +24,11 @@ Cambridge, MA 02139, USA.  */
 #include <string.h>
 
 ssize_t
-DEFUN(__getdirentries, (fd, buf, nbytes, basep),
-      int fd AND PTR buf AND size_t nbytes AND off_t *basep)
+__getdirentries (fd, buf, nbytes, basep)
+     int fd;
+     char *buf;
+     size_t nbytes;
+     off_t *basep;
 {
   error_t err;
   int entriesread;
@@ -59,4 +60,3 @@ DEFUN(__getdirentries, (fd, buf, nbytes, basep),
 }
 
 weak_alias (__getdirentries, getdirentries)
-
index 415258c..e14c295 100644 (file)
@@ -1,20 +1,20 @@
 /* Copyright (C) 1991, 1992, 1993, 1997 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   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 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.
+   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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   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.  */
 
 #include <errno.h>
 #include <limits.h>
@@ -33,14 +33,14 @@ vdprintf (int d, const char *format, va_list arg)
   struct hurd_fd *fd;
 
   HURD_CRITICAL_BEGIN;
-  fd = _hurd_fd_get (d);
+  fd = _hurd_fd_get (fd);
   HURD_CRITICAL_END;
 
   if (!fd)
     return 0;
 
   /* Create an unbuffered stream talking to D on the stack.  */
-  memset ((void *) &f, 0, sizeof(f));
+  memset ((void *) &f, 0, sizeof (f));
   f.__magic = _IOMAGIC;
   f.__mode.__write = 1;
   f.__cookie = fd;
index d954f14..6041f83 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1991, 1992, 1993, 1996 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+/* Copyright (C) 1991, 1992, 1993, 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
+   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.  */
 
 #include <errno.h>
 #include <stddef.h>
index 6381fdc..a51ed7f 100644 (file)
@@ -19,7 +19,7 @@
 # Boston, MA 02111-1307, USA.
 
 ifeq (bare,$(subdir))
-install-others += $(libdir)/force_cpu386.ld
-$(libdir)/force_cpu386.ld: $(sysdep_dir)/standalone/i386/target.ld
+install-others += $(inst_libdir)/force_cpu386.ld
+$(inst_libdir)/force_cpu386.ld: $(sysdep_dir)/standalone/i386/target.ld
        $(do-install)
 endif
index 6e7793a..a773347 100644 (file)
@@ -1,26 +1,26 @@
-/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+/* Copyright (C) 1991, 1995, 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
-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 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.
+   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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   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.  */
 
 #include <stddef.h>
 #include <errno.h>
 #include <sys/types.h>
 
-int
+ssize_t
 __getdirentries (fd, buf, nbytes, basep)
      int fd;
      char *buf;
@@ -30,6 +30,6 @@ __getdirentries (fd, buf, nbytes, basep)
   __set_errno (ENOSYS);
   return -1;
 }
-stub_warning (getdirentries)
-
 weak_alias (__getdirentries, getdirentries)
+
+stub_warning (getdirentries)
index 7cfecf2..053da56 100644 (file)
@@ -1,3 +1,3 @@
-ifeq ($(subdir), posix)
+ifeq ($(subdir),posix)
 sysdep_routines := $(sysdep_routines) sys_wait4
 endif
index 96b88e1..d17654a 100644 (file)
@@ -1,7 +1,7 @@
-ifeq ($(subdir), posix)
+ifeq ($(subdir),posix)
 sysdep_routines := $(sysdep_routines) sys_wait4
 endif
 
-ifeq ($(subdir), misc)
+ifeq ($(subdir),misc)
 sysdep_routines := $(sysdep_routines) sys_mmap
 endif
index e356e96..54839af 100644 (file)
@@ -20,7 +20,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-int
+ssize_t
 __getdirentries (fd, buf, nbytes, basep)
      int fd;
      char *buf;
@@ -30,7 +30,7 @@ __getdirentries (fd, buf, nbytes, basep)
   if (basep)
     *basep = __lseek (fd, (off_t) 0, SEEK_CUR);
 
-  return __read (fd, buf, nbytes);
+  return (ssize_t) __read (fd, buf, nbytes);
 }
 
 weak_alias (__getdirentries, getdirentries)
index 97956ec..fd26b70 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 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.  */
 
 #include <errno.h>
 #include <limits.h>
index 885d3b4..cfb1607 100644 (file)
@@ -16,7 +16,7 @@
 # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-ifeq ($(subdir), termios)
+ifeq ($(subdir),termios)
 
 ifeq (,$(filter termio.h,$(sysdep_headers)))
 
index 109f29a..ef2dc23 100644 (file)
@@ -21,9 +21,9 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-extern int __getdents __P ((int fd, char *buf, size_t nbytes));
+extern ssize_t __getdents __P ((int fd, char *buf, size_t nbytes));
 
-int
+ssize_t
 __getdirentries (fd, buf, nbytes, basep)
      int fd;
      char *buf;
index b96d1df..c5a2f17 100644 (file)
@@ -1,6 +1,5 @@
 init-first.h
 kernel_sigaction.h
-kernel_termios.h
 llseek.c
 siglist.h
 sysctl.c
@@ -18,6 +17,7 @@ sys/debugreg.h
 sys/io.h
 sys/kd.h
 sys/kdaemon.h
+sys/kernel_termios.h
 sys/klog.h
 sys/module.h
 sys/mount.h
index 97fb5f1..ae2e294 100644 (file)
@@ -1,10 +1,10 @@
-ifeq ($(subdir), csu)
+ifeq ($(subdir),csu)
 CFLAGS-init-first.c = -fkeep-inline-functions
 
 sysdep_routines += errno-loc
 endif
 
-ifeq ($(subdir), misc)
+ifeq ($(subdir),misc)
 sysdep_routines += sysctl clone llseek
 
 sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \
@@ -28,29 +28,29 @@ $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscal
 generated += syscall-list.h syscall-list.d
 endif
 
-ifeq ($(subdir), time)
+ifeq ($(subdir),time)
 sysdep_headers += sys/timex.h
 endif
 
-ifeq ($(subdir), socket)
+ifeq ($(subdir),socket)
 sysdep_headers += sys/socketcall.h net/if.h net/if_ppp.h net/ppp-comp.h \
                  net/ppp_defs.h net/if_arp.h net/route.h
 endif
 
-ifeq ($(subdir), sunrpc)
+ifeq ($(subdir),sunrpc)
 sysdep_headers += nfs/nfs.h
 endif
 
-ifeq ($(subdir), termios)
-sysdep_headers += termio.h
+ifeq ($(subdir),termios)
+sysdep_headers += termio.h sys/kernel_termios.h
 endif
 
-ifeq ($(subdir), stdio-common)
+ifeq ($(subdir),stdio-common)
 # Just disable the auto generation in sysdeps/generic
 inhibit-siglist := yes
 endif
 
-ifeq ($(subdir), inet)
+ifeq ($(subdir),inet)
 sysdep_headers += netinet/in_systm.h sys/socketvar.h
 endif
 
index cdb11e9..f3c4cb9 100644 (file)
@@ -4,7 +4,7 @@ ioperm.c
 init-first.h
 clone.S
 sys/io.h
-kernel_sigaction.h
 kernel_termios.h
 sys/acct.h
+sys/kernel_sigaction.h
 sys/procfs.h
index 3908b57..fa2c078 100644 (file)
@@ -1,4 +1,4 @@
-ifeq ($(subdir), misc)
+ifeq ($(subdir),misc)
 sysdep_headers += alpha/ptrace.h alpha/regdef.h
 
 sysdep_routines += ieee_get_fp_control ieee_set_fp_control \
diff --git a/sysdeps/unix/sysv/linux/alpha/ioctls.h b/sysdeps/unix/sysv/linux/alpha/ioctls.h
new file mode 100644 (file)
index 0000000..80b2e62
--- /dev/null
@@ -0,0 +1,39 @@
+/* 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
+   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 _IOCTLS_H
+#define _IOCTLS_H 1
+
+/* Use the definitions from the kernel header files.  */
+#include <asm/ioctls.h>
+#include <sys/kernel_termios.h>
+
+/* Oh well, this is necessary since the kernel data structure is
+   different from the user-level version.  */
+#undef  TCGETS
+#undef  TCSETS
+#undef  TCSETSW
+#undef  TCSETSF
+#define TCGETS _IOR ('t', 19, struct __kernel_termios)
+#define TCSETS _IOW ('t', 20, struct __kernel_termios)
+#define TCSETSW        _IOW ('t', 21, struct __kernel_termios)
+#define TCSETSF        _IOW ('t', 22, struct __kernel_termios)
+
+#include <linux/sockios.h>
+
+#endif /* ioctls.h  */
index 924fc47..488265a 100644 (file)
@@ -1,36 +1,36 @@
-/* Copyright (C) 1992, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by David Mosberger.
+/* Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Mosberger.
 
-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 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.
+   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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   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.  */
 
 /* I/O access is restricted to ISA port space (ports 0..65535).
-Modern devices hopefully are sane enough not to put any performance
-critical registers in i/o space.
+   Modern devices hopefully are sane enough not to put any performance
+   critical registers in i/o space.
 
-On the first call to ioperm() or _sethae(), the entire (E)ISA port
-space is mapped into the virtual address space at address io.base.
-mprotect() calls are then used to enable/disable access to ports.  Per
-page, there are PAGE_SIZE>>IO_SHIFT I/O ports (e.g., 256 ports on a
-Low Cost Alpha based system using 8KB pages).
+   On the first call to ioperm() or _sethae(), the entire (E)ISA port
+   space is mapped into the virtual address space at address io.base.
+   mprotect() calls are then used to enable/disable access to ports.  Per
+   page, there are PAGE_SIZE>>IO_SHIFT I/O ports (e.g., 256 ports on a
+   Low Cost Alpha based system using 8KB pages).
 
-Keep in mind that this code should be able to run in a 32bit address
-space.  It is therefore unreasonable to expect mmap'ing the entire
-sparse address space would work (e.g., the Low Cost Alpha chip has an
-I/O address space that's 512MB large!).  */
+   Keep in mind that this code should be able to run in a 32bit address
+   space.  It is therefore unreasonable to expect mmap'ing the entire
+   sparse address space would work (e.g., the Low Cost Alpha chip has an
+   I/O address space that's 512MB large!).  */
 
 #include <errno.h>
 #include <fcntl.h>
@@ -66,27 +66,30 @@ I/O address space that's 512MB large!).  */
 #define CIA_SPARSE_MEM         (0xfffffc8000000000UL)
 #define CIA_DENSE_MEM          (0xfffffc8600000000UL)
 
+#define T2_IO_BASE             (0xfffffc03a0000000UL)
+#define T2_SPARSE_BASE         (0xfffffc0200000000UL)
+#define T2_DENSE_BASE          (0xfffffc03c0000000UL)
 
-enum {
-  IOSYS_JENSEN = 0, IOSYS_APECS = 1, IOSYS_CIA = 2
+typedef enum {
+  IOSYS_UNKNOWN, IOSYS_JENSEN, IOSYS_APECS, IOSYS_CIA, IOSYS_T2
 } iosys_t;
 
 struct ioswtch {
-  void         (*sethae)(unsigned long addr);
-  void         (*outb)(unsigned char b, unsigned long port);
-  void         (*outw)(unsigned short b, unsigned long port);
-  void         (*outl)(unsigned int b, unsigned long port);
-  unsigned int (*inb)(unsigned long port);
-  unsigned int (*inw)(unsigned long port);
-  unsigned int (*inl)(unsigned long port);
+  void         (*sethae)(unsigned long int addr);
+  void         (*outb)(unsigned char b, unsigned long int port);
+  void         (*outw)(unsigned short b, unsigned long int port);
+  void         (*outl)(unsigned int b, unsigned long int port);
+  unsigned int (*inb)(unsigned long int port);
+  unsigned int (*inw)(unsigned long int port);
+  unsigned int (*inl)(unsigned long int port);
 };
 
 static struct platform {
-  const char   *name;
-  int          io_sys;
-  int          hae_shift;
-  unsigned long        bus_memory_base;
-  unsigned long        sparse_bus_memory_base;
+  const char      *name;
+  int              io_sys;
+  iosys_t          hae_shift;
+  unsigned long        int bus_memory_base;
+  unsigned long        int sparse_bus_memory_base;
 } platform[] = {
   {"Alcor",    IOSYS_CIA,      5, CIA_DENSE_MEM,       CIA_SPARSE_MEM},
   {"Avanti",   IOSYS_APECS,    5, APECS_DENSE_MEM,     APECS_SPARSE_MEM},
@@ -99,27 +102,29 @@ static struct platform {
   {"Mikasa",   IOSYS_APECS,    5, APECS_DENSE_MEM,     APECS_SPARSE_MEM},
   {"Mustang",  IOSYS_APECS,    5, APECS_DENSE_MEM,     APECS_SPARSE_MEM},
   {"Noname",   IOSYS_APECS,    5, APECS_DENSE_MEM,     APECS_SPARSE_MEM},
+  {"Sable",    IOSYS_T2,       5, T2_DENSE_MEM,        T2_SPARSE_MEM},
 };
 
 
 static struct {
   struct hae {
-    unsigned long      cache;
-    unsigned long *    reg;
+    unsigned long int  cache;
+    unsigned long int *        reg;
   } hae;
-  unsigned long                base;
+  unsigned long int    base;
   struct ioswtch *     swp;
-  int                  sys;
+  unsigned long int    bus_memory_base;
+  unsigned long int    sparse_bus_memory_base;
+  unsigned long int    io_base;
+  iosys_t              sys;
   int                  hae_shift;
-  unsigned long                bus_memory_base;
-  unsigned long                sparse_bus_memory_base;
 } io;
 
-extern void __sethae (unsigned long);  /* we can't use asm/io.h */
+extern void __sethae (unsigned long int);      /* we can't use asm/io.h */
 
 
-static inline unsigned long
-port_to_cpu_addr (unsigned long port, int iosys, int size)
+static inline unsigned long int
+port_to_cpu_addr (unsigned long int port, iosys_t iosys, int size)
 {
   if (iosys == IOSYS_JENSEN)
     return (port << 7) + ((size - 1) << 5) + io.base;
@@ -129,7 +134,7 @@ port_to_cpu_addr (unsigned long port, int iosys, int size)
 
 
 static inline void
-inline_sethae (unsigned long addr, int iosys)
+inline_sethae (unsigned long int addr, iosys_t iosys)
 {
   if (iosys == IOSYS_JENSEN)
     {
@@ -143,7 +148,7 @@ inline_sethae (unsigned long addr, int iosys)
     }
   else
     {
-      unsigned long msb;
+      unsigned long int msb;
 
       /* no need to set hae if msb is 0: */
       msb = addr & 0xf8000000;
@@ -157,10 +162,10 @@ inline_sethae (unsigned long addr, int iosys)
 
 
 static inline void
-inline_outb (unsigned char b, unsigned long port, int iosys)
+inline_outb (unsigned char b, unsigned long int port, iosys_t iosys)
 {
   unsigned int w;
-  unsigned long addr = port_to_cpu_addr (port, iosys, 1);
+  unsigned long int addr = port_to_cpu_addr (port, iosys, 1);
 
   inline_sethae (0, iosys);
   asm ("insbl %2,%1,%0" : "r=" (w) : "ri" (port & 0x3), "r" (b));
@@ -170,10 +175,10 @@ inline_outb (unsigned char b, unsigned long port, int iosys)
 
 
 static inline void
-inline_outw (unsigned short b, unsigned long port, int iosys)
+inline_outw (unsigned short int b, unsigned long int port, iosys_t iosys)
 {
   unsigned int w;
-  unsigned long addr = port_to_cpu_addr (port, iosys, 2);
+  unsigned long int addr = port_to_cpu_addr (port, iosys, 2);
 
   inline_sethae (0, iosys);
   asm ("inswl %2,%1,%0" : "r=" (w) : "ri" (port & 0x3), "r" (b));
@@ -183,9 +188,9 @@ inline_outw (unsigned short b, unsigned long port, int iosys)
 
 
 static inline void
-inline_outl (unsigned int b, unsigned long port, int iosys)
+inline_outl (unsigned int b, unsigned long int port, iosys_t iosys)
 {
-  unsigned long addr = port_to_cpu_addr (port, iosys, 4);
+  unsigned long int addr = port_to_cpu_addr (port, iosys, 4);
 
   if (port >= MAX_PORT)
     return;
@@ -197,9 +202,9 @@ inline_outl (unsigned int b, unsigned long port, int iosys)
 
 
 static inline unsigned int
-inline_inb (unsigned long port, int iosys)
+inline_inb (unsigned long int port, iosys_t iosys)
 {
-  unsigned long result, addr = port_to_cpu_addr (port, iosys, 1);
+  unsigned long int result, addr = port_to_cpu_addr (port, iosys, 1);
 
   inline_sethae (0, iosys);
   result = *(vuip) addr;
@@ -209,9 +214,9 @@ inline_inb (unsigned long port, int iosys)
 
 
 static inline unsigned int
-inline_inw (unsigned long port, int iosys)
+inline_inw (unsigned long int port, iosys_t iosys)
 {
-  unsigned long result, addr = port_to_cpu_addr (port, iosys, 2);
+  unsigned long int result, addr = port_to_cpu_addr (port, iosys, 2);
 
   inline_sethae (0, iosys);
   result = *(vuip) addr;
@@ -221,9 +226,9 @@ inline_inw (unsigned long port, int iosys)
 
 
 static inline unsigned int
-inline_inl (unsigned long port, int iosys)
+inline_inl (unsigned long int port, iosys_t iosys)
 {
-  unsigned long addr = port_to_cpu_addr (port, iosys, 4);
+  unsigned long int addr = port_to_cpu_addr (port, iosys, 4);
 
   inline_sethae (0, iosys);
   return *(vuip) addr;
@@ -232,14 +237,14 @@ inline_inl (unsigned long port, int iosys)
 
 #define DCL_SETHAE(name, iosys)                        \
 static void                                            \
-name##_sethae (unsigned long addr)                     \
+name##_sethae (unsigned long int addr)                 \
 {                                                      \
   inline_sethae (addr, IOSYS_##iosys);                 \
 }
 
 #define DCL_OUT(name, func, type, iosys)               \
 static void                                            \
-name##_##func (unsigned type b, unsigned long addr)    \
+name##_##func (unsigned type b, unsigned long int addr)        \
 {                                                      \
   inline_##func (b, addr, IOSYS_##iosys);              \
 }
@@ -247,7 +252,7 @@ name##_##func (unsigned type b, unsigned long addr) \
 
 #define DCL_IN(name, func, iosys)                      \
 static unsigned int                                    \
-name##_##func (unsigned long addr)                     \
+name##_##func (unsigned long int addr)                 \
 {                                                      \
   return inline_##func (addr, IOSYS_##iosys);          \
 }
@@ -255,7 +260,7 @@ name##_##func (unsigned long addr)                  \
 
 DCL_SETHAE(jensen, JENSEN)
 DCL_OUT(jensen, outb, char,  JENSEN)
-DCL_OUT(jensen, outw, short, JENSEN)
+DCL_OUT(jensen, outw, short int, JENSEN)
 DCL_OUT(jensen, outl, int,   JENSEN)
 DCL_IN(jensen, inb, JENSEN)
 DCL_IN(jensen, inw, JENSEN)
@@ -266,7 +271,7 @@ DCL_IN(jensen, inl, JENSEN)
 
 DCL_SETHAE(apecs, APECS)
 DCL_OUT(apecs, outb, char,  APECS)
-DCL_OUT(apecs, outw, short, APECS)
+DCL_OUT(apecs, outw, short int, APECS)
 DCL_OUT(apecs, outl, int,   APECS)
 DCL_IN(apecs, inb, APECS)
 DCL_IN(apecs, inw, APECS)
@@ -291,6 +296,10 @@ struct ioswtch ioswtch[] = {
  * with, we first try to read the value of symlink PATH_ALPHA_SYSTYPE,
  * if that fails, we lookup the "system type" field in /proc/cpuinfo.
  * If that fails as well, we give up.
+ *
+ * If the value received from PATH_ALPHA_SYSTYPE begins with a number,
+ * assume this is a previously unsupported system and the values encode,
+ * in order, "<io_base>,<hae_shift>,<dense_base>,<sparse_base>".
  */
 static int
 init_iosys (void)
@@ -298,10 +307,21 @@ init_iosys (void)
   char systype[256];
   int i, n;
 
-  n = readlink(PATH_ALPHA_SYSTYPE, systype, sizeof(systype) - 1);
+  n = readlink (PATH_ALPHA_SYSTYPE, systype, sizeof (systype) - 1);
   if (n > 0)
     {
       systype[n] = '\0';
+      if (isdigit (systype[0]))
+       {
+         if (sscanf (systype, "%li,%i,%li,%li", &io.io_base, &io.hae_shift,
+                     &io.bus_memory_base, &io.sparse_bus_memory_base) == 4)
+           {
+             io.sys = IOSYS_UNKNOWN;
+             io.swp = &ioswtch[1];
+             return 0;
+           }
+         /* else we're likely going to fail with the system match below */
+       }
     }
   else
     {
@@ -318,14 +338,14 @@ init_iosys (void)
          else
            fgets (systype, 256, fp);
        }
-      fclose(fp);
+      fclose (fp);
 
       if (n == EOF)
        {
          /* this can happen if the format of /proc/cpuinfo changes...  */
-         fprintf(stderr,
-                 "ioperm.init_iosys(): Unable to determine system type.\n"
-                 "\t(May need " PATH_ALPHA_SYSTYPE " symlink?)\n");
+         fprintf (stderr,
+                  "ioperm.init_iosys(): Unable to determine system type.\n"
+                  "\t(May need " PATH_ALPHA_SYSTYPE " symlink?)\n");
          __set_errno (ENODEV);
          return -1;
        }
@@ -355,9 +375,9 @@ init_iosys (void)
 
 
 int
-_ioperm (unsigned long from, unsigned long num, int turn_on)
+_ioperm (unsigned long int from, unsigned long int num, int turn_on)
 {
-  unsigned long addr, len;
+  unsigned long int addr, len;
   int prot;
 
   if (!io.swp && init_iosys () < 0)
@@ -374,7 +394,7 @@ _ioperm (unsigned long from, unsigned long num, int turn_on)
     {
       if (!io.base)
        {
-         unsigned long base;
+         unsigned long int base;
          int fd;
 
          io.hae.reg   = 0;             /* not used in user-level */
@@ -387,6 +407,7 @@ _ioperm (unsigned long from, unsigned long num, int turn_on)
 
          switch (io.sys)
            {
+           case IOSYS_UNKNOWN: base = io.io_base; break;
            case IOSYS_JENSEN:  base = JENSEN_IO_BASE; break;
            case IOSYS_APECS:   base = APECS_IO_BASE; break;
            case IOSYS_CIA:     base = CIA_IO_BASE; break;
@@ -398,7 +419,8 @@ _ioperm (unsigned long from, unsigned long num, int turn_on)
          addr &= PAGE_MASK;
          len = port_to_cpu_addr (MAX_PORT, io.sys, 1) - addr;
          io.base =
-           (unsigned long) __mmap (0, len, PROT_NONE, MAP_SHARED, fd, base);
+           (unsigned long int) __mmap (0, len, PROT_NONE, MAP_SHARED,
+                                       fd, base);
          close (fd);
          if ((long) io.base == -1)
            return -1;
@@ -437,7 +459,7 @@ _iopl (unsigned int level)
 
 
 void
-_sethae (unsigned long addr)
+_sethae (unsigned long int addr)
 {
   if (!io.swp && init_iosys () < 0)
     return;
@@ -447,7 +469,7 @@ _sethae (unsigned long addr)
 
 
 void
-_outb (unsigned char b, unsigned long port)
+_outb (unsigned char b, unsigned long int port)
 {
   if (port >= MAX_PORT)
     return;
@@ -457,7 +479,7 @@ _outb (unsigned char b, unsigned long port)
 
 
 void
-_outw (unsigned short b, unsigned long port)
+_outw (unsigned short b, unsigned long int port)
 {
   if (port >= MAX_PORT)
     return;
@@ -467,7 +489,7 @@ _outw (unsigned short b, unsigned long port)
 
 
 void
-_outl (unsigned int b, unsigned long port)
+_outl (unsigned int b, unsigned long int port)
 {
   if (port >= MAX_PORT)
     return;
@@ -477,27 +499,27 @@ _outl (unsigned int b, unsigned long port)
 
 
 unsigned int
-_inb (unsigned long port)
+_inb (unsigned long int port)
 {
   return io.swp->inb (port);
 }
 
 
 unsigned int
-_inw (unsigned long port)
+_inw (unsigned long int port)
 {
   return io.swp->inw (port);
 }
 
 
 unsigned int
-_inl (unsigned long port)
+_inl (unsigned long int port)
 {
   return io.swp->inl (port);
 }
 
 
-unsigned long
+unsigned long int
 _bus_base(void)
 {
   if (!io.swp && init_iosys () < 0)
@@ -505,7 +527,7 @@ _bus_base(void)
   return io.bus_memory_base;
 }
 
-unsigned long
+unsigned long int
 _bus_base_sparse(void)
 {
   if (!io.swp && init_iosys () < 0)
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel_termios.h b/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
deleted file mode 100644 (file)
index cb030e4..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* The following corresponds to the values from the Linux 2.1.20 kernel.  */
-
-#define KERNEL_NCCS 19
-
-struct kernel_termios
-  {
-    tcflag_t c_iflag;          /* input mode flags */
-    tcflag_t c_oflag;          /* output mode flags */
-    tcflag_t c_cflag;          /* control mode flags */
-    tcflag_t c_lflag;          /* local mode flags */
-    cc_t c_cc[KERNEL_NCCS];    /* control characters */
-    cc_t c_line;               /* line discipline */
-    speed_t c_ispeed;          /* input speed */
-    speed_t c_ospeed;          /* output speed */
-  };
-
-#define _HAVE_C_ISPEED 1
-#define _HAVE_C_OSPEED 1
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/kernel_termios.h b/sysdeps/unix/sysv/linux/alpha/sys/kernel_termios.h
new file mode 100644 (file)
index 0000000..eebe976
--- /dev/null
@@ -0,0 +1,18 @@
+/* The following corresponds to the values from the Linux 2.1.20 kernel.  */
+
+#define __KERNEL_NCCS 19
+
+struct __kernel_termios
+  {
+    tcflag_t c_iflag;          /* input mode flags */
+    tcflag_t c_oflag;          /* output mode flags */
+    tcflag_t c_cflag;          /* control mode flags */
+    tcflag_t c_lflag;          /* local mode flags */
+    cc_t c_cc[__KERNEL_NCCS];  /* control characters */
+    cc_t c_line;               /* line discipline */
+    speed_t c_ispeed;          /* input speed */
+    speed_t c_ospeed;          /* output speed */
+  };
+
+#define _HAVE_C_ISPEED 1
+#define _HAVE_C_OSPEED 1
index 03af029..7bd6e69 100644 (file)
@@ -94,7 +94,7 @@ struct elf_prpsinfo
     unsigned long int pr_flag;         /* Flags.  */
     unsigned int pr_uid;
     unsigned int pr_gid;
-    unsigned int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+    int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing */
     char pr_fname[16];                 /* Filename of executable.  */
     char pr_psargs[ELF_PRARGSZ];       /* Initial part of arg list.  */
index cf5f439..7140706 100644 (file)
@@ -17,7 +17,6 @@ semctl                -       semctl          4       __semctl        semctl
 
 osf_sigprocmask        -       osf_sigprocmask 2       __osf_sigprocmask
 
-getdents       -       getdents        3       __getdirentries getdirentries
 getpeername    -       getpeername     3       __getpeername   getpeername
 getpriority    -       getpriority     2       __getpriority   getpriority
 mmap           -       mmap            6       __mmap          mmap
index 2092321..a6137d9 100644 (file)
@@ -20,7 +20,7 @@ else
 #include "confdefs.h"
 #include <linux/version.h>
 int main() {
-#if LINUX_VERSION_CODE <  ( *65536+ 0 *256+ 10) /* .0.10 */
+#if LINUX_VERSION_CODE <  (2 *65536+ 0 *256+ 10) /* 2.0.10 */
 eat flaming death
 #endif
 ; return 0; }
index 0504393..40b3161 100644 (file)
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+#include <alloca.h>
 #include <dirent.h>
 #include <stddef.h>
 #include <string.h>
 #include <unistd.h>
+#include <sys/param.h>
 #include <sys/types.h>
 
 #include <linux/posix_types.h>
@@ -52,8 +54,7 @@ struct kernel_dirent
    in the buffer.  Taking this number allows us to specify a correct
    number of bytes to read.  If we should be wrong, we can reset the
    file descriptor.  */
-int __getdirentries __P ((int fd, char *buf, size_t nbytes, off_t *basep));
-int
+ssize_t
 __getdirentries (fd, buf, nbytes, basep)
      int fd;
      char *buf;
@@ -62,32 +63,33 @@ __getdirentries (fd, buf, nbytes, basep)
 {
   off_t base = __lseek (fd, (off_t) 0, SEEK_CUR);
   size_t red_nbytes;
-  struct kernel_dirent *kdp;
+  struct kernel_dirent *skdp, *kdp;
   struct dirent *dp;
   int retval;
 
   red_nbytes = nbytes - (nbytes / (offsetof (struct dirent, d_name) + 3));
 
   dp = (struct dirent *) buf;
-  kdp = (struct kernel_dirent *) (buf + (nbytes - red_nbytes));
+  skdp = kdp = __alloca (red_nbytes);
 
   retval = __getdents (fd, (char *) kdp, red_nbytes);
 
-  while ((char *) kdp < buf + (nbytes - red_nbytes) + retval)
+  while ((char *) kdp < (char *) skdp + retval)
     {
+      const size_t size_diff = MAX (offsetof (struct dirent, d_name)
+                                   - offsetof (struct kernel_dirent, d_name),
+                                   __alignof__ (struct dirent));
       dp->d_ino = kdp->d_ino;
       dp->d_off = kdp->d_off;
-      dp->d_reclen = (kdp->d_reclen
-                     + (offsetof (struct dirent, d_name)
-                        - offsetof (struct kernel_dirent, d_name)));
+      dp->d_reclen = kdp->d_reclen + size_diff;
       dp->d_type = DT_UNKNOWN;
-      memmove (dp->d_name, kdp->d_name,
-              kdp->d_reclen - offsetof (struct kernel_dirent, d_name));
+      memcpy (dp->d_name, kdp->d_name,
+             kdp->d_reclen - offsetof (struct kernel_dirent, d_name));
 
       dp = (struct dirent *) (((char *) dp) + dp->d_reclen);
       kdp = (struct kernel_dirent *) (((char *) kdp) + kdp->d_reclen);
 
-      if ((char *) dp >= (char *) kdp)
+      if ((char *) dp >= buf + nbytes)
        {
          /* Our heuristic failed.  We read too many entries.  Reset
             the stream.  */
@@ -99,7 +101,7 @@ __getdirentries (fd, buf, nbytes, basep)
   if (basep)
     *basep = base;
 
-  return (char *) dp - (char *) buf;
+  return (char *) dp - buf;
 }
 
 weak_alias (__getdirentries, getdirentries)
index 77c9ad3..2ecedd4 100644 (file)
@@ -1,4 +1,4 @@
-ifeq ($(subdir), misc)
+ifeq ($(subdir),misc)
 sysdep_routines += ioperm iopl vm86
 sysdep_headers += sys/perm.h sys/vm86.h
 endif
diff --git a/sysdeps/unix/sysv/linux/kernel_termios.h b/sysdeps/unix/sysv/linux/kernel_termios.h
deleted file mode 100644 (file)
index 3b2653b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* The following corresponds to the values from the Linux 2.1.20 kernel.  */
-
-#define KERNEL_NCCS 19
-
-struct kernel_termios
-  {
-    tcflag_t c_iflag;          /* input mode flags */
-    tcflag_t c_oflag;          /* output mode flags */
-    tcflag_t c_cflag;          /* control mode flags */
-    tcflag_t c_lflag;          /* local mode flags */
-    cc_t c_line;               /* line discipline */
-    cc_t c_cc[KERNEL_NCCS];    /* control characters */
-  };
diff --git a/sysdeps/unix/sysv/linux/sys/kernel_termios.h b/sysdeps/unix/sysv/linux/sys/kernel_termios.h
new file mode 100644 (file)
index 0000000..9534976
--- /dev/null
@@ -0,0 +1,13 @@
+/* The following corresponds to the values from the Linux 2.1.20 kernel.  */
+
+#define __KERNEL_NCCS 19
+
+struct __kernel_termios
+  {
+    tcflag_t c_iflag;          /* input mode flags */
+    tcflag_t c_oflag;          /* output mode flags */
+    tcflag_t c_cflag;          /* control mode flags */
+    tcflag_t c_lflag;          /* local mode flags */
+    cc_t c_line;               /* line discipline */
+    cc_t c_cc[__KERNEL_NCCS];  /* control characters */
+  };
index e8d3239..a1190a3 100644 (file)
@@ -94,7 +94,7 @@ struct elf_prpsinfo
     unsigned long int pr_flag;         /* Flags.  */
     unsigned short int pr_uid;
     unsigned short int pr_gid;
-    unsigned short int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+    int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing */
     char pr_fname[16];                 /* Filename of executable.  */
     char pr_psargs[ELF_PRARGSZ];       /* Initial part of arg list.  */
index 2e8cb1c..9578c4b 100644 (file)
@@ -23,7 +23,7 @@
 /* The difference here is that the termios structure used in the
    kernel is not the same as we use in the libc.  Therefore we must
    translate it here.  */
-#include <kernel_termios.h>
+#include <sys/kernel_termios.h>
 
 /* Put the state of FD into *TERMIOS_P.  */
 int
@@ -31,7 +31,7 @@ __tcgetattr (fd, termios_p)
       int fd;
       struct termios *termios_p;
 {
-  struct kernel_termios k_termios;
+  struct __kernel_termios k_termios;
   int retval;
   size_t cnt;
 
@@ -48,7 +48,7 @@ __tcgetattr (fd, termios_p)
 #ifdef _HAVE_C_OSPEED
   termios_p->c_ospeed = k_termios.c_ospeed;
 #endif
-  for (cnt = 0; cnt < KERNEL_NCCS; ++cnt)
+  for (cnt = 0; cnt < __KERNEL_NCCS; ++cnt)
     termios_p->c_cc[cnt] = k_termios.c_cc[cnt];
 
   return retval;
index 3bb3e9f..6c12811 100644 (file)
@@ -24,7 +24,7 @@
 /* The difference here is that the termios structure used in the
    kernel is not the same as we use in the libc.  Therefore we must
    translate it here.  */
-#include <kernel_termios.h>
+#include <sys/kernel_termios.h>
 
 
 /* Set the state of FD to *TERMIOS_P.  */
@@ -34,7 +34,7 @@ tcsetattr (fd, optional_actions, termios_p)
      int optional_actions;
      const struct termios *termios_p;
 {
-  struct kernel_termios k_termios;
+  struct __kernel_termios k_termios;
   unsigned long int cmd;
   size_t cnt;
 
@@ -65,7 +65,7 @@ tcsetattr (fd, optional_actions, termios_p)
 #ifdef _HAVE_C_OSPEED
   k_termios.c_ospeed = termios_p->c_ospeed;
 #endif
-  for (cnt = 0; cnt < KERNEL_NCCS; ++cnt)
+  for (cnt = 0; cnt < __KERNEL_NCCS; ++cnt)
     k_termios.c_cc[cnt] = termios_p->c_cc[cnt];
 
   return __ioctl (fd, cmd, &k_termios);
diff --git a/time/Banner b/time/Banner
deleted file mode 100644 (file)
index eb972db..0000000
+++ /dev/null
@@ -1 +0,0 @@
-tzcode1997a and tzdata1997a by Arthur David Olson et. al.
index 21ad62e..7f8513c 100644 (file)
@@ -24,7 +24,7 @@ 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    \
-             Banner
+             README
 extra-objs = scheck.o ialloc.o $(tzfiles:%=z.%)
 
 routines       := offtime asctime clock ctime ctime_r difftime \
@@ -65,22 +65,22 @@ endef
 
 # Make these absolute file names.
 installed-localtime-file := $(firstword $(filter /%,$(localtime-file)) \
-                                       $(addprefix $(zonedir)/, \
+                                       $(addprefix $(inst_zonedir)/, \
                                                    $(localtime-file)))
 installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \
-                                        $(addprefix $(zonedir)/, \
+                                        $(addprefix $(inst_zonedir)/, \
                                                     $(posixrules-file)))
 
 ifeq ($(cross-compiling),no)
 # Don't try to install the zoneinfo files since we can't run zic.
-install-others = $(addprefix $(zonedir)/,$(zonenames) \
-                                        $(zonenames:%=posix/%) \
-                                        $(zonenames:%=right/%)) \
+install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \
+                                             $(zonenames:%=posix/%) \
+                                             $(zonenames:%=right/%)) \
                 $(installed-localtime-file) $(installed-posixrules-file)
 endif
 
 ifeq ($(have-ksh),yes)
-install-others += $(zonedir)/iso3166.tab $(zonedir)/zone.tab
+install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
 install-bin += tzselect
 endif
 
@@ -115,23 +115,23 @@ echo-zonenames:
        @echo 'Known zones: $(zonenames)'
 
 
-# Although $(zonedir) gets compiled into zic, it is useful to always
-# specify it with -d on the command line so that it can be overridden on
-# the command line of `make install' (e.g., "make install prefix=/foo").
-zic-cmd = $(built-program-cmd) -d $(zonedir)
+# We have to use `-d $(inst_zonedir)' to explictly tell zic where to
+# place the output files although $(zonedir) is compiled in.  But the
+# user might have set $(install_root) on the command line of `make install'.
+zic-cmd = $(built-program-cmd) -d $(inst_zonedir)
 tzcompile = $(zic-cmd)$(target-zone-flavor) -L $(word 3,$^) \
            -y $(dir $(word 4,$^))$(notdir $(word 4,$^)) $<
 
 # The source files specify the zone names relative to the -d directory,
-# so for the posix/ and right/ flavors we need to pass -d $(zonedir)/posix
+# so for the posix/ and right/ flavors we need to pass -d $(inst_zonedir)/posix
 # and the like.  This magic extracts /posix or /right if it's the first
-# component after $(zonedir) in the target name $@.
+# component after $(inst_zonedir) in the target name $@.
 target-zone-flavor = $(filter /posix /right, \
                              /$(firstword $(subst /, , \
-                                          $(patsubst $(zonedir)/%,%,$@))))
+                                         $(patsubst $(inst_zonedir)/%,%,$@))))
 
 ifdef localtime
-$(installed-localtime-file): $(zonedir)/$(localtime) $(objpfx)zic
+$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic
        $(make-target-directory)
        if test -r $@; then \
          echo Site timezone NOT reset to Factory.; \
@@ -142,7 +142,7 @@ $(installed-localtime-file): $(zonedir)/$(localtime) $(objpfx)zic
        fi
 endif
 ifdef posixrules
-$(installed-posixrules-file): $(zonedir)/$(posixrules) $(objpfx)zic
+$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic
        $(zic-cmd) -p $(posixrules)
 endif
 
@@ -179,4 +179,5 @@ $(objpfx)tzselect: tzselect.ksh
        chmod 555 $@.new
        mv -f $@.new $@
 
-$(addprefix $(zonedir)/,iso3166.tab zone.tab): $(zonedir)/%: %; $(do-install)
+$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): $(inst_zonedir)/%: %
+       $(do-install)
diff --git a/time/README b/time/README
new file mode 100644 (file)
index 0000000..3bd4e30
--- /dev/null
@@ -0,0 +1,28 @@
+The sources files
+       `zic.c'
+       `zdump.c'
+       `tzselect.ksh'
+       `checktab.awk'
+files come from the tzcode1997a package by Arthur David Olsen et.al.
+
+The file
+       `africa'
+       `antarctica'
+       `asia'
+       `australasia'
+       `europe'
+       `northamerica'
+       `southamerica'
+       `pacificnew'
+       `etcetera'
+       `factory'
+       `backward'
+       `systemv'
+       `solar87'
+       `solar88'
+       `solar89'
+       `iso3166.tab'
+       `zone.tab'
+       `leapseconds'
+       `yearistype'
+files come from the tzdata1997a package by Arthur David Olsen et.al.
index 56abd45..ca3563c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 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
@@ -328,6 +328,31 @@ static char const month_name[][10] =
   };
 #endif
 
+
+#if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET
+  /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime.
+     Work around this bug by copying *tp before it might be munged.  */
+  size_t _strftime_copytm __P ((char *, size_t, const char *,
+                               const struct tm *));
+  size_t
+  strftime (s, maxsize, format, tp)
+      char *s;
+      size_t maxsize;
+      const char *format;
+      const struct tm *tp;
+  {
+    struct tm tmcopy;
+    tmcopy = *tp;
+    return _strftime_copytm (s, maxsize, format, &tmcopy);
+  }
+# ifdef strftime
+#  undef strftime
+# endif
+# define strftime(S, Maxsize, Format, Tp) \
+  _strftime_copytm ((S), (Maxsize), (Format), (Tp))
+#endif
+
+
 /* Write information from TP into S according to the format
    string FORMAT, writing no more that MAXSIZE characters
    (including the terminating '\0') and returning number of