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.
This commit is contained in:
Ulrich Drepper 1998-02-15 19:31:34 +00:00
parent dc30f46157
commit 14ea22e96c
63 changed files with 1176 additions and 1172 deletions

View file

@ -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.

View file

@ -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

View file

View file

@ -87,6 +87,11 @@ $(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(common-objpfx)libc_pic.a
# Do we need a linker script?
rtld-ldscript-in := $(firstword $(wildcard $(+sysdep_dirs:%=%/rtld-ldscript.in)))
ifeq ($(versioning),yes)
RTLD-VERSIONS = -Wl,--version-script=$(libc-map)
endif
ifneq (,$(rtld-ldscript-in))
LDFLAGS-rtld = -T $(objpfx)rtld-ldscript
@ -103,8 +108,6 @@ $(objpfx)rtld-ldscript: $(rtld-ldscript-in) $(rtld-parms)
$(objpfx)ld.so: $(objpfx)librtld.os $(objpfx)rtld-ldscript
$(rtld-link) -Wl,-soname=$(rtld-installed-name)
RTLD-VERSIONS=$(addprefix -Wl,--version-script=,$(libc-map))
define rtld-link
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
-Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \

View file

@ -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;

View file

@ -1,5 +1,5 @@
/* obstack.h - object stack macros
Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
Copyright (C) 1988,89,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
@ -116,45 +116,39 @@ extern "C" {
may ignore the byte-within-word field of the pointer. */
#ifndef __PTR_TO_INT
#define __PTR_TO_INT(P) ((P) - (char *) 0)
# define __PTR_TO_INT(P) ((P) - (char *) 0)
#endif
#ifndef __INT_TO_PTR
#define __INT_TO_PTR(P) ((P) + (char *) 0)
# define __INT_TO_PTR(P) ((P) + (char *) 0)
#endif
/* We need the type of the resulting object. In ANSI C it is ptrdiff_t
but in traditional C it is usually long. If we are in ANSI C and
don't already have ptrdiff_t get it. */
/* 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. */
#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
#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))
#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))
#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__ */

View file

@ -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;
}

View file

@ -279,7 +279,12 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
if (! no_more)
status = (*sfct) (STAYOPEN_TMPVAR);
else
status = NSS_STATUS_NOTFOUND;
{
status = NSS_STATUS_NOTFOUND;
if (no_more == 1)
/* There is no more module to search. */
break;
}
}
while (! no_more && status != NSS_STATUS_SUCCESS);
}

View file

@ -201,7 +201,7 @@ get_next_alias (const char *match, struct aliasent *result,
lines until the next line containing the start of a new
alias is found. */
ignore = (match != NULL
&& strcasecmp (result->alias_name, match) != 0);
&& __strcasecmp (result->alias_name, match) != 0);
while (! ignore)
{

View file

@ -235,7 +235,7 @@ parse_list (char *line, struct parser_data *data, size_t datalen, int *errnop)
#define LOOKUP_NAME_CASE(nameelt, aliaselt) \
{ \
char **ap; \
if (! strcasecmp (name, result->nameelt)) \
if (! __strcasecmp (name, result->nameelt)) \
break; \
for (ap = result->aliaselt; *ap; ++ap) \
if (! strcasecmp (name, *ap)) \

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -136,7 +136,8 @@ __nss_database_lookup (const char *database, const char *alternate_name,
/* -1 == not found
0 == adjusted for next function */
0 == adjusted for next function
1 == finished */
int
__nss_lookup (service_user **ni, const char *fct_name, void **fctp)
{
@ -151,7 +152,7 @@ __nss_lookup (service_user **ni, const char *fct_name, void **fctp)
*fctp = nss_lookup_function (*ni, fct_name);
}
return *fctp != NULL ? 0 : -1;
return *fctp != NULL ? 0 : (*ni)->next == NULL ? 1 : -1;
}

View file

@ -1,5 +1,5 @@
/* Declarations of socket constants, types, and functions.
Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -160,7 +160,7 @@ extern int getsockopt __P ((int __fd, int __level, int __optname,
to *OPTVAL (which is OPTLEN bytes long).
Returns 0 on success, -1 for errors. */
extern int setsockopt __P ((int __fd, int __level, int __optname,
__ptr_t __optval, socklen_t __optlen));
__const __ptr_t __optval, socklen_t __optlen));
/* Prepare to accept connections on socket FD.

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,7 +16,6 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "../locale/localeinfo.h"
#include <errno.h>
#include <limits.h>
#include <ctype.h>
@ -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)
{

View file

@ -22,7 +22,7 @@
subdir := stdlib
headers := stdlib.h alloca.h monetary.h fmtmsg.h ucontext.h sys/ucontext.h \
inttypes.h
inttypes.h stdint.h
routines := \
atof atoi atol atoll \

View file

@ -1,3 +1,5 @@
make_siglist.c signame.c signame.h
det_endian.c
entry.h
getresgid.c
getresuid.c

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

1
sysdeps/generic/stdint.h Normal file
View file

@ -0,0 +1 @@
#error "This file must be written based on the data type sizes of the target"

View file

@ -1,5 +1,5 @@
/* System-specific socket constants and types. Linux version.
Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -70,7 +70,7 @@ enum __socket_type
#define PF_DECnet 12 /* Reserved for DECnet project */
#define PF_NETBEUI 13 /* Reserved for 802.2LLC project*/
#define PF_SECURITY 14 /* Security callback pseudo AF */
#define pseudo_PF_KEY 15 /* PF_KEY key management API */
#define PF_KEY 15 /* PF_KEY key management API */
#define PF_NETLINK 16
#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD */
#define PF_PACKET 17 /* Packet family */
@ -94,7 +94,7 @@ enum __socket_type
#define AF_DECnet PF_DECnet
#define AF_NETBEUI PF_NETBEUI
#define AF_SECURITY PF_SECURITY
#define AF_KEY pseudo_PF_KEY
#define pseudo_AF_KEY PF_KEY
#define AF_NETLINK PF_NETLINK
#define AF_ROUTE PF_ROUTE
#define AF_PACKET PF_PACKET

