+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
configure: configure.in aclocal.m4; $(autoconf-it)
%/configure: %/configure.in aclocal.m4; $(autoconf-it)
-.PHONY: dist
dist: $(tardir).tar.gz
subdir_dist: dist.tar
$(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.
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
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.
# 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
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
# 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
# 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';\
# 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';\
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 $@
# 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
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
# 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.'; \
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
# 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)
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)
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
$(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
# 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.
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) \
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)
/* 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
#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 */
# 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)
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
/* 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.
#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
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; })
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; })
( (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)
.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 \
done
installdirs: $(firstword $(wildcard mkinstalldirs ../mkinstalldirs))
- $(dir $<)$(notdir $<) $(infodir)
+ $(dir $<)$(notdir $<) $(inst_infodir)
.PHONY: dist
dist: # glibc-doc-$(edition).tar.gz
-/* 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.
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
case REG_EESCAPE:
case REG_BADRPT:
case REG_EEND:
- case REG_RPAREN:
+ case REG_ERPAREN:
default:
/* There is no matching error code. */
RETURN (36);
-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))
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
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
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
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;
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;
}
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;
}
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;
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;
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);
*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;
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 \
# 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"'
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.
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
+# 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
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
-/* 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>
#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;
}
weak_alias (__getdirentries, getdirentries)
-
/* 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>
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;
-/* 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>
# 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
-/* 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;
__set_errno (ENOSYS);
return -1;
}
-stub_warning (getdirentries)
-
weak_alias (__getdirentries, getdirentries)
+
+stub_warning (getdirentries)
-ifeq ($(subdir), posix)
+ifeq ($(subdir),posix)
sysdep_routines := $(sysdep_routines) sys_wait4
endif
-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
#include <sys/types.h>
#include <unistd.h>
-int
+ssize_t
__getdirentries (fd, buf, nbytes, basep)
int fd;
char *buf;
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)
-/* 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>
# 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)))
#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;
init-first.h
kernel_sigaction.h
-kernel_termios.h
llseek.c
siglist.h
sysctl.c
sys/io.h
sys/kd.h
sys/kdaemon.h
+sys/kernel_termios.h
sys/klog.h
sys/module.h
sys/mount.h
-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 \
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
init-first.h
clone.S
sys/io.h
-kernel_sigaction.h
kernel_termios.h
sys/acct.h
+sys/kernel_sigaction.h
sys/procfs.h
-ifeq ($(subdir), misc)
+ifeq ($(subdir),misc)
sysdep_headers += alpha/ptrace.h alpha/regdef.h
sysdep_routines += ieee_get_fp_control ieee_set_fp_control \
--- /dev/null
+/* 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 */
-/* 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>
#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},
{"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;
static inline void
-inline_sethae (unsigned long addr, int iosys)
+inline_sethae (unsigned long int addr, iosys_t iosys)
{
if (iosys == IOSYS_JENSEN)
{
}
else
{
- unsigned long msb;
+ unsigned long int msb;
/* no need to set hae if msb is 0: */
msb = addr & 0xf8000000;
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));
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));
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;
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;
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;
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;
#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); \
}
#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); \
}
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)
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)
* 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)
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
{
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;
}
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)
{
if (!io.base)
{
- unsigned long base;
+ unsigned long int base;
int fd;
io.hae.reg = 0; /* not used in user-level */
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;
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;
void
-_sethae (unsigned long addr)
+_sethae (unsigned long int addr)
{
if (!io.swp && init_iosys () < 0)
return;
void
-_outb (unsigned char b, unsigned long port)
+_outb (unsigned char b, unsigned long int port)
{
if (port >= MAX_PORT)
return;
void
-_outw (unsigned short b, unsigned long port)
+_outw (unsigned short b, unsigned long int port)
{
if (port >= MAX_PORT)
return;
void
-_outl (unsigned int b, unsigned long port)
+_outl (unsigned int b, unsigned long int port)
{
if (port >= MAX_PORT)
return;
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)
return io.bus_memory_base;
}
-unsigned long
+unsigned long int
_bus_base_sparse(void)
{
if (!io.swp && init_iosys () < 0)
/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-#define KERNEL_NCCS 19
+#define __KERNEL_NCCS 19
-struct kernel_termios
+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_cc[__KERNEL_NCCS]; /* control characters */
cc_t c_line; /* line discipline */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
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. */
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
#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; }
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>
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;
{
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. */
if (basep)
*basep = base;
- return (char *) dp - (char *) buf;
+ return (char *) dp - buf;
}
weak_alias (__getdirentries, getdirentries)
-ifeq ($(subdir), misc)
+ifeq ($(subdir),misc)
sysdep_routines += ioperm iopl vm86
sysdep_headers += sys/perm.h sys/vm86.h
endif
/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-#define KERNEL_NCCS 19
+#define __KERNEL_NCCS 19
-struct kernel_termios
+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 */
+ cc_t c_cc[__KERNEL_NCCS]; /* control characters */
};
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. */
/* 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
int fd;
struct termios *termios_p;
{
- struct kernel_termios k_termios;
+ struct __kernel_termios k_termios;
int retval;
size_t cnt;
#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;
/* 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. */
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;
#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);
+++ /dev/null
-tzcode1997a and tzdata1997a by Arthur David Olson et. al.
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 \
# 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
@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.; \
fi
endif
ifdef posixrules
-$(installed-posixrules-file): $(zonedir)/$(posixrules) $(objpfx)zic
+$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic
$(zic-cmd) -p $(posixrules)
endif
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)
--- /dev/null
+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.
-/* 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
};
#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