Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 15 Feb 1998 19:31:34 +0000 (19:31 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 15 Feb 1998 19:31:34 +0000 (19:31 +0000)
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.

63 files changed:
ChangeLog
Makefile
README-alpha [moved from SNAP with 100% similarity]
elf/Makefile
libc.map
malloc/obstack.h
math/test-reduce.c [deleted file]
nss/getXXent_r.c
nss/nss_files/files-alias.c
nss/nss_files/files-parse.c
nss/nsswitch.c
socket/sys/socket.h
stdio-common/vfscanf.c
stdlib/Makefile
sysdeps/generic/Dist
sysdeps/generic/getresgid.c [new file with mode: 0644]
sysdeps/generic/getresuid.c [new file with mode: 0644]
sysdeps/generic/s_exp2.c [deleted file]
sysdeps/generic/s_exp2f.c [deleted file]
sysdeps/generic/stdint.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/bits/socket.h
sysdeps/unix/sysv/linux/errlist.c
sysdeps/unix/sysv/linux/getresgid.c
sysdeps/unix/sysv/linux/getresuid.c
sysdeps/unix/sysv/linux/poll.c
sysdeps/wordsize-32/inttypes.h
sysdeps/wordsize-32/stdint.h [new file with mode: 0644]
sysdeps/wordsize-64/inttypes.h
sysdeps/wordsize-64/stdint.h [new file with mode: 0644]
time/Makefile
time/tzfile.c
time/tzset.c
timezone/Makefile [new file with mode: 0644]
timezone/README [moved from time/README with 100% similarity]
timezone/africa [moved from time/africa with 100% similarity]
timezone/antarctica [moved from time/antarctica with 100% similarity]
timezone/asia [moved from time/asia with 100% similarity]
timezone/australasia [moved from time/australasia with 100% similarity]
timezone/backward [moved from time/backward with 100% similarity]
timezone/checktab.awk [moved from time/checktab.awk with 100% similarity]
timezone/etcetera [moved from time/etcetera with 100% similarity]
timezone/europe [moved from time/europe with 100% similarity]
timezone/factory [moved from time/factory with 100% similarity]
timezone/ialloc.c [moved from time/ialloc.c with 100% similarity]
timezone/iso3166.tab [moved from time/iso3166.tab with 100% similarity]
timezone/leapseconds [moved from time/leapseconds with 100% similarity]
timezone/northamerica [moved from time/northamerica with 100% similarity]
timezone/pacificnew [moved from time/pacificnew with 100% similarity]
timezone/private.h [moved from time/private.h with 100% similarity]
timezone/scheck.c [moved from time/scheck.c with 100% similarity]
timezone/solar87 [moved from time/solar87 with 100% similarity]
timezone/solar88 [moved from time/solar88 with 100% similarity]
timezone/solar89 [moved from time/solar89 with 100% similarity]
timezone/southamerica [moved from time/southamerica with 100% similarity]
timezone/systemv [moved from time/systemv with 100% similarity]
timezone/test-tz.c [moved from time/test-tz.c with 100% similarity]
timezone/tzfile.h [moved from time/tzfile.h with 100% similarity]
timezone/tzselect.ksh [moved from time/tzselect.ksh with 100% similarity]
timezone/yearistype [moved from time/yearistype with 100% similarity]
timezone/zdump.c [moved from time/zdump.c with 100% similarity]
timezone/zic.c [moved from time/zic.c with 100% similarity]
timezone/zone.tab [moved from time/zone.tab with 100% similarity]
wctype/wctype.h

index 719304c..3c10716 100644 (file)
--- 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
 
        * 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.
index 7efe323..5a3456e 100644 (file)
--- 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
similarity index 100%
rename from SNAP
rename to README-alpha
index 5fe73e7..093fc09 100644 (file)
@@ -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) \
index 76154c9..c1d5447 100644 (file)
--- 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;
index e7ae695..edbcd26 100644 (file)
@@ -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
 \f
-#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)
 \f
-#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__                                                             \
 \f
 #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 (file)
index 5149ead..0000000
+++ /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;
-}
index aa21b6f..b709a4a 100644 (file)
@@ -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);
     }
