summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-02-15 19:31:34 +0000
committerUlrich Drepper <drepper@redhat.com>1998-02-15 19:31:34 +0000
commit14ea22e96c0b6fce54e2451c69c96c429177b62c (patch)
tree4fa8964f6ae07342ee56de737e944c60f6a4cf63
parentdc30f461575342ffeb6c0f2d5931493c1c3a91c0 (diff)
Update.
1998-02-15 Ulrich Drepper <drepper@cygnus.com> * nss/nsswitch.c (__nss_lookup): Return 1 if this was the last module. * nss/getXXent_r.c: If no more module is found don't try to call setXXent functions but leave unsuccessfully. * malloc/obstack.h: Cleanups. * sysdeps/wordsize-32/stdint.h: New file. * sysdeps/wordsize-64/stdint.h: New file. * sysdeps/generic/stdint.h: New file. * sysdeps/wordsize-32/inttypes.h: Adopt to use stdint.h. * sysdeps/wordsize-64/inttypes.h: Likewise. * stdlib/Makefile (headers): Add stdint.h. 1998-02-03 Paul Eggert <eggert@twinsun.com> * malloc/obstack.h (PTR_INT_TYPE): Use __PTRDIFF_TYPE__ if available. 1998-02-13 17:59 Zack Weinberg <zack@rabi.phys.columbia.edu> * timezone: New directory. * time/README, time/africa, time/antarctica, time/asia, time/australasia, time/backward, time/checktab.awk, time/etcetera, time/europe, time/factory, time/ialloc.c, time/iso3166.tab, time/leapseconds, time/northamerica, time/pacificnew, time/private.h, time/scheck.c, time/solar87, time/solar88, time/solar89, time/southamerica, time/systemv, time/test-tz.c, time/tzfile.h, time/tzselect.ksh, time/yearistype, time/zdump.c, time/zic.c, time/zone.tab: Moved to timezone. * time/tzfile.c: Include tzfile.h from timezone subdir. * time/tzset.c: Likewise. * time/Makefile: Cut out all code relating to timezones... * timezone/Makefile: ...and paste it in here. * Makefile (subdirs): Add timezone. 1998-02-13 18:45 H.J. Lu <hjl@gnu.org> * libc.map (_sys_nerr): Added. * sysdeps/unix/sysv/linux/errlist.c (_sys_nerr): Make it versioned symbol. 1998-02-15 17:16 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/bits/socket.h: Define PF_KEY and pseudo_AF_KEY instead of pseudo_PF_KEY and AF_KEY. Reported by Craig Metz <cmetz@inner.net>. 1998-01-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): Use __strcasecmp instead of strcasecmp. * nss/nss_files/files-alias.c (get_next_alias): Likewise. * wctype/wctype.h (_ISwbit): Avoid warning with gcc before 2.8. 1998-02-15 16:55 Ulrich Drepper <drepper@cygnus.com> * socket/sys/socket.h (setsockopt): Make OPTVAL parameter const. Patch by Dean Gaudet <dgaudet@arctic.org>. 1998-02-15 16:53 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/Dist: Add getresgid.c and getresuid.c. 1998-02-15 10:49 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/unix/sysv/linux/poll.c: If compiled against a kernel with no poll syscall, just include the BSD version. * sysdeps/unix/sysv/linux/getresuid.c: If compiled against a kernel without the syscall, include the stub version. * sysdeps/unix/sysv/linux/getresgid.c: Likewise. * sysdeps/generic/getresuid.c: New file. * sysdeps/generic/getresgid.c: New file. 1998-02-15 Ulrich Drepper <drepper@cygnus.com> * stdio-common/vfscanf.c: Correct last change a bit.
-rw-r--r--ChangeLog84
-rw-r--r--Makefile2
-rw-r--r--README-alpha (renamed from SNAP)0
-rw-r--r--elf/Makefile7
-rw-r--r--libc.map4
-rw-r--r--malloc/obstack.h172
-rw-r--r--math/test-reduce.c207
-rw-r--r--nss/getXXent_r.c7
-rw-r--r--nss/nss_files/files-alias.c2
-rw-r--r--nss/nss_files/files-parse.c2
-rw-r--r--nss/nsswitch.c7
-rw-r--r--socket/sys/socket.h4
-rw-r--r--stdio-common/vfscanf.c46
-rw-r--r--stdlib/Makefile2
-rw-r--r--sysdeps/generic/Dist2
-rw-r--r--sysdeps/generic/getresgid.c34
-rw-r--r--sysdeps/generic/getresuid.c34
-rw-r--r--sysdeps/generic/s_exp2.c15
-rw-r--r--sysdeps/generic/s_exp2f.c15
-rw-r--r--sysdeps/generic/stdint.h1
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h6
-rw-r--r--sysdeps/unix/sysv/linux/errlist.c4
-rw-r--r--sysdeps/unix/sysv/linux/getresgid.c6
-rw-r--r--sysdeps/unix/sysv/linux/getresuid.c6
-rw-r--r--sysdeps/unix/sysv/linux/poll.c8
-rw-r--r--sysdeps/wordsize-32/inttypes.h425
-rw-r--r--sysdeps/wordsize-32/stdint.h214
-rw-r--r--sysdeps/wordsize-64/inttypes.h423
-rw-r--r--sysdeps/wordsize-64/stdint.h214
-rw-r--r--time/Makefile181
-rw-r--r--time/tzfile.c4
-rw-r--r--time/tzset.c6
-rw-r--r--timezone/Makefile196
-rw-r--r--timezone/README (renamed from time/README)0
-rw-r--r--timezone/africa (renamed from time/africa)0
-rw-r--r--timezone/antarctica (renamed from time/antarctica)0
-rw-r--r--timezone/asia (renamed from time/asia)0
-rw-r--r--timezone/australasia (renamed from time/australasia)0
-rw-r--r--timezone/backward (renamed from time/backward)0
-rw-r--r--timezone/checktab.awk (renamed from time/checktab.awk)0
-rw-r--r--timezone/etcetera (renamed from time/etcetera)0
-rw-r--r--timezone/europe (renamed from time/europe)0
-rw-r--r--timezone/factory (renamed from time/factory)0
-rw-r--r--timezone/ialloc.c (renamed from time/ialloc.c)0
-rw-r--r--timezone/iso3166.tab (renamed from time/iso3166.tab)0
-rw-r--r--timezone/leapseconds (renamed from time/leapseconds)0
-rw-r--r--timezone/northamerica (renamed from time/northamerica)0
-rw-r--r--timezone/pacificnew (renamed from time/pacificnew)0
-rw-r--r--timezone/private.h (renamed from time/private.h)0
-rw-r--r--timezone/scheck.c (renamed from time/scheck.c)0
-rw-r--r--timezone/solar87 (renamed from time/solar87)0
-rw-r--r--timezone/solar88 (renamed from time/solar88)0
-rw-r--r--timezone/solar89 (renamed from time/solar89)0
-rw-r--r--timezone/southamerica (renamed from time/southamerica)0
-rw-r--r--timezone/systemv (renamed from time/systemv)0
-rw-r--r--timezone/test-tz.c (renamed from time/test-tz.c)0
-rw-r--r--timezone/tzfile.h (renamed from time/tzfile.h)0
-rw-r--r--timezone/tzselect.ksh (renamed from time/tzselect.ksh)0
-rwxr-xr-xtimezone/yearistype (renamed from time/yearistype)0
-rw-r--r--timezone/zdump.c (renamed from time/zdump.c)0
-rw-r--r--timezone/zic.c (renamed from time/zic.c)0
-rw-r--r--timezone/zone.tab (renamed from time/zone.tab)0
-rw-r--r--wctype/wctype.h4
63 files changed, 1174 insertions, 1170 deletions
diff --git a/ChangeLog b/ChangeLog
index 719304cd7c..3c107169ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,86 @@
+1998-02-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nsswitch.c (__nss_lookup): Return 1 if this was the last
+ module.
+
+ * nss/getXXent_r.c: If no more module is found don't try to call
+ setXXent functions but leave unsuccessfully.
+
+ * malloc/obstack.h: Cleanups.
+
+ * sysdeps/wordsize-32/stdint.h: New file.
+ * sysdeps/wordsize-64/stdint.h: New file.
+ * sysdeps/generic/stdint.h: New file.
+ * sysdeps/wordsize-32/inttypes.h: Adopt to use stdint.h.
+ * sysdeps/wordsize-64/inttypes.h: Likewise.
+ * stdlib/Makefile (headers): Add stdint.h.
+
+1998-02-03 Paul Eggert <eggert@twinsun.com>
+
+ * malloc/obstack.h (PTR_INT_TYPE): Use __PTRDIFF_TYPE__ if available.
+
+1998-02-13 17:59 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * timezone: New directory.
+ * time/README, time/africa, time/antarctica, time/asia,
+ time/australasia, time/backward, time/checktab.awk,
+ time/etcetera, time/europe, time/factory, time/ialloc.c,
+ time/iso3166.tab, time/leapseconds, time/northamerica,
+ time/pacificnew, time/private.h, time/scheck.c,
+ time/solar87, time/solar88, time/solar89, time/southamerica,
+ time/systemv, time/test-tz.c, time/tzfile.h,
+ time/tzselect.ksh, time/yearistype, time/zdump.c,
+ time/zic.c, time/zone.tab: Moved to timezone.
+ * time/tzfile.c: Include tzfile.h from timezone subdir.
+ * time/tzset.c: Likewise.
+ * time/Makefile: Cut out all code relating to timezones...
+ * timezone/Makefile: ...and paste it in here.
+ * Makefile (subdirs): Add timezone.
+
+1998-02-13 18:45 H.J. Lu <hjl@gnu.org>
+
+ * libc.map (_sys_nerr): Added.
+
+ * sysdeps/unix/sysv/linux/errlist.c (_sys_nerr): Make it
+ versioned symbol.
+
+1998-02-15 17:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h: Define PF_KEY and
+ pseudo_AF_KEY instead of pseudo_PF_KEY and AF_KEY.
+ Reported by Craig Metz <cmetz@inner.net>.
+
+1998-01-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): Use __strcasecmp
+ instead of strcasecmp.
+ * nss/nss_files/files-alias.c (get_next_alias): Likewise.
+
+ * wctype/wctype.h (_ISwbit): Avoid warning with gcc before 2.8.
+
+1998-02-15 16:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * socket/sys/socket.h (setsockopt): Make OPTVAL parameter const.
+ Patch by Dean Gaudet <dgaudet@arctic.org>.
+
+1998-02-15 16:53 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/Dist: Add getresgid.c and getresuid.c.
+
+1998-02-15 10:49 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/unix/sysv/linux/poll.c: If compiled against a kernel
+ with no poll syscall, just include the BSD version.
+ * sysdeps/unix/sysv/linux/getresuid.c: If compiled against a
+ kernel without the syscall, include the stub version.
+ * sysdeps/unix/sysv/linux/getresgid.c: Likewise.
+ * sysdeps/generic/getresuid.c: New file.
+ * sysdeps/generic/getresgid.c: New file.
+
+1998-02-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfscanf.c: Correct last change a bit.
+
1998-02-13 17:39 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile: Don't use --version-script parameter to link ld.so
@@ -27,7 +110,6 @@
* stdlib/strfmon.c: char is unsigned, sometimes.
- *sysdeps/powerpc
* sysdeps/powerpc/Makefile: Remove quad float support.
* sysdeps/powerpc/q_*.c: Remove, they will become an add-on.
* sysdeps/powerpc/quad_float.h: Likewise.
diff --git a/Makefile b/Makefile
index 7efe32350b..5a3456ef61 100644
--- a/Makefile
+++ b/Makefile
@@ -64,7 +64,7 @@ subdirs = csu assert ctype db2 locale intl catgets math setjmp signal stdlib \
stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd \
posix io termios resource misc socket sysvipc gmon gnulib iconv \
iconvdata wctype manual shadow md5-crypt po argp $(add-ons) nss \
- localedata $(rt) $(sysdep-subdirs) $(binfmt-subdir)
+ localedata timezone $(rt) $(sysdep-subdirs) $(binfmt-subdir)
export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63.
# The mach and hurd subdirectories have many generated header files which
diff --git a/SNAP b/README-alpha
index d13b9f7191..d13b9f7191 100644
--- a/SNAP
+++ b/README-alpha
diff --git a/elf/Makefile b/elf/Makefile
index 5fe73e7171..093fc09369 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -87,6 +87,11 @@ $(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(common-objpfx)libc_pic.a
# Do we need a linker script?
rtld-ldscript-in := $(firstword $(wildcard $(+sysdep_dirs:%=%/rtld-ldscript.in)))
+
+ifeq ($(versioning),yes)
+RTLD-VERSIONS = -Wl,--version-script=$(libc-map)
+endif
+
ifneq (,$(rtld-ldscript-in))
LDFLAGS-rtld = -T $(objpfx)rtld-ldscript
@@ -103,8 +108,6 @@ $(objpfx)rtld-ldscript: $(rtld-ldscript-in) $(rtld-parms)
$(objpfx)ld.so: $(objpfx)librtld.os $(objpfx)rtld-ldscript
$(rtld-link) -Wl,-soname=$(rtld-installed-name)
-RTLD-VERSIONS=$(addprefix -Wl,--version-script=,$(libc-map))
-
define rtld-link
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
-Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \
diff --git a/libc.map b/libc.map
index 76154c9d90..c1d54478e6 100644
--- a/libc.map
+++ b/libc.map
@@ -5,7 +5,7 @@ GLIBC_2.0 {
__ctype_b; __ctype_tolower; __ctype_toupper;
_nl_msg_cat_cntr; __environ; _environ; _res;
___brk_addr; __curbrk; _nl_current_LC_CTYPE; _libc_intl_domainname;
- _sys_errlist; _sys_siglist; __progname; _nl_default_dirname;
+ _sys_errlist; _sys_nerr; _sys_siglist; __progname; _nl_default_dirname;
_nl_domain_bindings; __timezone; __daylight; __tzname;
_nl_current_LC_COLLATE; __collate_element_hash;
__collate_element_strings; __collate_symbol_classes;
@@ -465,7 +465,7 @@ GLIBC_2.1 {
wait4;
# New errlist.
- _sys_errlist; sys_errlist; sys_nerr;
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
# New special glibc functions.
gnu_get_libc_release; gnu_get_libc_version;
diff --git a/malloc/obstack.h b/malloc/obstack.h
index e7ae6959e5..edbcd264df 100644
--- a/malloc/obstack.h
+++ b/malloc/obstack.h
@@ -1,5 +1,5 @@
/* obstack.h - object stack macros
- Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
+ Copyright (C) 1988,89,90,91,92,93,94,96,97,98 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.
@@ -116,45 +116,39 @@ extern "C" {
may ignore the byte-within-word field of the pointer. */
#ifndef __PTR_TO_INT
-#define __PTR_TO_INT(P) ((P) - (char *) 0)
+# define __PTR_TO_INT(P) ((P) - (char *) 0)
#endif
#ifndef __INT_TO_PTR
-#define __INT_TO_PTR(P) ((P) + (char *) 0)
+# define __INT_TO_PTR(P) ((P) + (char *) 0)
#endif
-/* We need the type of the resulting object. In ANSI C it is ptrdiff_t
- but in traditional C it is usually long. If we are in ANSI C and
- don't already have ptrdiff_t get it. */
-
-#if defined (__STDC__) && __STDC__ && ! defined (offsetof)
-#if defined (__GNUC__) && defined (IN_GCC)
-/* On Next machine, the system's stddef.h screws up if included
- after we have defined just ptrdiff_t, so include all of stddef.h.
- Otherwise, define just ptrdiff_t, which is all we need. */
-#ifndef __NeXT__
-#define __need_ptrdiff_t
-#endif
-#endif
+/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
+ defined, as with GNU C, use that; that way we don't pollute the
+ namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
+ available, include it and use ptrdiff_t. In traditional C, long is
+ the best that we can do. */
-#include <stddef.h>
-#endif
-
-#if defined (__STDC__) && __STDC__
-#define PTR_INT_TYPE ptrdiff_t
+#ifdef __PTRDIFF_TYPE__
+# define PTR_INT_TYPE __PTRDIFF_TYPE__
#else
-#define PTR_INT_TYPE long
+# ifdef HAVE_STDDEF_H
+# include <stddef.h>
+# define PTR_INT_TYPE ptrdiff_t
+# else
+# define PTR_INT_TYPE long
+# endif
#endif
-#if defined (_LIBC) || defined (HAVE_STRING_H)
-#include <string.h>
-#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
-#else
-#ifdef memcpy
-#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
+#if defined _LIBC || defined HAVE_STRING_H
+# include <string.h>
+# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
#else
-#define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
-#endif
+# 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
struct _obstack_chunk /* Lives at front of each chunk. */
@@ -173,7 +167,7 @@ struct obstack /* control current object in current chunk */
char *chunk_limit; /* address of char after current chunk */
PTR_INT_TYPE temp; /* Temporary for some macros. */
int alignment_mask; /* Mask of alignment for each object. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
/* These prototypes vary based on `use_extra_arg', and we use
casts to the prototypeless function type in all assignments,
but having prototypes here quiets -Wstrict-prototypes. */
@@ -197,7 +191,7 @@ struct obstack /* control current object in current chunk */
/* Declare the external functions we use; they are in obstack.c. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
extern void _obstack_newchunk (struct obstack *, int);
extern void _obstack_free (struct obstack *, void *);
extern int _obstack_begin (struct obstack *, int, int,
@@ -214,7 +208,7 @@ extern int _obstack_begin_1 ();
extern int _obstack_memory_used ();
#endif
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
/* Do the function-declarations after the structs
but before defining the macros. */
@@ -262,7 +256,7 @@ int obstack_memory_used (struct obstack *obstack);
/* Error handler called when `obstack_chunk_alloc' failed to allocate
more memory. This can be set to a user defined function. The
default action is to print a message and abort. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
extern void (*obstack_alloc_failed_handler) (void);
#else
extern void (*obstack_alloc_failed_handler) ();
@@ -291,53 +285,53 @@ extern int obstack_exit_failure;
/* To prevent prototype warnings provide complete argument list in
standard C version. */
-#if defined (__STDC__) && __STDC__
+#if defined __STDC__ && __STDC__
-#define obstack_init(h) \
+# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-#define obstack_begin(h, size) \
+# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
+# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun))
-#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
+# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) (void *, long)) (chunkfun), \
(void (*) (void *, void *)) (freefun), (arg))
-#define obstack_chunkfun(h, newchunkfun) \
+# define obstack_chunkfun(h, newchunkfun) \
((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
-#define obstack_freefun(h, newfreefun) \
+# define obstack_freefun(h, newfreefun) \
((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
#else
-#define obstack_init(h) \
+# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
-#define obstack_begin(h, size) \
+# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
-#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
+# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), (void (*) ()) (freefun))
-#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
+# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), (void (*) ()) (freefun), (arg))
-#define obstack_chunkfun(h, newchunkfun) \
+# define obstack_chunkfun(h, newchunkfun) \
((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun))
-#define obstack_freefun(h, newfreefun) \
+# define obstack_freefun(h, newfreefun) \
((h) -> freefun = (void (*)()) (newfreefun))
#endif
@@ -348,30 +342,30 @@ extern int obstack_exit_failure;
#define obstack_memory_used(h) _obstack_memory_used (h)
-#if defined (__GNUC__) && defined (__STDC__) && __STDC__
+#if defined __GNUC__ && defined __STDC__ && __STDC__
/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
does not implement __extension__. But that compiler doesn't define
__GNUC_MINOR__. */
-#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-#define __extension__
-#endif
+# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
+# define __extension__
+# endif
/* For GNU C, if not -traditional,
we can define these macros to compute all args only once
without using a global variable.
Also, we can avoid using the `temp' slot, to make faster code. */
-#define obstack_object_size(OBSTACK) \
+# define obstack_object_size(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
(unsigned) (__o->next_free - __o->object_base); })
-#define obstack_room(OBSTACK) \
+# define obstack_room(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
(unsigned) (__o->chunk_limit - __o->next_free); })
-#define obstack_make_room(OBSTACK,length) \
+# define obstack_make_room(OBSTACK,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
@@ -379,12 +373,12 @@ __extension__ \
_obstack_newchunk (__o, __len); \
(void) 0; })
-#define obstack_empty_p(OBSTACK) \
+# define obstack_empty_p(OBSTACK) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
(__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
-#define obstack_grow(OBSTACK,where,length) \
+# define obstack_grow(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
@@ -394,7 +388,7 @@ __extension__ \
__o->next_free += __len; \
(void) 0; })
-#define obstack_grow0(OBSTACK,where,length) \
+# define obstack_grow0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
@@ -405,7 +399,7 @@ __extension__ \
*(__o->next_free)++ = 0; \
(void) 0; })
-#define obstack_1grow(OBSTACK,datum) \
+# define obstack_1grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + 1 > __o->chunk_limit) \
@@ -417,7 +411,7 @@ __extension__ \
and that the data added so far to the current object
shares that much alignment. */
-#define obstack_ptr_grow(OBSTACK,datum) \
+# define obstack_ptr_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
@@ -425,7 +419,7 @@ __extension__ \
*((void **)__o->next_free)++ = ((void *)datum); \
(void) 0; })
-#define obstack_int_grow(OBSTACK,datum) \
+# define obstack_int_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
@@ -433,10 +427,10 @@ __extension__ \
*((int *)__o->next_free)++ = ((int)datum); \
(void) 0; })
-#define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
+# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
-#define obstack_blank(OBSTACK,length) \
+# define obstack_blank(OBSTACK,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
@@ -445,19 +439,19 @@ __extension__ \
__o->next_free += __len; \
(void) 0; })
-#define obstack_alloc(OBSTACK,length) \
+# define obstack_alloc(OBSTACK,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_blank (__h, (length)); \
obstack_finish (__h); })
-#define obstack_copy(OBSTACK,where,length) \
+# define obstack_copy(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow (__h, (where), (length)); \
obstack_finish (__h); })
-#define obstack_copy0(OBSTACK,where,length) \
+# define obstack_copy0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow0 (__h, (where), (length)); \
@@ -465,7 +459,7 @@ __extension__ \
/* The local variable is named __o1 to avoid a name conflict
when obstack_blank is called. */
-#define obstack_finish(OBSTACK) \
+# define obstack_finish(OBSTACK) \
__extension__ \
({ struct obstack *__o1 = (OBSTACK); \
void *value; \
@@ -481,7 +475,7 @@ __extension__ \
__o1->object_base = __o1->next_free; \
value; })
-#define obstack_free(OBSTACK, OBJ) \
+# define obstack_free(OBSTACK, OBJ) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
void *__obj = (OBJ); \
@@ -491,13 +485,13 @@ __extension__ \
#else /* not __GNUC__ or not __STDC__ */
-#define obstack_object_size(h) \
+# define obstack_object_size(h) \
(unsigned) ((h)->next_free - (h)->object_base)
-#define obstack_room(h) \
+# define obstack_room(h) \
(unsigned) ((h)->chunk_limit - (h)->next_free)
-#define obstack_empty_p(h) \
+# define obstack_empty_p(h) \
((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
@@ -506,19 +500,19 @@ __extension__ \
Casting the third operand to void was tried before,
but some compilers won't accept it. */
-#define obstack_make_room(h,length) \
+# define obstack_make_room(h,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
-#define obstack_grow(h,where,length) \
+# define obstack_grow(h,where,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
_obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \
(h)->next_free += (h)->temp)
-#define obstack_grow0(h,where,length) \
+# 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), \
@@ -526,40 +520,40 @@ __extension__ \
(h)->next_free += (h)->temp, \
*((h)->next_free)++ = 0)
-#define obstack_1grow(h,datum) \
+# define obstack_1grow(h,datum) \
( (((h)->next_free + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), 1), 0) : 0), \
(*((h)->next_free)++ = (datum)))
-#define obstack_ptr_grow(h,datum) \
+# define obstack_ptr_grow(h,datum) \
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
(*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
-#define obstack_int_grow(h,datum) \
+# define obstack_int_grow(h,datum) \
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
(*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
-#define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
+# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
-#define obstack_blank(h,length) \
+# define obstack_blank(h,length) \
( (h)->temp = (length), \
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
((h)->next_free += (h)->temp))
-#define obstack_alloc(h,length) \
+# define obstack_alloc(h,length) \
(obstack_blank ((h), (length)), obstack_finish ((h)))
-#define obstack_copy(h,where,length) \
+# define obstack_copy(h,where,length) \
(obstack_grow ((h), (where), (length)), obstack_finish ((h)))
-#define obstack_copy0(h,where,length) \
+# define obstack_copy0(h,where,length) \
(obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
-#define obstack_finish(h) \
+# define obstack_finish(h) \
( ((h)->next_free == (h)->object_base \
? (((h)->maybe_empty_object = 1), 0) \
: 0), \
@@ -573,21 +567,21 @@ __extension__ \
(h)->object_base = (h)->next_free, \
__INT_TO_PTR ((h)->temp))
-#if defined (__STDC__) && __STDC__
-#define obstack_free(h,obj) \
+# if defined __STDC__ && __STDC__
+# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
-#else
-#define obstack_free(h,obj) \
+# else
+# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))
-#endif
+# endif
#endif /* not __GNUC__ or not __STDC__ */
diff --git a/math/test-reduce.c b/math/test-reduce.c
deleted file mode 100644
index 5149ead341..0000000000
--- a/math/test-reduce.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Geoffrey Keating <Geoff.Keating@anu.edu.au>, 1997.
-
- 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. */
-
-/* This is a generic program for comparing two precisions of a one-input
- mathematical function. It is amazingly good at detecting when GCC
- folds constants improperly. */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-#include <math.h>
-#include <ieee754.h>
-#include <fenv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-#define TSMALL float
-#define RSMALL(rfun) ({ unsigned rnum = (rfun); *(float *) &rnum; })
-#define TBIG double
-#define XDIFF (24)
-#define REDUCE(x) \
- ({ union ieee754_float u = { x }; u.ieee.exponent = 0x80; x = u.f; })
-#define ABS(x) fabs(x)
-
-#define string_0(x) #x
-#define string_1(x) string_0(x)
-#define TBIG_NAME string_1(TBIG)
-#define TSMALL_NAME string_1(TSMALL)
-
-#define R_NEAREST 1
-#define R_ZERO 2
-#define R_UP 4
-#define R_DOWN 8
-#define R_ALL (R_NEAREST|R_ZERO|R_UP|R_DOWN)
-static fenv_t rmodes[4];
-static const char * const rmnames[4] =
-{ "near","zero","+Inf","-Inf" };
-
-static int quiet = 0;
-
-#ifdef FE_ALL_INVALID
-static const int invalid_exceptions = (FE_ALL_INVALID
- | FE_INVALID | FE_DIVBYZERO);
-#else
-static const int invalid_exceptions = (FE_INVALID | FE_DIVBYZERO);
-#endif
-
-static int
-checkit (char *fname,
- TSMALL (*fsmall) (TSMALL), TBIG (*fbig) (TBIG),
- unsigned smalltries, unsigned largetries)
-{
- unsigned int i, nerrors = 0, nwarn;
-
- int tryone (TSMALL fval)
- {
- int rmode;
- int excepts, exceptsb;
- TSMALL fres;
- TBIG fvalb, fresb, diff;
- char warn;
-
- fvalb = (TBIG) fval;
-
- for (rmode = 0; rmode < 4; ++rmode)
- {
- fesetenv (rmodes + rmode);
- fres = fsmall (fval);
- excepts = fetestexcept (invalid_exceptions);
- fesetenv (rmodes + rmode);
- fresb = fbig (fvalb);
- exceptsb = fetestexcept (invalid_exceptions);
-
- if (excepts != exceptsb)
- {
- unsigned char *fvp = (unsigned char *) &fval;
- size_t j;
-
- printf ("%s(", fname);
- for (j = 0; j < sizeof (TSMALL); j++)
- printf ("%02x", fvp[j]);
- printf ("),%s: exceptions %s: %08x, %s: %08x\n",
- rmnames[rmode],
- TBIG_NAME, exceptsb, TSMALL_NAME, excepts);
- if (++nerrors > 10)
- return 1;
- }
-
- diff = ABS (fres - (TSMALL) fresb);
- if (fres == (TSMALL) fresb
- || isnan (fres) && isnan (fresb)
- || logb (fresb) - logb (diff) < XDIFF - 1)
- continue;
-
- if (logb (fresb) - logb (diff) < XDIFF)
- {
- if (++nwarn > 10 || quiet)
- continue;
- warn = 'w';
- }
- else
- {
- if (++nerrors > 10)
- return 1;
- warn = 'e';
- }
-
- {
- TSMALL fresbs = (TSMALL) fresb;
- unsigned char *fvp = (unsigned char *) &fval;
- unsigned char *frp = (unsigned char *) &fres;
- unsigned char *frpb = (unsigned char *) &fresb;
- unsigned char *frpbs = (unsigned char *) &fresbs;
- size_t j;
-
- printf ("%s(",fname);
- for (j = 0; j < sizeof (TSMALL); ++j)
- printf ("%02x", fvp[j]);
- printf ("),%s: %s ", rmnames[rmode], TBIG_NAME);
- for (j = 0; j < sizeof (TBIG); ++j)
- printf ("%02x", frpb[j]);
- printf (" (");
- for (j = 0; j < sizeof (TSMALL); ++j)
- printf ("%02x", frpbs[j]);
- printf ("), %s ", TSMALL_NAME);
- for (j = 0; j < sizeof (TSMALL); ++j)
- printf ("%02x", frp[j]);
- printf (" %c\n", warn);
- }
- }
- return 0;
- }
-
- nwarn = 0;
- for (i = 0; i < smalltries; i++)
- {
- TSMALL fval;
-
- fval = RSMALL (rand () ^ rand () << 16);
- REDUCE (fval);
- if (tryone (fval))
- break;
- }
-
- printf ("%s-small: %d errors, %d (%0.2f%%) inaccuracies\n",
- fname, nerrors, nwarn,
- nwarn * 0.25 / ((double) smalltries));
-
- nwarn = 0;
- for (i = 0; i < largetries; ++i)
- {
- TSMALL fval;
-
- fval = RSMALL (rand () ^ rand () << 16);
- if (tryone (fval))
- break;
- }
-
- printf ("%s-large: %d errors, %d (%0.2f%%) inaccuracies\n",
- fname, nerrors, nwarn,
- nwarn * 0.25 / ((double) largetries));
- return nerrors == 0;
-}
-
-int
-main (void)
-{
- int r;
-
- _LIB_VERSION = _IEEE_;
-
- /* Set up environments for rounding modes. */
- fesetenv (FE_DFL_ENV);
- fesetround (FE_TONEAREST);
- fegetenv (rmodes + 0);
- fesetround (FE_TOWARDSZERO);
- fegetenv (rmodes + 1);
- fesetround (FE_UPWARD);
- fegetenv (rmodes + 2);
- fesetround (FE_DOWNWARD);
- fegetenv (rmodes + 3);
-
- /* Seed the RNG. */
- srand (time (0));
-
- /* Do it. */
- r = checkit ("exp2", exp2f, exp2, 1 << 20, 1 << 15);
- r &= checkit ("exp", expf, exp, 1 << 20, 1 << 15);
- return r ? 0 : 1;
-}
diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c
index aa21b6fe7c..b709a4a935 100644
--- a/nss/getXXent_r.c
+++ b/nss/getXXent_r.c
@@ -279,7 +279,12 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
if (! no_more)
status = (*sfct) (STAYOPEN_TMPVAR);
else
- status = NSS_STATUS_NOTFOUND;
+ {
+ status = NSS_STATUS_NOTFOUND;
+ if (no_more == 1)
+ /* There is no more module to search. */
+ break;
+ }
}
while (! no_more && status != NSS_STATUS_SUCCESS);
}
diff --git a/nss/nss_files/files-alias.c b/nss/nss_files/files-alias.c
index 66f3d3ad42..2d6e15c1d8 100644
--- a/nss/nss_files/files-alias.c
+++ b/nss/nss_files/files-alias.c
@@ -201,7 +201,7 @@ get_next_alias (const char *match, struct aliasent *result,
lines until the next line containing the start of a new
alias is found. */
ignore = (match != NULL
- && strcasecmp (result->alias_name, match) != 0);
+ && __strcasecmp (result->alias_name, match) != 0);
while (! ignore)
{
diff --git a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c
index 198b359b4c..dd5fdff645 100644
--- a/nss/nss_files/files-parse.c
+++ b/nss/nss_files/files-parse.c
@@ -235,7 +235,7 @@ parse_list (char *line, struct parser_data *data, size_t datalen, int *errnop)
#define LOOKUP_NAME_CASE(nameelt, aliaselt) \
{ \
char **ap; \
- if (! strcasecmp (name, result->nameelt)) \
+ if (! __strcasecmp (name, result->nameelt)) \
break; \
for (ap = result->aliaselt; *ap; ++ap) \
if (! strcasecmp (name, *ap)) \
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
index 36c1d0035e..65da26b185 100644
--- a/nss/nsswitch.c
+++ b/nss/nsswitch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -136,7 +136,8 @@ __nss_database_lookup (const char *database, const char *alternate_name,
/* -1 == not found
- 0 == adjusted for next function */
+ 0 == adjusted for next function
+ 1 == finished */
int
__nss_lookup (service_user **ni, const char *fct_name, void **fctp)
{
@@ -151,7 +152,7 @@ __nss_lookup (service_user **ni, const char *fct_name, void **fctp)
*fctp = nss_lookup_function (*ni, fct_name);
}
- return *fctp != NULL ? 0 : -1;
+ return *fctp != NULL ? 0 : (*ni)->next == NULL ? 1 : -1;
}
diff --git a/socket/sys/socket.h b/socket/sys/socket.h
index 3d3f71385f..c3b75b382d 100644
--- a/socket/sys/socket.h
+++ b/socket/sys/socket.h
@@ -1,5 +1,5 @@
/* Declarations of socket constants, types, and functions.
- Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
+ Copyright (C) 1991, 92, 94, 95, 96, 97, 98 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
@@ -160,7 +160,7 @@ extern int getsockopt __P ((int __fd, int __level, int __optname,
to *OPTVAL (which is OPTLEN bytes long).
Returns 0 on success, -1 for errors. */
extern int setsockopt __P ((int __fd, int __level, int __optname,
- __ptr_t __optval, socklen_t __optlen));
+ __const __ptr_t __optval, socklen_t __optlen));
/* Prepare to accept connections on socket FD.
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index afb6f7c05a..0399e39ef5 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,98 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
@@ -16,7 +16,6 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#include "../locale/localeinfo.h"
#include <errno.h>
#include <limits.h>
#include <ctype.h>
@@ -26,12 +25,13 @@
#include <string.h>
#include <wctype.h>
#include <bits/libc-lock.h>
+#include <locale/localeinfo.h>
#ifdef __GNUC__
-#define HAVE_LONGLONG
-#define LONGLONG long long
+# define HAVE_LONGLONG
+# define LONGLONG long long
#else
-#define LONGLONG long
+# define LONGLONG long
#endif
/* Those are flags in the conversion format. */
@@ -459,10 +459,13 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
if (skip_space || (fc != '[' && fc != 'c' && fc != 'C' && fc != 'n'))
{
/* Eat whitespace. */
+ int save_errno = errno;
+ errno = 0;
do
- if (inchar () == EOF)
+ if (inchar () == EOF && errno == EINTR)
input_error ();
while (isspace (c));
+ errno = save_errno;
ungetc (c, s);
skip_space = 0;
}
@@ -470,9 +473,9 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
switch (fc)
{
case '%': /* Must match a literal '%'. */
+ c = inchar ();
if (c == EOF)
input_error ();
- c = inchar ();
if (c != fc)
{
ungetc (c, s);
@@ -518,7 +521,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
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,
+ We go for now with the historically correct code from 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;
@@ -536,8 +539,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
conv_error ();
}
- if (c != EOF)
- c = inchar ();
+ c = inchar ();
if (c == EOF)
input_error ();
@@ -575,9 +577,6 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
conv_error ();
}
- if (c == EOF)
- input_error ();
-
do
{
#define NEXT_WIDE_CHAR(First) \
@@ -675,8 +674,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
}
STRING_ARG (str, char);
- if (c != EOF)
- c = inchar ();
+ c = inchar ();
if (c == EOF)
input_error ();
@@ -742,9 +740,6 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
int first = 1;
STRING_ARG (wstr, wchar_t);
- if (c == EOF)
- input_error ();
-
do
{
size_t cnt = 0;
@@ -800,8 +795,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
number_signed = 1;
number:
- if (c != EOF)
- c = inchar ();
+ c = inchar ();
if (c == EOF)
input_error ();
@@ -922,8 +916,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
case 'G':
case 'a':
case 'A':
- if (c != EOF)
- c = inchar ();
+ c = inchar ();
if (c == EOF)
input_error ();
@@ -1032,13 +1025,13 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
if (flags & LONG)
{
STRING_ARG (wstr, wchar_t);
+ c = '\0'; /* This is to keep gcc quiet. */
}
else
{
STRING_ARG (str, char);
- if (c != EOF)
- c = inchar ();
+ c = inchar ();
if (c == EOF)
input_error ();
}
@@ -1096,9 +1089,6 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
wint_t val;
int first = 1;
- if (c == EOF)
- input_error ();
-
do
{
size_t cnt = 0;
@@ -1168,7 +1158,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
}
}
- /* The last thing we saw in the format string was a white space.
+ /* The last thing we saw int the format string was a white space.
Consume the last white spaces. */
if (skip_space)
{
diff --git a/stdlib/Makefile b/stdlib/Makefile
index cd33f1f90f..6db064d543 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -22,7 +22,7 @@
subdir := stdlib
headers := stdlib.h alloca.h monetary.h fmtmsg.h ucontext.h sys/ucontext.h \
- inttypes.h
+ inttypes.h stdint.h
routines := \
atof atoi atol atoll \
diff --git a/sysdeps/generic/Dist b/sysdeps/generic/Dist
index bc9e492e4f..e088372b07 100644
--- a/sysdeps/generic/Dist
+++ b/sysdeps/generic/Dist
@@ -1,3 +1,5 @@
make_siglist.c signame.c signame.h
det_endian.c
entry.h
+getresgid.c
+getresuid.c
diff --git a/sysdeps/generic/getresgid.c b/sysdeps/generic/getresgid.c
new file mode 100644
index 0000000000..9381e077f5
--- /dev/null
+++ b/sysdeps/generic/getresgid.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; yog can redistribgte it and/or
+ modify it gnder the terms of the GNU Library General Pgblic License as
+ pgblished by the Free Software Fogndation; either version 2 of the
+ License, or (at yogr option) any later version.
+
+ The GNU C Library is distribgted in the hope that it will be gsefgl,
+ bgt WITHOUT ANY WARRANTY; withogt even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Pgblic License for more details.
+
+ Yog shogld have received a copy of the GNU Library General Pgblic
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Fogndation, Inc., 59 Temple Place - Sgite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <errno.h>
+#include <unistd.h>
+
+int
+__getresgid (egid, rgid, sgid)
+ gid_t egid;
+ gid_t rgid;
+ gid_t sgid;
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+stub_warning (getresgid)
+
+weak_alias (__getresgid, getresgid)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/getresuid.c b/sysdeps/generic/getresuid.c
new file mode 100644
index 0000000000..44083e8de3
--- /dev/null
+++ b/sysdeps/generic/getresuid.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1991, 1995, 1996, 1997, 1998 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 <unistd.h>
+
+int
+__getresuid (euid, ruid, suid)
+ uid_t euid;
+ uid_t ruid;
+ uid_t suid;
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+stub_warning (getresuid)
+
+weak_alias (__getresuid, getresuid)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/s_exp2.c b/sysdeps/generic/s_exp2.c
deleted file mode 100644
index 4e25d38130..0000000000
--- a/sysdeps/generic/s_exp2.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <math.h>
-#include <stdio.h>
-#include <errno.h>
-
-double
-__exp2 (double x)
-{
- fputs ("__exp2 not implemented\n", stderr);
- __set_errno (ENOSYS);
- return 0.0;
-}
-weak_alias (__exp2, exp2)
-
-stub_warning (exp2)
-#include <stub-tag.h>
diff --git a/sysdeps/generic/s_exp2f.c b/sysdeps/generic/s_exp2f.c
deleted file mode 100644
index 7928a4ce3d..0000000000
--- a/sysdeps/generic/s_exp2f.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <math.h>
-#include <stdio.h>
-#include <errno.h>
-
-float
-__exp2f (float x)
-{
- fputs ("__exp2f not implemented\n", stderr);
- __set_errno (ENOSYS);
- return 0.0;
-}
-weak_alias (__exp2f, exp2f)
-
-stub_warning (exp2f)
-#include <stub-tag.h>
diff --git a/sysdeps/generic/stdint.h b/sysdeps/generic/stdint.h
new file mode 100644
index 0000000000..9ef0e8526a
--- /dev/null
+++ b/sysdeps/generic/stdint.h
@@ -0,0 +1 @@
+#error "This file must be written based on the data type sizes of the target"
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index 34c2be4271..0476c15c00 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -1,5 +1,5 @@
/* System-specific socket constants and types. Linux version.
- Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
+ Copyright (C) 1991, 92, 94, 95, 96, 97, 98 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
@@ -70,7 +70,7 @@ enum __socket_type
#define PF_DECnet 12 /* Reserved for DECnet project */
#define PF_NETBEUI 13 /* Reserved for 802.2LLC project*/
#define PF_SECURITY 14 /* Security callback pseudo AF */
-#define pseudo_PF_KEY 15 /* PF_KEY key management API */
+#define PF_KEY 15 /* PF_KEY key management API */
#define PF_NETLINK 16
#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD */
#define PF_PACKET 17 /* Packet family */
@@ -94,7 +94,7 @@ enum __socket_type
#define AF_DECnet PF_DECnet
#define AF_NETBEUI PF_NETBEUI
#define AF_SECURITY PF_SECURITY
-#define AF_KEY pseudo_PF_KEY
+#define pseudo_AF_KEY PF_KEY
#define AF_NETLINK PF_NETLINK
#define AF_ROUTE PF_ROUTE
#define AF_PACKET PF_PACKET
diff --git a/sysdeps/unix/sysv/linux/errlist.c b/sysdeps/unix/sysv/linux/errlist.c
index 7349d67c62..af28a45954 100644
--- a/sysdeps/unix/sysv/linux/errlist.c
+++ b/sysdeps/unix/sysv/linux/errlist.c
@@ -45,11 +45,7 @@ symbol_version (__old_sys_errlist, _sys_errlist, GLIBC_2.0);
symbol_version (_old_sys_errlist, sys_errlist, GLIBC_2.0);
strong_alias (__new_sys_nerr, _new_sys_nerr)
-#if 0
default_symbol_version (__new_sys_nerr, _sys_nerr, GLIBC_2.1);
-#else
-strong_alias (__new_sys_nerr, _sys_nerr);
-#endif
default_symbol_version (_new_sys_nerr, sys_nerr, GLIBC_2.1);
strong_alias (__new_sys_errlist, _new_sys_errlist)
default_symbol_version (__new_sys_errlist, _sys_errlist, GLIBC_2.1);
diff --git a/sysdeps/unix/sysv/linux/getresgid.c b/sysdeps/unix/sysv/linux/getresgid.c
index 2fe461a787..4c326d5ba9 100644
--- a/sysdeps/unix/sysv/linux/getresgid.c
+++ b/sysdeps/unix/sysv/linux/getresgid.c
@@ -21,6 +21,9 @@
#include <linux/posix_types.h>
+#include <sys/syscall.h>
+#ifdef __NR_getresgid
+
extern int __syscall_getresgid (__kernel_gid_t *rgid, __kernel_gid_t *egid,
__kernel_gid_t *sgid);
@@ -37,3 +40,6 @@ getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)
*sgid = (gid_t) k_sgid;
return 0;
}
+#else
+# include <sysdeps/generic/getresgid.c>
+#endif
diff --git a/sysdeps/unix/sysv/linux/getresuid.c b/sysdeps/unix/sysv/linux/getresuid.c
index 89b8fa7cfe..6b6bc37290 100644
--- a/sysdeps/unix/sysv/linux/getresuid.c
+++ b/sysdeps/unix/sysv/linux/getresuid.c
@@ -21,6 +21,9 @@
#include <linux/posix_types.h>
+#include <sys/syscall.h>
+#ifdef __NR_getresuid
+
extern int __syscall_getresuid (__kernel_uid_t *ruid, __kernel_uid_t *euid,
__kernel_uid_t *suid);
@@ -37,3 +40,6 @@ getresuid (uid_t *ruid, uid_t *euid, uid_t *suid)
*suid = (uid_t) k_suid;
return 0;
}
+#else
+# include <sysdeps/generic/getresuid.c>
+#endif
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c
index f6e71b79b6..e37df4cb9e 100644
--- a/sysdeps/unix/sysv/linux/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -1,5 +1,5 @@
/* Poll system call, with emulation if it is not available.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998 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
@@ -20,6 +20,9 @@
#include <errno.h>
#include <sys/poll.h>
+#include <sys/syscall.h>
+#ifdef __NR_poll
+
extern int __syscall_poll __P ((struct pollfd *fds, unsigned int nfds,
int timeout));
weak_extern (__syscall_poll)
@@ -58,6 +61,7 @@ poll (fds, nfds, timeout)
/* Get the emulation code. */
-#define poll(fds, nfds, timeout) \
+# define poll(fds, nfds, timeout) \
static internal_function __emulate_poll (fds, nfds, timeout)
+#endif
#include <sysdeps/unix/bsd/poll.c>
diff --git a/sysdeps/wordsize-32/inttypes.h b/sysdeps/wordsize-32/inttypes.h
index 9200b8c2b8..188f4def4a 100644
--- a/sysdeps/wordsize-32/inttypes.h
+++ b/sysdeps/wordsize-32/inttypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 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
@@ -17,369 +17,176 @@
Boston, MA 02111-1307, USA. */
/*
- * ISO C 9X: 7.4 Integral types <inttypes.h>
+ * ISO C 9X: 7.5 Format conversion of integer types <inttypes.h>
*/
#ifndef _INTTYPES_H
-
#define _INTTYPES_H 1
-#include <features.h>
-
-#define __need_wchar_t
-#include <stddef.h>
-
-/* Exact integral types. */
-
-/* Signed. */
-
-/* There is some amount of overlap with <sys/types.h> as known by inet code */
-#ifndef __int8_t_defined
-# define __int8_t_defined
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long long int int64_t;
-#endif
-
-/* Unsigned. */
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long int uint64_t;
-
-
-/* Largest integral types. */
-typedef long long int intmax_t;
-typedef unsigned long long int uintmax_t;
-
-
-/* Types for `void *' pointers. */
-typedef int intptr_t;
-typedef unsigned int uintptr_t;
-
-
-/* Efficient types. */
-typedef int intfast_t;
-typedef unsigned int uintfast_t;
-
-
-/* Small types. */
-
-/* Signed. */
-typedef signed char int_least8_t;
-typedef short int int_least16_t;
-typedef int int_least32_t;
-typedef long long int int_least64_t;
-
-/* Unsigned. */
-typedef unsigned char uint_least8_t;
-typedef unsigned short int uint_least16_t;
-typedef unsigned int uint_least32_t;
-typedef unsigned long long int uint_least64_t;
-
-
-/* Fast types. */
-
-/* Signed. */
-typedef signed char int_fast8_t;
-typedef int int_fast16_t;
-typedef int int_fast32_t;
-typedef long long int int_fast64_t;
-
-/* Unsigned. */
-typedef unsigned char uint_fast8_t;
-typedef unsigned int uint_fast16_t;
-typedef unsigned int uint_fast32_t;
-typedef unsigned long long int uint_fast64_t;
-
-
-/* Limits of integral types. */
-
-/* Minimum of signed integral types. */
-#define INT8_MIN (-128)
-#define INT16_MIN (-32767-1)
-#define INT32_MIN (-2147483647-1)
-#define INT64_MIN (-9223372036854775807LL-1)
-/* Maximum of signed integral types. */
-#define INT8_MAX (127)
-#define INT16_MAX (32767)
-#define INT32_MAX (2147483647)
-#define INT64_MAX (9223372036854775807LL)
-
-/* Maximum of unsigned integral types. */
-#define UINT8_MAX (255U)
-#define UINT16_MAX (65535U)
-#define UINT32_MAX (4294967295U)
-#define UINT64_MAX (18446744073709551615uLL)
-
-
-/* Minimum of signed integral types having a minimum size. */
-#define INT_LEAST8_MIN (-128)
-#define INT_LEAST16_MIN (-32767-1)
-#define INT_LEAST32_MIN (-2147483647-1)
-#define INT_LEAST64_MIN (-9223372036854775807LL-1)
-/* Maximum of signed integral types having a minimum size. */
-#define INT_LEAST8_MAX (127)
-#define INT_LEAST16_MAX (32767)
-#define INT_LEAST32_MAX (2147483647)
-#define INT_LEAST64_MAX (9223372036854775807LL)
-/* Maximum of unsigned integral types having a minimum size. */
-#define UINT_LEAST8_MAX (255U)
-#define UINT_LEAST16_MAX (65535U)
-#define UINT_LEAST32_MAX (4294967295U)
-#define UINT_LEAST64_MAX (18446744073709551615uLL)
-
-
-/* Minimum of fast signed integral types having a minimum size. */
-#define INT_FAST8_MIN (-128)
-#define INT_FAST16_MIN (-2147483647-1)
-#define INT_FAST32_MIN (-2147483647-1)
-#define INT_FAST64_MIN (-9223372036854775807LL-1)
-/* Maximum of fast signed integral types having a minimum size. */
-#define INT_FAST8_MAX (127)
-#define INT_FAST16_MAX (2147483647)
-#define INT_FAST32_MAX (2147483647)
-#define INT_FAST64_MAX (9223372036854775807LL)
-
-/* Maximum of fast unsigned integral types having a minimum size. */
-#define UINT_FAST8_MAX (255U)
-#define UINT_FAST16_MAX (4294967295U)
-#define UINT_FAST32_MAX (4294967295U)
-#define UINT_FAST64_MAX (18446744073709551615uLL)
-
-
-/* Minimum for most efficient signed integral types. */
-#define INTFAST_MIN (-2147483647-1)
-/* Maximum for most efficient signed integral types. */
-#define INTFAST_MAX (2147483647)
-
-/* Maximum for most efficient unsigned integral types. */
-#define UINTFAST_MAX (4294967295U)
-
-
-/* Minimum for largest signed integral type. */
-#define INTMAX_MIN (-9223372036854775807LL-1)
-/* Maximum for largest signed integral type. */
-#define INTMAX_MAX (9223372036854775807LL)
-
-/* Maximum for largest unsigned integral type. */
-#define UINTMAX_MAX (18446744073709551615uLL)
-
-
-/* Values to test for integral types holding `void *' pointer. */
-#define INTPTR_MAX (2147483647)
-#define UINTPTR_MAX (4294967295U)
+#include <features.h>
+/* Get the type definitions. */
+#include <stdint.h>
-/* Signed. */
-#define INT8_C(c) ((int8_t) c)
-#define INT16_C(c) ((int16_t) c)
-#define INT32_C(c) ((int32_t) c)
-#define INT64_C(c) ((int64_t) __CONCAT (c,ll))
-
-/* Unsigned. */
-#define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
-#define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
-#define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
-#define UINT64_C(c) ((uint64_t) __CONCAT (c,ull))
-
-/* Maximal type. */
-#define INTMAX_C(c) ((intmax_t) __CONCAT (c,ll))
-#define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ull))
-
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_FORMAT_MACROS
/* Macros for printing format specifiers. */
/* Decimal notation. */
-#define PRId8 "d"
-#define PRId16 "d"
-#define PRId32 "d"
-#define PRId64 "lld"
+# define PRId8 "d"
+# define PRId16 "d"
+# define PRId32 "d"
+# define PRId64 "lld"
-#define PRIdLEAST8 "d"
-#define PRIdLEAST16 "d"
-#define PRIdLEAST32 "d"
-#define PRIdLEAST64 "lld"
+# define PRIdLEAST8 "d"
+# define PRIdLEAST16 "d"
+# define PRIdLEAST32 "d"
+# define PRIdLEAST64 "lld"
-#define PRIdFAST8 "d"
-#define PRIdFAST16 "d"
-#define PRIdFAST32 "d"
-#define PRIdFAST64 "lld"
+# define PRIdFAST8 "d"
+# define PRIdFAST16 "d"
+# define PRIdFAST32 "d"
+# define PRIdFAST64 "lld"
-#define PRIi8 "i"
-#define PRIi16 "i"
-#define PRIi32 "i"
-#define PRIi64 "lli"
+# define PRIi8 "i"
+# define PRIi16 "i"
+# define PRIi32 "i"
+# define PRIi64 "lli"
-#define PRIiLEAST8 "i"
-#define PRIiLEAST16 "i"
-#define PRIiLEAST32 "i"
-#define PRIiLEAST64 "lli"
+# define PRIiLEAST8 "i"
+# define PRIiLEAST16 "i"
+# define PRIiLEAST32 "i"
+# define PRIiLEAST64 "lli"
-#define PRIiFAST8 "i"
-#define PRIiFAST16 "i"
-#define PRIiFAST32 "i"
-#define PRIiFAST64 "lli"
+# define PRIiFAST8 "i"
+# define PRIiFAST16 "i"
+# define PRIiFAST32 "i"
+# define PRIiFAST64 "lli"
/* Octal notation. */
-#define PRIo8 "o"
-#define PRIo16 "o"
-#define PRIo32 "o"
-#define PRIo64 "llo"
+# define PRIo8 "o"
+# define PRIo16 "o"
+# define PRIo32 "o"
+# define PRIo64 "llo"
-#define PRIoLEAST8 "o"
-#define PRIoLEAST16 "o"
-#define PRIoLEAST32 "o"
-#define PRIoLEAST64 "llo"
+# define PRIoLEAST8 "o"
+# define PRIoLEAST16 "o"
+# define PRIoLEAST32 "o"
+# define PRIoLEAST64 "llo"
-#define PRIoFAST8 "o"
-#define PRIoFAST16 "o"
-#define PRIoFAST32 "o"
-#define PRIoFAST64 "llo"
+# define PRIoFAST8 "o"
+# define PRIoFAST16 "o"
+# define PRIoFAST32 "o"
+# define PRIoFAST64 "llo"
/* lowercase hexadecimal notation. */
-#define PRIx8 "x"
-#define PRIx16 "x"
-#define PRIx32 "x"
-#define PRIx64 "llx"
+# define PRIx8 "x"
+# define PRIx16 "x"
+# define PRIx32 "x"
+# define PRIx64 "llx"
-#define PRIxLEAST8 "x"
-#define PRIxLEAST16 "x"
-#define PRIxLEAST32 "x"
-#define PRIxLEAST64 "llx"
+# define PRIxLEAST8 "x"
+# define PRIxLEAST16 "x"
+# define PRIxLEAST32 "x"
+# define PRIxLEAST64 "llx"
-#define PRIxFAST8 "x"
-#define PRIxFAST16 "x"
-#define PRIxFAST32 "x"
-#define PRIxFAST64 "llx"
+# define PRIxFAST8 "x"
+# define PRIxFAST16 "x"
+# define PRIxFAST32 "x"
+# define PRIxFAST64 "llx"
/* UPPERCASE hexadecimal notation. */
-#define PRIX8 "X"
-#define PRIX16 "X"
-#define PRIX32 "X"
-#define PRIX64 "llX"
+# define PRIX8 "X"
+# define PRIX16 "X"
+# define PRIX32 "X"
+# define PRIX64 "llX"
-#define PRIXLEAST8 "X"
-#define PRIXLEAST16 "X"
-#define PRIXLEAST32 "X"
-#define PRIXLEAST64 "llX"
+# define PRIXLEAST8 "X"
+# define PRIXLEAST16 "X"
+# define PRIXLEAST32 "X"
+# define PRIXLEAST64 "llX"
-#define PRIXFAST8 "X"
-#define PRIXFAST16 "X"
-#define PRIXFAST32 "X"
-#define PRIXFAST64 "llX"
+# define PRIXFAST8 "X"
+# define PRIXFAST16 "X"
+# define PRIXFAST32 "X"
+# define PRIXFAST64 "llX"
/* Unsigned integers. */
-#define PRIu8 "u"
-#define PRIu16 "u"
-#define PRIu32 "u"
-#define PRIu64 "llu"
+# define PRIu8 "u"
+# define PRIu16 "u"
+# define PRIu32 "u"
+# define PRIu64 "llu"
-#define PRIuLEAST8 "u"
-#define PRIuLEAST16 "u"
-#define PRIuLEAST32 "u"
-#define PRIuLEAST64 "llu"
+# define PRIuLEAST8 "u"
+# define PRIuLEAST16 "u"
+# define PRIuLEAST32 "u"
+# define PRIuLEAST64 "llu"
-#define PRIuFAST8 "u"
-#define PRIuFAST16 "u"
-#define PRIuFAST32 "u"
-#define PRIuFAST64 "llu"
+# define PRIuFAST8 "u"
+# define PRIuFAST16 "u"
+# define PRIuFAST32 "u"
+# define PRIuFAST64 "llu"
/* Macros for printing `intmax_t' and `uintmax_t'. */
-#define PRIdMAX "lld"
-#define PRIoMAX "llo"
-#define PRIxMAX "llx"
-#define PRIuMAX "llu"
-
-
-/* Macros for printing `intfast_t' and `uintfast_t'. */
-#define PRIdFAST "d"
-#define PRIoFAST "o"
-#define PRIxFAST "x"
-#define PRIuFAST "u"
+# define PRIdMAX "lld"
+# define PRIoMAX "llo"
+# define PRIxMAX "llx"
+# define PRIuMAX "llu"
/* Macros for printing `intptr_t' and `uintptr_t'. */
-#define PRIdPTR "d"
-#define PRIoPTR "o"
-#define PRIxPTR "x"
-#define PRIuPTR "u"
+# define PRIdPTR "d"
+# define PRIoPTR "o"
+# define PRIxPTR "x"
+# define PRIuPTR "u"
-/* Macros for printing format specifiers. */
+/* Macros for scanning format specifiers. */
/* Decimal notation. */
-#define SCNd8 "hhd"
-#define SCNd16 "hd"
-#define SCNd32 "d"
-#define SCNd64 "lld"
+# define SCNd8 "hhd"
+# define SCNd16 "hd"
+# define SCNd32 "d"
+# define SCNd64 "lld"
-#define SCNi8 "hhi"
-#define SCNi16 "hi"
-#define SCNi32 "i"
-#define SCNi64 "lli"
+# define SCNi8 "hhi"
+# define SCNi16 "hi"
+# define SCNi32 "i"
+# define SCNi64 "lli"
-#define SCNu8 "hhu"
-#define SCNu16 "hu"
-#define SCNu32 "u"
-#define SCNu64 "llu"
+# define SCNu8 "hhu"
+# define SCNu16 "hu"
+# define SCNu32 "u"
+# define SCNu64 "llu"
/* Octal notation. */
-#define SCNo8 "hho"
-#define SCNo16 "ho"
-#define SCNo32 "o"
-#define SCNo64 "llo"
+# define SCNo8 "hho"
+# define SCNo16 "ho"
+# define SCNo32 "o"
+# define SCNo64 "llo"
/* Hexadecimal notation. */
-#define SCNx8 "hhx"
-#define SCNx16 "hx"
-#define SCNx32 "x"
-#define SCNx64 "llx"
-
+# define SCNx8 "hhx"
+# define SCNx16 "hx"
+# define SCNx32 "x"
+# define SCNx64 "llx"
-/* Macros for scaning `intfast_t' and `uintfast_t'. */
-#define SCNdFAST "d"
-#define SCNiFAST "i"
-#define SCNoFAST "o"
-#define SCNxFAST "x"
/* Macros for scaning `intptr_t' and `uintptr_t'. */
-#define SCNdPTR "d"
-#define SCNiPTR "i"
-#define SCNoPTR "o"
-#define SCNxPTR "x"
-
-
-/* Limits of other integer types. */
+# define SCNdPTR "d"
+# define SCNiPTR "i"
+# define SCNoPTR "o"
+# define SCNxPTR "x"
-/* Limits of `ptrdiff_t' type. */
-#define PTRDIFF_MIN (-2147483647-1)
-#define PTRDIFF_MAX (2147483647)
+#endif /* C++ && format macros */
-/* Limits of `sig_atomic_t'. */
-#define SIG_ATOMIC_MIN (-2147483647-1)
-#define SIG_ATOMIC_MAX (2147483647)
-/* Limit of `size_t' type. */
-#define SIZE_MAX (4294967295U)
-
-/* Limits of `wchar_t'. */
-#ifndef WCHAR_MIN
-/* These constants might also be defined in <wchar.h>. */
-# define WCHAR_MIN (-2147483647-1)
-# define WCHAR_MAX (2147483647)
-#endif
-
-/* Limits of `wint_t'. */
-#define WINT_MIN (0)
-#define WINT_MAX (4294967295U)
-
-
-/* Macros for string conversion. */
+__BEGIN_DECLS
/* Like `strtol' but convert to `intmax_t'. */
extern intmax_t strtoimax __P ((__const char *__restrict __nptr,
@@ -462,4 +269,6 @@ wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
}
#endif /* GCC and Optimization. */
+__END_DECLS
+
#endif /* inttypes.h */
diff --git a/sysdeps/wordsize-32/stdint.h b/sysdeps/wordsize-32/stdint.h
new file mode 100644
index 0000000000..c3a9e3027d
--- /dev/null
+++ b/sysdeps/wordsize-32/stdint.h
@@ -0,0 +1,214 @@
+/* Copyright (C) 1997, 1998 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. */
+
+/*
+ * ISO C 9X: 7.4 Integer types <stdint.h>
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H 1
+
+#include <features.h>
+#define __need_wchar_t
+#include <stddef.h>
+
+/* Exact integral types. */
+
+/* Signed. */
+
+/* There is some amount of overlap with <sys/types.h> as known by inet code */
+#ifndef __int8_t_defined
+# define __int8_t_defined
+typedef signed char int8_t;
+typedef short int int16_t;
+typedef int int32_t;
+typedef long long int int64_t;
+#endif
+
+/* Unsigned. */
+typedef unsigned char uint8_t;
+typedef unsigned short int uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long long int uint64_t;
+
+
+/* Small types. */
+
+/* Signed. */
+typedef signed char int_least8_t;
+typedef short int int_least16_t;
+typedef int int_least32_t;
+typedef long long int int_least64_t;
+
+/* Unsigned. */
+typedef unsigned char uint_least8_t;
+typedef unsigned short int uint_least16_t;
+typedef unsigned int uint_least32_t;
+typedef unsigned long long int uint_least64_t;
+
+
+/* Fast types. */
+
+/* Signed. */
+typedef signed char int_fast8_t;
+typedef int int_fast16_t;
+typedef int int_fast32_t;
+typedef long long int int_fast64_t;
+
+/* Unsigned. */
+typedef unsigned char uint_fast8_t;
+typedef unsigned int uint_fast16_t;
+typedef unsigned int uint_fast32_t;
+typedef unsigned long long int uint_fast64_t;
+
+
+/* Types for `void *' pointers. */
+typedef int intptr_t;
+typedef unsigned int uintptr_t;
+
+
+/* Largest integral types. */
+typedef long long int intmax_t;
+typedef unsigned long long int uintmax_t;
+
+
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
+
+/* Limits of integral types. */
+
+/* Minimum of signed integral types. */
+# define INT8_MIN (-128)
+# define INT16_MIN (-32767-1)
+# define INT32_MIN (-2147483647-1)
+# define INT64_MIN (-9223372036854775807LL-1)
+/* Maximum of signed integral types. */
+# define INT8_MAX (127)
+# define INT16_MAX (32767)
+# define INT32_MAX (2147483647)
+# define INT64_MAX (9223372036854775807LL)
+
+/* Maximum of unsigned integral types. */
+# define UINT8_MAX (255U)
+# define UINT16_MAX (65535U)
+# define UINT32_MAX (4294967295U)
+# define UINT64_MAX (18446744073709551615uLL)
+
+
+/* Minimum of signed integral types having a minimum size. */
+# define INT_LEAST8_MIN (-128)
+# define INT_LEAST16_MIN (-32767-1)
+# define INT_LEAST32_MIN (-2147483647-1)
+# define INT_LEAST64_MIN (-9223372036854775807LL-1)
+/* Maximum of signed integral types having a minimum size. */
+# define INT_LEAST8_MAX (127)
+# define INT_LEAST16_MAX (32767)
+# define INT_LEAST32_MAX (2147483647)
+# define INT_LEAST64_MAX (9223372036854775807LL)
+
+/* Maximum of unsigned integral types having a minimum size. */
+# define UINT_LEAST8_MAX (255U)
+# define UINT_LEAST16_MAX (65535U)
+# define UINT_LEAST32_MAX (4294967295U)
+# define UINT_LEAST64_MAX (18446744073709551615uLL)
+
+
+/* Minimum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MIN (-128)
+# define INT_FAST16_MIN (-2147483647-1)
+# define INT_FAST32_MIN (-2147483647-1)
+# define INT_FAST64_MIN (-9223372036854775807LL-1)
+/* Maximum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MAX (127)
+# define INT_FAST16_MAX (2147483647)
+# define INT_FAST32_MAX (2147483647)
+# define INT_FAST64_MAX (9223372036854775807LL)
+
+/* Maximum of fast unsigned integral types having a minimum size. */
+# define UINT_FAST8_MAX (255U)
+# define UINT_FAST16_MAX (4294967295U)
+# define UINT_FAST32_MAX (4294967295U)
+# define UINT_FAST64_MAX (18446744073709551615uLL)
+
+
+/* Values to test for integral types holding `void *' pointer. */
+# define INTPTR_MIN (-2147483647-1)
+# define INTPTR_MAX (2147483647)
+# define UINTPTR_MAX (4294967295U)
+
+
+/* Minimum for largest signed integral type. */
+# define INTMAX_MIN (-9223372036854775807LL-1)
+/* Maximum for largest signed integral type. */
+# define INTMAX_MAX (9223372036854775807LL)
+
+/* Maximum for largest unsigned integral type. */
+# define UINTMAX_MAX (18446744073709551615uLL)
+
+
+/* Limits of other integer types. */
+
+/* Limits of `ptrdiff_t' type. */
+# define PTRDIFF_MIN (-2147483647-1)
+# define PTRDIFF_MAX (2147483647)
+
+/* Limits of `sig_atomic_t'. */
+# define SIG_ATOMIC_MIN (-2147483647-1)
+# define SIG_ATOMIC_MAX (2147483647)
+
+/* Limit of `size_t' type. */
+# define SIZE_MAX (4294967295U)
+
+/* Limits of `wchar_t'. */
+# ifndef WCHAR_MIN
+/* These constants might also be defined in <wchar.h>. */
+# define WCHAR_MIN (-2147483647-1)
+# define WCHAR_MAX (2147483647)
+# endif
+
+/* Limits of `wint_t'. */
+# define WINT_MIN (0)
+# define WINT_MAX (4294967295U)
+
+#endif /* C++ && limit macros */
+
+
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* Signed. */
+# define INT8_C(c) ((int8_t) c)
+# define INT16_C(c) ((int16_t) c)
+# define INT32_C(c) ((int32_t) c)
+# define INT64_C(c) ((int64_t) __CONCAT (c,ll))
+
+/* Unsigned. */
+# define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
+# define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
+# define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
+# define UINT64_C(c) ((uint64_t) __CONCAT (c,ull))
+
+/* Maximal type. */
+# define INTMAX_C(c) ((intmax_t) __CONCAT (c,ll))
+# define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ull))
+
+#endif /* C++ && constant macros */
+
+#endif /* stdint.h */
diff --git a/sysdeps/wordsize-64/inttypes.h b/sysdeps/wordsize-64/inttypes.h
index 8ec8095620..5e497dbfae 100644
--- a/sysdeps/wordsize-64/inttypes.h
+++ b/sysdeps/wordsize-64/inttypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 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
@@ -21,365 +21,178 @@
*/
#ifndef _INTTYPES_H
-
#define _INTTYPES_H 1
-#include <features.h>
-
-#define __need_wchar_t
-#include <stddef.h>
-
-/* Exact integral types. */
-
-/* Signed. */
-
-/* There is some amount of overlap with <sys/types.h> as known by inet code */
-#ifndef __int8_t_defined
-# define __int8_t_defined
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long int int64_t;
-#endif
-
-/* Unsigned. */
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long int uint64_t;
-
-
-/* Largest integral types. */
-typedef long int intmax_t;
-typedef unsigned long int uintmax_t;
-
-
-/* Types for `void *' pointers. */
-typedef long int intptr_t;
-typedef unsigned long int uintptr_t;
-
-
-/* Efficient types. */
-typedef long int intfast_t;
-typedef unsigned long int uintfast_t;
-
-
-/* Small types. */
-
-/* Signed. */
-typedef signed char int_least8_t;
-typedef short int int_least16_t;
-typedef int int_least32_t;
-typedef long int int_least64_t;
-
-/* Unsigned. */
-typedef unsigned char uint_least8_t;
-typedef unsigned short int uint_least16_t;
-typedef unsigned int uint_least32_t;
-typedef unsigned long int uint_least64_t;
-
-
-/* Fast types. */
-
-/* Signed. */
-typedef signed char int_fast8_t;
-typedef int int_fast16_t;
-typedef int int_fast32_t;
-typedef long int int_fast64_t;
-
-/* Unsigned. */
-typedef unsigned char uint_fast8_t;
-typedef unsigned int uint_fast16_t;
-typedef unsigned int uint_fast32_t;
-typedef unsigned long int uint_fast64_t;
-
-
-/* Limits of integral types. */
-
-/* Minimum of signed integral types. */
-#define INT8_MIN (-128)
-#define INT16_MIN (-32767-1)
-#define INT32_MIN (-2147483647-1)
-#define INT64_MIN (-9223372036854775807L-1)
-/* Maximum of signed integral types. */
-#define INT8_MAX (127)
-#define INT16_MAX (32767)
-#define INT32_MAX (2147483647)
-#define INT64_MAX (9223372036854775807L)
-
-/* Maximum of unsigned integral types. */
-#define UINT8_MAX (255U)
-#define UINT16_MAX (65535U)
-#define UINT32_MAX (4294967295U)
-#define UINT64_MAX (18446744073709551615uL)
-
-/* Minimum of signed integral types having a minimum size. */
-#define INT_LEAST8_MIN (-128)
-#define INT_LEAST16_MIN (-32767-1)
-#define INT_LEAST32_MIN (-2147483647-1)
-#define INT_LEAST64_MIN (-9223372036854775807L-1)
-/* Maximum of signed integral types having a minimum size. */
-#define INT_LEAST8_MAX (127)
-#define INT_LEAST16_MAX (32767)
-#define INT_LEAST32_MAX (2147483647)
-#define INT_LEAST64_MAX (9223372036854775807L)
-
-/* Maximum of unsigned integral types having a minimum size. */
-#define UINT_LEAST8_MAX (255U)
-#define UINT_LEAST16_MAX (65535U)
-#define UINT_LEAST32_MAX (4294967295U)
-#define UINT_LEAST64_MAX (18446744073709551615uL)
-
-
-/* Minimum of fast signed integral types having a minimum size. */
-#define INT_FAST8_MIN (-128)
-#define INT_FAST16_MIN (-2147483647-1)
-#define INT_FAST32_MIN (-2147483647-1)
-#define INT_FAST64_MIN (-9223372036854775807L-1)
-/* Maximum of fast signed integral types having a minimum size. */
-#define INT_FAST8_MAX (127)
-#define INT_FAST16_MAX (2147483647)
-#define INT_FAST32_MAX (2147483647)
-#define INT_FAST64_MAX (9223372036854775807L)
-
-/* Maximum of fast unsigned integral types having a minimum size. */
-#define UINT_FAST8_MAX (255U)
-#define UINT_FAST16_MAX (4294967295U)
-#define UINT_FAST32_MAX (4294967295U)
-#define UINT_FAST64_MAX (18446744073709551615uL)
-
-
-/* Minimum for most efficient signed integral types. */
-#define INTFAST_MIN (-9223372036854775807L-1)
-/* Maximum for most efficient signed integral types. */
-#define INTFAST_MAX (9223372036854775807L)
-
-/* Maximum for most efficient unsigned integral types. */
-#define UINTFAST_MAX (18446744073709551615uL)
-
-
-/* Minimum for largest signed integral type. */
-#define INTMAX_MIN (-9223372036854775807L-1)
-/* Maximum for largest signed integral type. */
-#define INTMAX_MAX (9223372036854775807L)
-
-/* Maximum for largest unsigned integral type. */
-#define UINTMAX_MAX (18446744073709551615uL)
-
-
-/* Values to test for integral types holding `void *' pointer. */
-#define INTPTR_MAX (9223372036854775807L)
-#define UINTPTR_MAX (18446744073709551615uL)
+#include <features.h>
+/* Get the type definitions. */
+#include <stdint.h>
-/* Signed. */
-#define INT8_C(c) ((int8_t) c)
-#define INT16_C(c) ((int16_t) c)
-#define INT32_C(c) ((int32_t) c)
-#define INT64_C(c) ((int64_t) __CONCAT (c,l))
-
-/* Unsigned. */
-#define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
-#define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
-#define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
-#define UINT64_C(c) ((uint64_t) __CONCAT (c,ul))
-
-/* Maximal type. */
-#define INTMAX_C(c) ((intmax_t) __CONCAT (c,l))
-#define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ul))
-
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_FORMAT_MACROS
/* Macros for printing format specifiers. */
/* Decimal notation. */
-#define PRId8 "d"
-#define PRId16 "d"
-#define PRId32 "d"
-#define PRId64 "ld"
+# define PRId8 "d"
+# define PRId16 "d"
+# define PRId32 "d"
+# define PRId64 "ld"
-#define PRIdLEAST8 "d"
-#define PRIdLEAST16 "d"
-#define PRIdLEAST32 "d"
-#define PRIdLEAST64 "ld"
+# define PRIdLEAST8 "d"
+# define PRIdLEAST16 "d"
+# define PRIdLEAST32 "d"
+# define PRIdLEAST64 "ld"
-#define PRIdFAST8 "d"
-#define PRIdFAST16 "d"
-#define PRIdFAST32 "d"
-#define PRIdFAST64 "ld"
+# define PRIdFAST8 "d"
+# define PRIdFAST16 "d"
+# define PRIdFAST32 "d"
+# define PRIdFAST64 "ld"
-#define PRIi8 "i"
-#define PRIi16 "i"
-#define PRIi32 "i"
-#define PRIi64 "li"
+# define PRIi8 "i"
+# define PRIi16 "i"
+# define PRIi32 "i"
+# define PRIi64 "li"
-#define PRIiLEAST8 "i"
-#define PRIiLEAST16 "i"
-#define PRIiLEAST32 "i"
-#define PRIiLEAST64 "li"
+# define PRIiLEAST8 "i"
+# define PRIiLEAST16 "i"
+# define PRIiLEAST32 "i"
+# define PRIiLEAST64 "li"
-#define PRIiFAST8 "i"
-#define PRIiFAST16 "i"
-#define PRIiFAST32 "i"
-#define PRIiFAST64 "li"
+# define PRIiFAST8 "i"
+# define PRIiFAST16 "i"
+# define PRIiFAST32 "i"
+# define PRIiFAST64 "li"
/* Octal notation. */
-#define PRIo8 "o"
-#define PRIo16 "o"
-#define PRIo32 "o"
-#define PRIo64 "lo"
+# define PRIo8 "o"
+# define PRIo16 "o"
+# define PRIo32 "o"
+# define PRIo64 "lo"
-#define PRIoLEAST8 "o"
-#define PRIoLEAST16 "o"
-#define PRIoLEAST32 "o"
-#define PRIoLEAST64 "lo"
+# define PRIoLEAST8 "o"
+# define PRIoLEAST16 "o"
+# define PRIoLEAST32 "o"
+# define PRIoLEAST64 "lo"
-#define PRIoFAST8 "o"
-#define PRIoFAST16 "o"
-#define PRIoFAST32 "o"
-#define PRIoFAST64 "lo"
+# define PRIoFAST8 "o"
+# define PRIoFAST16 "o"
+# define PRIoFAST32 "o"
+# define PRIoFAST64 "lo"
/* lowercase hexadecimal notation. */
-#define PRIx8 "x"
-#define PRIx16 "x"
-#define PRIx32 "x"
-#define PRIx64 "lx"
+# define PRIx8 "x"
+# define PRIx16 "x"
+# define PRIx32 "x"
+# define PRIx64 "lx"
-#define PRIxLEAST8 "x"
-#define PRIxLEAST16 "x"
-#define PRIxLEAST32 "x"
-#define PRIxLEAST64 "lx"
+# define PRIxLEAST8 "x"
+# define PRIxLEAST16 "x"
+# define PRIxLEAST32 "x"
+# define PRIxLEAST64 "lx"
-#define PRIxFAST8 "x"
-#define PRIxFAST16 "x"
-#define PRIxFAST32 "x"
-#define PRIxFAST64 "lx"
+# define PRIxFAST8 "x"
+# define PRIxFAST16 "x"
+# define PRIxFAST32 "x"
+# define PRIxFAST64 "lx"
/* UPPERCASE hexadecimal notation. */
-#define PRIX8 "X"
-#define PRIX16 "X"
-#define PRIX32 "X"
-#define PRIX64 "lX"
+# define PRIX8 "X"
+# define PRIX16 "X"
+# define PRIX32 "X"
+# define PRIX64 "lX"
-#define PRIXLEAST8 "X"
-#define PRIXLEAST16 "X"
-#define PRIXLEAST32 "X"
-#define PRIXLEAST64 "lX"
+# define PRIXLEAST8 "X"
+# define PRIXLEAST16 "X"
+# define PRIXLEAST32 "X"
+# define PRIXLEAST64 "lX"
-#define PRIXFAST8 "X"
-#define PRIXFAST16 "X"
-#define PRIXFAST32 "X"
-#define PRIXFAST64 "lX"
+# define PRIXFAST8 "X"
+# define PRIXFAST16 "X"
+# define PRIXFAST32 "X"
+# define PRIXFAST64 "lX"
/* Unsigned integers. */
-#define PRIu8 "u"
-#define PRIu16 "u"
-#define PRIu32 "u"
-#define PRIu64 "lu"
+# define PRIu8 "u"
+# define PRIu16 "u"
+# define PRIu32 "u"
+# define PRIu64 "lu"
-#define PRIuLEAST8 "u"
-#define PRIuLEAST16 "u"
-#define PRIuLEAST32 "u"
-#define PRIuLEAST64 "lu"
+# define PRIuLEAST8 "u"
+# define PRIuLEAST16 "u"
+# define PRIuLEAST32 "u"
+# define PRIuLEAST64 "lu"
-#define PRIuFAST8 "u"
-#define PRIuFAST16 "u"
-#define PRIuFAST32 "u"
-#define PRIuFAST64 "lu"
+# define PRIuFAST8 "u"
+# define PRIuFAST16 "u"
+# define PRIuFAST32 "u"
+# define PRIuFAST64 "lu"
/* Macros for printing `intmax_t' and `uintmax_t'. */
-#define PRIdMAX "ld"
-#define PRIoMAX "lo"
-#define PRIxMAX "lx"
-#define PRIuMAX "lu"
-
-
-/* Macros for printing `intfast_t' and `uintfast_t'. */
-#define PRIdFAST "ld"
-#define PRIoFAST "lo"
-#define PRIxFAST "lx"
-#define PRIuFAST "lu"
+# define PRIdMAX "ld"
+# define PRIoMAX "lo"
+# define PRIxMAX "lx"
+# define PRIuMAX "lu"
/* Macros for printing `intptr_t' and `uintptr_t'. */
-#define PRIdPTR "ld"
-#define PRIoPTR "lo"
-#define PRIxPTR "lx"
-#define PRIuPTR "lu"
+# define PRIdPTR "ld"
+# define PRIoPTR "lo"
+# define PRIxPTR "lx"
+# define PRIuPTR "lu"
/* Macros for printing format specifiers. */
/* Decimal notation. */
-#define SCNd8 "hhd"
-#define SCNd16 "hd"
-#define SCNd32 "d"
-#define SCNd64 "ld"
+# define SCNd8 "hhd"
+# define SCNd16 "hd"
+# define SCNd32 "d"
+# define SCNd64 "ld"
-#define SCNi8 "hhi"
-#define SCNi16 "hi"
-#define SCNi32 "i"
-#define SCNi64 "li"
+# define SCNi8 "hhi"
+# define SCNi16 "hi"
+# define SCNi32 "i"
+# define SCNi64 "li"
-#define SCNu8 "hhu"
-#define SCNu16 "hu"
-#define SCNu32 "u"
-#define SCNu64 "lu"
+# define SCNu8 "hhu"
+# define SCNu16 "hu"
+# define SCNu32 "u"
+# define SCNu64 "lu"
/* Octal notation. */
-#define SCNo8 "hho"
-#define SCNo16 "ho"
-#define SCNo32 "o"
-#define SCNo64 "lo"
+# define SCNo8 "hho"
+# define SCNo16 "ho"
+# define SCNo32 "o"
+# define SCNo64 "lo"
/* Hexadecimal notation. */
-#define SCNx8 "hhx"
-#define SCNx16 "hx"
-#define SCNx32 "x"
-#define SCNx64 "lx"
+# define SCNx8 "hhx"
+# define SCNx16 "hx"
+# define SCNx32 "x"
+# define SCNx64 "lx"
/* Macros for scaning `intfast_t' and `uintfast_t'. */
-#define SCNdFAST "ld"
-#define SCNiFAST "li"
-#define SCNoFAST "lo"
-#define SCNxFAST "lx"
+# define SCNdFAST "ld"
+# define SCNiFAST "li"
+# define SCNoFAST "lo"
+# define SCNxFAST "lx"
/* Macros for scaning `intptr_t' and `uintptr_t'. */
-#define SCNdPTR "ld"
-#define SCNiPTR "li"
-#define SCNoPTR "lo"
-#define SCNxPTR "lx"
-
-
-/* Limits of other integer types. */
+# define SCNdPTR "ld"
+# define SCNiPTR "li"
+# define SCNoPTR "lo"
+# define SCNxPTR "lx"
-/* Limits of `ptrdiff_t' type. */
-#define PTRDIFF_MIN (-9223372036854775807L-1)
-#define PTRDIFF_MAX (9223372036854775807L)
+#endif /* C++ && format macros */
-/* Limits of `sig_atomic_t'. */
-#define SIG_ATOMIC_MIN (-2147483647-1)
-#define SIG_ATOMIC_MAX (2147483647)
-/* Limit of `size_t' type. */
-#define SIZE_MAX (18446744073709551615uL)
-
-/* Limits of `wchar_t'. */
-#ifndef WCHAR_MIN
-/* These constants might also be defined in <wchar.h>. */
-# define WCHAR_MIN (-2147483647-1)
-# define WCHAR_MAX (2147483647)
-#endif
-
-/* Limits of `wint_t'. */
-#define WINT_MIN (0)
-#define WINT_MAX (4294967295U)
-
-
-/* Macros for string conversion. */
+__BEGIN_DECLS
/* Like `strtol' but convert to `intmax_t'. */
extern intmax_t strtoimax __P ((__const char *__restrict __nptr,
@@ -458,4 +271,6 @@ wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
}
#endif /* GCC and Optimization. */
+__END_DECLS
+
#endif /* inttypes.h */
diff --git a/sysdeps/wordsize-64/stdint.h b/sysdeps/wordsize-64/stdint.h
new file mode 100644
index 0000000000..3e05aebe54
--- /dev/null
+++ b/sysdeps/wordsize-64/stdint.h
@@ -0,0 +1,214 @@
+/* Copyright (C) 1997, 1998 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. */
+
+/*
+ * ISO C 9X: 7.4 Integer types <stdint.h>
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H 1
+
+#include <features.h>
+#define __need_wchar_t
+#include <stddef.h>
+
+/* Exact integral types. */
+
+/* Signed. */
+
+/* There is some amount of overlap with <sys/types.h> as known by inet code */
+#ifndef __int8_t_defined
+# define __int8_t_defined
+typedef signed char int8_t;
+typedef short int int16_t;
+typedef int int32_t;
+typedef long int int64_t;
+#endif
+
+/* Unsigned. */
+typedef unsigned char uint8_t;
+typedef unsigned short int uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long int uint64_t;
+
+
+/* Small types. */
+
+/* Signed. */
+typedef signed char int_least8_t;
+typedef short int int_least16_t;
+typedef int int_least32_t;
+typedef long int int_least64_t;
+
+/* Unsigned. */
+typedef unsigned char uint_least8_t;
+typedef unsigned short int uint_least16_t;
+typedef unsigned int uint_least32_t;
+typedef unsigned long int uint_least64_t;
+
+
+/* Fast types. */
+
+/* Signed. */
+typedef signed char int_fast8_t;
+typedef long int int_fast16_t;
+typedef long int int_fast32_t;
+typedef long int int_fast64_t;
+
+/* Unsigned. */
+typedef unsigned char uint_fast8_t;
+typedef unsigned long int uint_fast16_t;
+typedef unsigned long int uint_fast32_t;
+typedef unsigned long int uint_fast64_t;
+
+
+/* Types for `void *' pointers. */
+typedef int intptr_t;
+typedef unsigned long int uintptr_t;
+
+
+/* Largest integral types. */
+typedef long int intmax_t;
+typedef unsigned long int uintmax_t;
+
+
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
+
+/* Limits of integral types. */
+
+/* Minimum of signed integral types. */
+# define INT8_MIN (-128)
+# define INT16_MIN (-32767-1)
+# define INT32_MIN (-2147483647-1)
+# define INT64_MIN (-9223372036854775807LL-1)
+/* Maximum of signed integral types. */
+# define INT8_MAX (127)
+# define INT16_MAX (32767)
+# define INT32_MAX (2147483647)
+# define INT64_MAX (9223372036854775807LL)
+
+/* Maximum of unsigned integral types. */
+# define UINT8_MAX (255U)
+# define UINT16_MAX (65535U)
+# define UINT32_MAX (4294967295U)
+# define UINT64_MAX (18446744073709551615uLL)
+
+
+/* Minimum of signed integral types having a minimum size. */
+# define INT_LEAST8_MIN (-128)
+# define INT_LEAST16_MIN (-32767-1)
+# define INT_LEAST32_MIN (-2147483647-1)
+# define INT_LEAST64_MIN (-9223372036854775807LL-1)
+/* Maximum of signed integral types having a minimum size. */
+# define INT_LEAST8_MAX (127)
+# define INT_LEAST16_MAX (32767)
+# define INT_LEAST32_MAX (2147483647)
+# define INT_LEAST64_MAX (9223372036854775807LL)
+
+/* Maximum of unsigned integral types having a minimum size. */
+# define UINT_LEAST8_MAX (255U)
+# define UINT_LEAST16_MAX (65535U)
+# define UINT_LEAST32_MAX (4294967295U)
+# define UINT_LEAST64_MAX (18446744073709551615uLL)
+
+
+/* Minimum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MIN (-128)
+# define INT_FAST16_MIN (-9223372036854775807LL-1)
+# define INT_FAST32_MIN (-9223372036854775807LL-1)
+# define INT_FAST64_MIN (-9223372036854775807LL-1)
+/* Maximum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MAX (127)
+# define INT_FAST16_MAX (9223372036854775807LL)
+# define INT_FAST32_MAX (9223372036854775807LL)
+# define INT_FAST64_MAX (9223372036854775807LL)
+
+/* Maximum of fast unsigned integral types having a minimum size. */
+# define UINT_FAST8_MAX (255U)
+# define UINT_FAST16_MAX (18446744073709551615uLL)
+# define UINT_FAST32_MAX (18446744073709551615uLL)
+# define UINT_FAST64_MAX (18446744073709551615uLL)
+
+
+/* Values to test for integral types holding `void *' pointer. */
+# define INTPTR_MIN (-9223372036854775807L-1)
+# define INTPTR_MAX (9223372036854775807L
+# define UINTPTR_MAX (18446744073709551615uL)
+
+
+/* Minimum for largest signed integral type. */
+# define INTMAX_MIN (-9223372036854775807LL-1)
+/* Maximum for largest signed integral type. */
+# define INTMAX_MAX (9223372036854775807LL)
+
+/* Maximum for largest unsigned integral type. */
+# define UINTMAX_MAX (18446744073709551615uLL)
+
+
+/* Limits of other integer types. */
+
+/* Limits of `ptrdiff_t' type. */
+# define PTRDIFF_MIN (-9223372036854775807L-1)
+# define PTRDIFF_MAX (9223372036854775807L)
+
+/* Limits of `sig_atomic_t'. */
+# define SIG_ATOMIC_MIN (-2147483647-1)
+# define SIG_ATOMIC_MAX (2147483647)
+
+/* Limit of `size_t' type. */
+# define SIZE_MAX (18446744073709551615uL)
+
+/* Limits of `wchar_t'. */
+# ifndef WCHAR_MIN
+/* These constants might also be defined in <wchar.h>. */
+# define WCHAR_MIN (-2147483647-1)
+# define WCHAR_MAX (2147483647)
+# endif
+
+/* Limits of `wint_t'. */
+# define WINT_MIN (0)
+# define WINT_MAX (4294967295U)
+
+#endif /* C++ && limit macros */
+
+
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* Signed. */
+# define INT8_C(c) ((int8_t) c)
+# define INT16_C(c) ((int16_t) c)
+# define INT32_C(c) ((int32_t) c)
+# define INT64_C(c) ((int64_t) __CONCAT (c,l))
+
+/* Unsigned. */
+# define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
+# define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
+# define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
+# define UINT64_C(c) ((uint64_t) __CONCAT (c,ul))
+
+/* Maximal type. */
+# define INTMAX_C(c) ((intmax_t) __CONCAT (c,l))
+# define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ul))
+
+#endif /* C++ && constant macros */
+
+#endif /* stdint.h */
diff --git a/time/Makefile b/time/Makefile
index 87231d7770..d90dbce8d4 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -22,179 +22,14 @@
subdir := time
headers := time.h sys/time.h sys/timeb.h bits/time.h
-distribute := tzfile.h private.h scheck.c ialloc.c yearistype \
- iso3166.tab zone.tab tzselect.ksh checktab.awk \
- README
-extra-objs = scheck.o ialloc.o $(tzfiles:%=z.%)
-routines := offtime asctime clock ctime ctime_r difftime \
- gmtime localtime mktime strftime time tzset \
- tzfile gettimeofday settimeofday adjtime \
- getitimer setitimer \
- stime dysize timegm ftime \
- strptime getdate strfxtime
+routines := offtime asctime clock ctime ctime_r difftime \
+ gmtime localtime mktime strftime time \
+ gettimeofday settimeofday adjtime tzset \
+ tzfile getitimer setitimer \
+ stime dysize timegm ftime \
+ strptime getdate strfxtime
-others := ap zdump zic
-tests := test_time clocktest test-tz
-
-tzbases := africa antarctica asia australasia europe northamerica \
- southamerica etcetera factory systemv \
- solar87 solar88 solar89
-tzlinks := backward
-tzfiles := $(tzbases) $(tzlinks)
-# pacificnew doesn't compile; if it is to be used, it should be included in
-# northamerica.
-distribute += $(tzfiles) leapseconds pacificnew simplebackw
-
-install-sbin := zic zdump
-
-generated-dirs = testdata
-
-all: # Make this the default target; it will be defined in Rules.
-
-include ../Makeconfig # Get objpfx defined so we can use it below.
-
-# z.* use this variable.
-define nl
-
-
-endef
-ifneq ($(no_deps),t)
--include $(addprefix $(objpfx)z.,$(tzfiles))
-endif
-
-# Make these absolute file names.
-installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \
- $(addprefix $(inst_zonedir)/, \
- $(localtime-file)))
-installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \
- $(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 $(inst_zonedir)/,$(zonenames) \
- $(zonenames:%=posix/%) \
- $(zonenames:%=right/%)) \
- $(installed-localtime-file) $(installed-posixrules-file)
-endif
-
-ifeq ($(have-ksh),yes)
-install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
-install-bin += tzselect
-generated += tzselect
-endif
+tests := test_time clocktest
include ../Rules
-
-
-$(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile
-# Kludge alert: we use an implicit rule (in what we are generating here)
-# because that is the only way to tell Make that the one command builds all
-# the files.
-# The extra kludge for the $(tzlinks) files is necessary since running zic
-# this file requires all other files to exist. Blech!
- (echo 'define $*-zones' ;\
- awk '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\
- echo 'endef' ;\
- echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))' ;\
- echo 'ifdef $*-zones' ;\
- if test x$(findstring $*, $(tzlinks)) != x; then \
- echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\
- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\
- echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\
- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\
- echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \' ;\
- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\
- fi ;\
- echo '$$(addprefix $$(inst_datadir)/zone%/right/,$$($*-zones)): \' ;\
- echo '$< $$(objpfx)zic leapseconds yearistype' ;\
- echo ' $$(tzcompile)' ;\
- echo '$$(addprefix $$(inst_datadir)/zone%/posix/,$$($*-zones)): \' ;\
- echo '$< $$(objpfx)zic /dev/null yearistype' ;\
- echo ' $$(tzcompile)' ;\
- echo '$$(addprefix $$(inst_datadir)/zone%/,$$($*-zones)): \' ;\
- echo '$< $$(objpfx)zic $$(leapseconds) yearistype' ;\
- echo ' $$(tzcompile)' ;\
- echo 'endif' ;\
- echo 'zonenames := $$(zonenames) $$($*-zones)' ;\
- ) > $@.new
- mv $@.new $@
-
-.PHONY: echo-zonenames
-echo-zonenames:
- @echo 'Known zones: $(zonenames)'
-
-
-# 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 $(inst_zonedir)/posix
-# and the like. This magic extracts /posix or /right if it's the first
-# component after $(inst_zonedir) in the target name $@.
-target-zone-flavor = $(filter /posix /right, \
- /$(firstword $(subst /, , \
- $(patsubst $(inst_zonedir)/%,%,$@))))
-
-ifdef localtime
-$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic
- $(make-target-directory)
- if test -r $@; then \
- echo Site timezone NOT reset to Factory.; \
- else \
- rm -f $@T; \
- $(SHELL) $(..)/rellns-sh $< $@T; \
- mv -f $@T $@; \
- fi
-endif
-ifdef posixrules
-$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic
- $(zic-cmd) -p $(posixrules)
-endif
-
-
-$(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
-
-tz-cflags = -DTZDIR='"$(zonedir)"' \
- -DTZDEFAULT='"$(localtime-file)"' \
- -DTZDEFRULES='"$(posixrules-file)"'
-
-CFLAGS-zdump.c = -Wno-strict-prototypes -DNOID
-CFLAGS-zic.c = -Wno-strict-prototypes -DNOID $(tz-cflags)
-CFLAGS-ialloc.c = -Wno-strict-prototypes -DNOID
-CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID
-CFLAGS-tzfile.c = $(tz-cflags)
-CFLAGS-tzset.c = $(tz-cflags)
-
-# We have to make sure the data for testing the tz functions is available.
-$(objpfx)test-tz.out: $(addprefix $(objpfx)testdata/, America/New_York \
- Etc/UTC UTC)
-
-$(objpfx)testdata/America/New_York: northamerica $(objpfx)zic \
- $(leapseconds) yearistype
- $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
- -y yearistype northamerica
-$(objpfx)testdata/Etc/UTC: etcetera $(objpfx)zic $(leapseconds) yearistype
- $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
- -y yearistype etcetera
-$(objpfx)testdata/UTC: simplebackw $(objpfx)zic $(objpfx)testdata/Etc/UTC \
- $(leapseconds) yearistype
- $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
- -y yearistype simplebackw
-
-test-tz-ENV = TZDIR=$(objpfx)testdata
-
-
-$(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
- sed -e 's%@KSH@%$(KSH)%g' \
- -e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new
- chmod 555 $@.new
- mv -f $@.new $@
-
-$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): $(inst_zonedir)/%: %
- $(do-install)
diff --git a/time/tzfile.c b/time/tzfile.c
index 3d2d3e0485..7dcf88dbe9 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 95, 96, 97, 98 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
@@ -24,7 +24,7 @@
#include <unistd.h>
#define NOID
-#include <tzfile.h>
+#include <timezone/tzfile.h>
int __use_tzfile = 0;
diff --git a/time/tzset.c b/time/tzset.c
index 64e2087905..e766796513 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,98 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
@@ -32,7 +32,7 @@ extern const unsigned short int __mon_yday[2][13];
extern struct tm _tmbuf;
#define NOID
-#include "tzfile.h"
+#include <timezone/tzfile.h>
extern int __use_tzfile;
extern void __tzfile_read __P ((const char *file));
@@ -40,7 +40,7 @@ extern int __tzfile_compute __P ((time_t timer, int use_localtime,
long int *leap_correct, int *leap_hit));
extern void __tzfile_default __P ((const char *std, const char *dst,
long int stdoff, long int dstoff));
-extern char * __tzstring __P ((const char *string));
+extern char *__tzstring __P ((const char *string));
char *__tzname[2] = { (char *) "GMT", (char *) "GMT" };
int __daylight = 0;
diff --git a/timezone/Makefile b/timezone/Makefile
new file mode 100644
index 0000000000..f4cfa84cb9
--- /dev/null
+++ b/timezone/Makefile
@@ -0,0 +1,196 @@
+# Copyright (C) 1998 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.
+
+#
+# Makefile for timezone information
+#
+subdir := timezone
+
+distribute := tzfile.h private.h scheck.c ialloc.c yearistype \
+ iso3166.tab zone.tab tzselect.ksh checktab.awk \
+ README
+
+extra-objs := scheck.o ialloc.o
+
+others := zdump zic
+tests := test-tz
+
+tzbases := africa antarctica asia australasia europe northamerica \
+ southamerica etcetera factory systemv \
+ solar87 solar88 solar89
+tzlinks := backward
+tzfiles := $(tzbases) $(tzlinks)
+# pacificnew doesn't compile; if it is to be used, it should be included in
+# northamerica.
+distribute += $(tzfiles) leapseconds pacificnew simplebackw
+
+install-sbin := zic zdump
+
+generated-dirs = testdata
+
+all: # Make this the default target; it will be defined in Rules.
+
+include ../Makeconfig # Get objpfx defined so we can use it below.
+
+# z.* use this variable.
+define nl
+
+
+endef
+ifneq ($(no_deps),t)
+-include $(addprefix $(objpfx)z.,$(tzfiles))
+endif
+
+# Make these absolute file names.
+installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \
+ $(addprefix $(inst_zonedir)/, \
+ $(localtime-file)))
+installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \
+ $(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 $(inst_zonedir)/,$(zonenames) \
+ $(zonenames:%=posix/%) \
+ $(zonenames:%=right/%)) \
+ $(installed-localtime-file) $(installed-posixrules-file)
+endif
+
+ifeq ($(have-ksh),yes)
+install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
+install-bin += tzselect
+generated += tzselect
+endif
+
+include ../Rules
+
+
+$(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile
+# Kludge alert: we use an implicit rule (in what we are generating here)
+# because that is the only way to tell Make that the one command builds all
+# the files.
+# The extra kludge for the $(tzlinks) files is necessary since running zic
+# this file requires all other files to exist. Blech!
+ (echo 'define $*-zones' ;\
+ awk '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\
+ echo 'endef' ;\
+ echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))' ;\
+ echo 'ifdef $*-zones' ;\
+ if test x$(findstring $*, $(tzlinks)) != x; then \
+ echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\
+ echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,
+$$($$t-zones)))' ;\
+ echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\
+ echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,
+$$($$t-zones)))' ;\
+ echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \' ;\
+ echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t
+-zones)))' ;\
+ fi ;\
+ echo '$$(addprefix $$(inst_datadir)/zone%/right/,$$($*-zones)): \' ;\
+ echo '$< $$(objpfx)zic leapseconds yearistype' ;\
+ echo ' $$(tzcompile)' ;\
+ echo '$$(addprefix $$(inst_datadir)/zone%/posix/,$$($*-zones)): \' ;\
+ echo '$< $$(objpfx)zic /dev/null yearistype' ;\
+ echo ' $$(tzcompile)' ;\
+ echo '$$(addprefix $$(inst_datadir)/zone%/,$$($*-zones)): \' ;\
+ echo '$< $$(objpfx)zic $$(leapseconds) yearistype' ;\
+ echo ' $$(tzcompile)' ;\
+ echo 'endif' ;\
+ echo 'zonenames := $$(zonenames) $$($*-zones)' ;\
+ ) > $@.new
+ mv $@.new $@
+
+.PHONY: echo-zonenames
+echo-zonenames:
+ @echo 'Known zones: $(zonenames)'
+
+
+# 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 $(inst_zonedir)/posix
+# and the like. This magic extracts /posix or /right if it's the first
+# component after $(inst_zonedir) in the target name $@.
+target-zone-flavor = $(filter /posix /right, \
+ /$(firstword $(subst /, , \
+ $(patsubst $(inst_zonedir)/%,%,$@))))
+
+ifdef localtime
+$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic
+ $(make-target-directory)
+ if test -r $@; then \
+ echo Site timezone NOT reset to Factory.; \
+ else \
+ rm -f $@T; \
+ $(SHELL) $(..)/rellns-sh $< $@T; \
+ mv -f $@T $@; \
+ fi
+endif
+ifdef posixrules
+$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic
+ $(zic-cmd) -p $(posixrules)
+endif
+
+
+$(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+
+tz-cflags = -DTZDIR='"$(zonedir)"' \
+ -DTZDEFAULT='"$(localtime-file)"' \
+ -DTZDEFRULES='"$(posixrules-file)"'
+
+CFLAGS-zdump.c = -Wno-strict-prototypes -DNOID
+CFLAGS-zic.c = -Wno-strict-prototypes -DNOID $(tz-cflags)
+CFLAGS-ialloc.c = -Wno-strict-prototypes -DNOID
+CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID
+CFLAGS-tzfile.c = $(tz-cflags)
+CFLAGS-tzset.c = $(tz-cflags)
+
+# We have to make sure the data for testing the tz functions is available.
+$(objpfx)test-tz.out: $(addprefix $(objpfx)testdata/, America/New_York \
+ Etc/UTC UTC)
+
+$(objpfx)testdata/America/New_York: northamerica $(objpfx)zic \
+ $(leapseconds) yearistype
+ $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
+ -y yearistype northamerica
+$(objpfx)testdata/Etc/UTC: etcetera $(objpfx)zic $(leapseconds) yearistype
+ $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
+ -y yearistype etcetera
+$(objpfx)testdata/UTC: simplebackw $(objpfx)zic $(objpfx)testdata/Etc/UTC \
+ $(leapseconds) yearistype
+ $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
+ -y yearistype simplebackw
+
+test-tz-ENV = TZDIR=$(objpfx)testdata
+
+
+$(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
+ sed -e 's%@KSH@%$(KSH)%g' \
+ -e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new
+ chmod 555 $@.new
+ mv -f $@.new $@
+
+$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): $(inst_zonedir)/%: %
+ $(do-install)
diff --git a/time/README b/timezone/README
index 009a7973bc..009a7973bc 100644
--- a/time/README
+++ b/timezone/README
diff --git a/time/africa b/timezone/africa
index 8286e6f62f..8286e6f62f 100644
--- a/time/africa
+++ b/timezone/africa
diff --git a/time/antarctica b/timezone/antarctica
index 1e6e73eff2..1e6e73eff2 100644
--- a/time/antarctica
+++ b/timezone/antarctica
diff --git a/time/asia b/timezone/asia
index c7180eb408..c7180eb408 100644
--- a/time/asia
+++ b/timezone/asia
diff --git a/time/australasia b/timezone/australasia
index 5121cd32fd..5121cd32fd 100644
--- a/time/australasia
+++ b/timezone/australasia
diff --git a/time/backward b/timezone/backward
index 4c7a19d2cf..4c7a19d2cf 100644
--- a/time/backward
+++ b/timezone/backward
diff --git a/time/checktab.awk b/timezone/checktab.awk
index 9006e9f59a..9006e9f59a 100644
--- a/time/checktab.awk
+++ b/timezone/checktab.awk
diff --git a/time/etcetera b/timezone/etcetera
index cf1516fe2f..cf1516fe2f 100644
--- a/time/etcetera
+++ b/timezone/etcetera
diff --git a/time/europe b/timezone/europe
index dbaa01f2f4..dbaa01f2f4 100644
--- a/time/europe
+++ b/timezone/europe
diff --git a/time/factory b/timezone/factory
index ba27c63269..ba27c63269 100644
--- a/time/factory
+++ b/timezone/factory
diff --git a/time/ialloc.c b/timezone/ialloc.c
index 8a0c701578..8a0c701578 100644
--- a/time/ialloc.c
+++ b/timezone/ialloc.c
diff --git a/time/iso3166.tab b/timezone/iso3166.tab
index 6eb4d318db..6eb4d318db 100644
--- a/time/iso3166.tab
+++ b/timezone/iso3166.tab
diff --git a/time/leapseconds b/timezone/leapseconds
index 903da5aaae..903da5aaae 100644
--- a/time/leapseconds
+++ b/timezone/leapseconds
diff --git a/time/northamerica b/timezone/northamerica
index baaf84095a..baaf84095a 100644
--- a/time/northamerica
+++ b/timezone/northamerica
diff --git a/time/pacificnew b/timezone/pacificnew
index 86dd688341..86dd688341 100644
--- a/time/pacificnew
+++ b/timezone/pacificnew
diff --git a/time/private.h b/timezone/private.h
index 7f98a67391..7f98a67391 100644
--- a/time/private.h
+++ b/timezone/private.h
diff --git a/time/scheck.c b/timezone/scheck.c
index 39feeba701..39feeba701 100644
--- a/time/scheck.c
+++ b/timezone/scheck.c
diff --git a/time/solar87 b/timezone/solar87
index 3f32347973..3f32347973 100644
--- a/time/solar87
+++ b/timezone/solar87
diff --git a/time/solar88 b/timezone/solar88
index 41a64e5023..41a64e5023 100644
--- a/time/solar88
+++ b/timezone/solar88
diff --git a/time/solar89 b/timezone/solar89
index a6d3d718d3..a6d3d718d3 100644
--- a/time/solar89
+++ b/timezone/solar89
diff --git a/time/southamerica b/timezone/southamerica
index f53355c4c0..f53355c4c0 100644
--- a/time/southamerica
+++ b/timezone/southamerica
diff --git a/time/systemv b/timezone/systemv
index a6f79d231a..a6f79d231a 100644
--- a/time/systemv
+++ b/timezone/systemv
diff --git a/time/test-tz.c b/timezone/test-tz.c
index 528aa6f7ab..528aa6f7ab 100644
--- a/time/test-tz.c
+++ b/timezone/test-tz.c
diff --git a/time/tzfile.h b/timezone/tzfile.h
index 0921c3c339..0921c3c339 100644
--- a/time/tzfile.h
+++ b/timezone/tzfile.h
diff --git a/time/tzselect.ksh b/timezone/tzselect.ksh
index 031cda1de6..031cda1de6 100644
--- a/time/tzselect.ksh
+++ b/timezone/tzselect.ksh
diff --git a/time/yearistype b/timezone/yearistype
index 809f5492a1..809f5492a1 100755
--- a/time/yearistype
+++ b/timezone/yearistype
diff --git a/time/zdump.c b/timezone/zdump.c
index f6480bb308..f6480bb308 100644
--- a/time/zdump.c
+++ b/timezone/zdump.c
diff --git a/time/zic.c b/timezone/zic.c
index adec622672..adec622672 100644
--- a/time/zic.c
+++ b/timezone/zic.c
diff --git a/time/zone.tab b/timezone/zone.tab
index df4c157788..df4c157788 100644
--- a/time/zone.tab
+++ b/timezone/zone.tab
diff --git a/wctype/wctype.h b/wctype/wctype.h
index 979a98c065..2ed0fe1f35 100644
--- a/wctype/wctype.h
+++ b/wctype/wctype.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 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
@@ -69,7 +69,7 @@ typedef unsigned long int wctype_t;
# if __BYTE_ORDER == __BIG_ENDIAN
# define _ISwbit(bit) (1 << bit)
# else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-# define _ISwbit(bit) (bit < 8 ? 1UL << (bit + 24) : 1UL << (bit + 8))
+# define _ISwbit(bit) (bit < 8 ? 1UL << bit << 24 : 1UL << (bit + 8))
# endif
enum