View file

@ -45,11 +45,7 @@ symbol_version (__old_sys_errlist, _sys_errlist, GLIBC_2.0);
symbol_version (_old_sys_errlist, sys_errlist, GLIBC_2.0);
strong_alias (__new_sys_nerr, _new_sys_nerr)
#if 0
default_symbol_version (__new_sys_nerr, _sys_nerr, GLIBC_2.1);
#else
strong_alias (__new_sys_nerr, _sys_nerr);
#endif
default_symbol_version (_new_sys_nerr, sys_nerr, GLIBC_2.1);
strong_alias (__new_sys_errlist, _new_sys_errlist)
default_symbol_version (__new_sys_errlist, _sys_errlist, GLIBC_2.1);

View file

@ -21,6 +21,9 @@
#include <linux/posix_types.h>
#include <sys/syscall.h>
#ifdef __NR_getresgid
extern int __syscall_getresgid (__kernel_gid_t *rgid, __kernel_gid_t *egid,
__kernel_gid_t *sgid);
@ -37,3 +40,6 @@ getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)
*sgid = (gid_t) k_sgid;
return 0;
}
#else
# include <sysdeps/generic/getresgid.c>
#endif

View file

@ -21,6 +21,9 @@
#include <linux/posix_types.h>
#include <sys/syscall.h>
#ifdef __NR_getresuid
extern int __syscall_getresuid (__kernel_uid_t *ruid, __kernel_uid_t *euid,
__kernel_uid_t *suid);
@ -37,3 +40,6 @@ getresuid (uid_t *ruid, uid_t *euid, uid_t *suid)
*suid = (uid_t) k_suid;
return 0;
}
#else
# include <sysdeps/generic/getresuid.c>
#endif

View file

@ -1,5 +1,5 @@
/* Poll system call, with emulation if it is not available.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,6 +20,9 @@
#include <errno.h>
#include <sys/poll.h>
#include <sys/syscall.h>
#ifdef __NR_poll
extern int __syscall_poll __P ((struct pollfd *fds, unsigned int nfds,
int timeout));
weak_extern (__syscall_poll)
@ -58,6 +61,7 @@ poll (fds, nfds, timeout)
/* Get the emulation code. */
#define poll(fds, nfds, timeout) \
# define poll(fds, nfds, timeout) \
static internal_function __emulate_poll (fds, nfds, timeout)
#endif
#include <sysdeps/unix/bsd/poll.c>

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -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;
/* Get the type definitions. */
#include <stdint.h>
/* 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)
/* 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"
# define SCNdPTR "d"
# define SCNiPTR "i"
# define SCNoPTR "o"
# define SCNxPTR "x"
#endif /* C++ && format macros */
/* 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)
/* 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 */

View file

@ -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 */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -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;
/* Get the type definitions. */
#include <stdint.h>
/* 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)
/* 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"
# define SCNdPTR "ld"
# define SCNiPTR "li"
# define SCNoPTR "lo"
# define SCNxPTR "lx"
#endif /* C++ && format macros */
/* 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)
/* 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 */

View file

@ -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 */

View file

@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -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)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 93, 95, 96, 97, 98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -24,7 +24,7 @@
#include <unistd.h>
#define NOID
#include <tzfile.h>
#include <timezone/tzfile.h>
int __use_tzfile = 0;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -32,7 +32,7 @@ extern const unsigned short int __mon_yday[2][13];
extern struct tm _tmbuf;
#define NOID
#include "tzfile.h"
#include <timezone/tzfile.h>
extern int __use_tzfile;
extern void __tzfile_read __P ((const char *file));
@ -40,7 +40,7 @@ extern int __tzfile_compute __P ((time_t timer, int use_localtime,
long int *leap_correct, int *leap_hit));
extern void __tzfile_default __P ((const char *std, const char *dst,
long int stdoff, long int dstoff));
extern char * __tzstring __P ((const char *string));
extern char *__tzstring __P ((const char *string));
char *__tzname[2] = { (char *) "GMT", (char *) "GMT" };
int __daylight = 0;

196
timezone/Makefile Normal file
View file

@ -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)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -69,7 +69,7 @@ typedef unsigned long int wctype_t;
# if __BYTE_ORDER == __BIG_ENDIAN
# define _ISwbit(bit) (1 << bit)
# else /* __BYTE_ORDER == __LITTLE_ENDIAN */
# define _ISwbit(bit) (bit < 8 ? 1UL << (bit + 24) : 1UL << (bit + 8))
# define _ISwbit(bit) (bit < 8 ? 1UL << bit << 24 : 1UL << (bit + 8))
# endif
enum