index 66f3d3a..2d6e15c 100644 (file)
@@ -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)
            {
index 198b359..dd5fdff 100644 (file)
@@ -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))                                            \
index 36c1d00..65da26b 100644 (file)
@@ -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;
 }
 
 
index 3d3f713..c3b75b3 100644 (file)
@@ -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.
index afb6f7c..0399e39 100644 (file)
@@ -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>
 #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)
     {
index cd33f1f..6db064d 100644 (file)
@@ -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                                                  \
index bc9e492..e088372 100644 (file)
@@ -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 (file)
index 0000000..9381e07
--- /dev/null
@@ -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 (file)
index 0000000..44083e8
--- /dev/null
@@ -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 (file)
index 4e25d38..0000000
+++ /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 (file)
index 7928a4c..0000000
+++ /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 (file)
index 0000000..9ef0e85
--- /dev/null
@@ -0,0 +1 @@
+#error "This file must be written based on the data type sizes of the target"
index 34c2be4..0476c15 100644 (file)
@@ -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
index 7349d67..af28a45 100644 (file)
@@ -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);
index 2fe461a..4c326d5 100644 (file)
@@ -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
index 89b8fa7..6b6bc37 100644 (file)
@@ -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
index f6e71b7..e37df4c 100644 (file)
@@ -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>
index 9200b8c..188f4de 100644 (file)
@@ -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
    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 (file)
index 0000000..c3a9e30
--- /dev/null
@@ -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 */
index 8ec8095..5e497db 100644 (file)
@@ -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
  */
 
 #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 (file)
index 0000000..3e05aeb
--- /dev/null
@@ -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 */
index 87231d7..d90dbce 100644 (file)
@@ -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
 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)
index 3d2d3e0..7dcf88d 100644 (file)
@@ -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;
 
index 64e2087..e766796 100644 (file)
@@ -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 (file)
index 0000000..f4cfa84
--- /dev/null
@@ -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)
similarity index 100%
rename from time/README
rename to timezone/README
similarity index 100%
rename from time/africa
rename to timezone/africa
similarity index 100%
rename from time/antarctica
rename to timezone/antarctica
similarity index 100%
rename from time/asia
rename to timezone/asia
similarity index 100%
rename from time/australasia
rename to timezone/australasia
similarity index 100%
rename from time/backward
rename to timezone/backward
similarity index 100%
rename from time/checktab.awk
rename to timezone/checktab.awk
similarity index 100%
rename from time/etcetera
rename to timezone/etcetera
similarity index 100%
rename from time/europe
rename to timezone/europe
similarity index 100%
rename from time/factory
rename to timezone/factory
similarity index 100%
rename from time/ialloc.c
rename to timezone/ialloc.c
similarity index 100%
rename from time/iso3166.tab
rename to timezone/iso3166.tab
similarity index 100%
rename from time/leapseconds
rename to timezone/leapseconds
similarity index 100%
rename from time/northamerica
rename to timezone/northamerica
similarity index 100%
rename from time/pacificnew
rename to timezone/pacificnew
similarity index 100%
rename from time/private.h
rename to timezone/private.h
similarity index 100%
rename from time/scheck.c
rename to timezone/scheck.c
similarity index 100%
rename from time/solar87
rename to timezone/solar87
similarity index 100%
rename from time/solar88
rename to timezone/solar88
similarity index 100%
rename from time/solar89
rename to timezone/solar89
similarity index 100%
rename from time/southamerica
rename to timezone/southamerica
similarity index 100%
rename from time/systemv
rename to timezone/systemv
similarity index 100%
rename from time/test-tz.c
rename to timezone/test-tz.c
similarity index 100%
rename from time/tzfile.h
rename to timezone/tzfile.h
similarity index 100%
rename from time/tzselect.ksh
rename to timezone/tzselect.ksh
similarity index 100%
rename from time/yearistype
rename to timezone/yearistype
similarity index 100%
rename from time/zdump.c
rename to timezone/zdump.c
similarity index 100%
rename from time/zic.c
rename to timezone/zic.c
similarity index 100%
rename from time/zone.tab
rename to timezone/zone.tab
index 979a98c..2ed0fe1 100644 (file)
@@ -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