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