diff options
37 files changed, 307 insertions, 41 deletions
@@ -1,3 +1,73 @@ +1998-07-09 13:34 Ulrich Drepper <drepper@cygnus.com> + + * grp/grp.h: Define gid_t also for __USE_XOPEN. + * io/fcntl.h: Include <sys/stat.h> also for __USE_XOPEN. + * io/utime.h: Define time_t also for __USE_XOPEN. + * io/sys/stat.h: Define time_t also for __USE_XOPEN. + Define *_t types except for pid_t also for __USE_XOPEN. + Define S_* macros also for __USE_XOPEN. + * locale/langinfo.h: Define CODESET, CRNCYSTR, RADIXCHAR, and + THOUSEP also for __USE_XOPEN. + * math/math.c: Define M_* macros also for __USE_XOPEN. + * math/bits/mathcalls.h: Declare hypot also for __USE_XOPEN. + * posix/fnmatch.h: Define FNM_NOSYS and for if _XOPEN_SOURCE is + defined. + * posix/glob.h: Likewise for GLOB_NOSYS. + * posix/regex.h: Likewise for REG_NOSYS. + * posix/wordexp.h: Likewise for WRDE_NOSYS. + * posix/unistd.h: Define *_t types also for __USE_XOPEN. + * posix/sys/wait.h: Define pid_t for __USE_XOPEN. + * pwd/pwd.h: Define gid_t and pid_t also for __USE_XOPEN. + * signal/signal.h: Define pid_t also fir __USE_XOPEN. + * sysdeps/unix/sysv/linux/bits/fcntl.h: Define _RSYNC and O_DSYNC also + for __USE_POSIX199309. + * sysdeps/unix/sysv/linux/bits/termios.h: Define the various B* + constants also for __USE_XOPEN. + * wcsmbs/wchar.h: For XPG4 include wctype.h. + + * intl/dcgettext.c (find_msg): Initialize act to prevent warning. + * locale/setlocale.c (new_composite_name): Likewise for last_len. + + * libio/stdio.h: Don't declare fclose_unlocked. + + * sysdeps/posix/fpathconf.c: Handle _PC_FILESIZEBITS. + +1998-07-08 Mark Kettenis <kettenis@phys.uva.nl> + + * stdio/stdio.h: Add prototypes for fflush_unlocked, + getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked, + fgets_unlocked, fread_unlocked, fwrite_unlocked, + clearerr_unlocked, feof_unlocked, ferror_unlocked, + fileno_unlocked, flockfile, ftrylockfile, funlockfile. + [__USE_XOPEN && !__USE_GNU] Declare optarg, optind, opterr. Add + prototype for getopt. + * stdio/clearerr.c (clearerr_unlocked): Weak alias for clearerr. + * stdio/feof.c (feof_unlocked): Weak alias for feof. + * stdio/ferror.c (ferror_unlocked): Weak alias for ferror. + * stdio/fflush.c (fflush_unlocked): Weak alias for fflush. + * stdio/fgets.c (fgets_unlocked): Weak alias for fgets. + * stdio/fileno.c (fileno_unlocked): Weak alias for fileno. + * stdio/fputc.c (fputc_unlocked): Weak alias for fputc. + * stdio/fread.c (fread_unlocked): Weak alias for fread. + * stdio/fwrite.c (fwrite_unlocked): Weak alias for fwrite. + * stdio/getc.c (getchar_unlocked): Weak alias for getc. + * stdio/getchar.c (getchar_unlocked): Weak alias for getchar. + * stdio/putc.c (putc_unlocked): Weak alias for putc. + * stdio/putchar.c (putchar_unlocked): Weak alias for putchar. + * stdio/Versions [GLIBC_2.1]: Add clearerr_unlocked, + feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked, + fileno_unlocked, fputc_unlocked, fread_unlocked, fwrite_unlocked, + getc_unlocked, getchar_unlocked, putc_unlocked and + putchar_unlocked. + + * libio/Versions: Move flockfile, ftrylockfile and funlockfile + from here ... + * stdio-common/Versions: ... to here. + +1998-07-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * Makerules (versioning): Correct typo. + 1998-07-08 22:18 Ulrich Drepper <drepper@cygnus.com> * elf/Versions: Add _dl_mcount_wrapper_check. diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 4c4cfdf84c..b6406691ed 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -7,6 +7,10 @@ * mutex.c: Define __pthread_mutexattr_gettype and __pthread_mutexattr_settype. * weak.c: Likewise. + * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and + __pthread_mutexattr_settype. + * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive): + Use __pthread_mutexattr_settype. 1998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com> diff --git a/linuxthreads/sysdeps/pthread/bits/libc-lock.h b/linuxthreads/sysdeps/pthread/bits/libc-lock.h index ed64cbfa0f..7d336bed52 100644 --- a/linuxthreads/sysdeps/pthread/bits/libc-lock.h +++ b/linuxthreads/sysdeps/pthread/bits/libc-lock.h @@ -63,7 +63,7 @@ typedef pthread_key_t __libc_key_t; { \ pthread_mutexattr_t __attr; \ __pthread_mutexattr_init (&__attr); \ - __pthread_mutexattr_setkind_np (&__attr, PTHREAD_MUTEX_RECURSIVE_NP); \ + __pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP); \ __pthread_mutex_init (&(NAME), &__attr); \ __pthread_mutexattr_destroy (&__attr); \ } \ diff --git a/linuxthreads/sysdeps/pthread/pthread.h b/linuxthreads/sysdeps/pthread/pthread.h index 5ae6211c85..6d2bd0f2fa 100644 --- a/linuxthreads/sysdeps/pthread/pthread.h +++ b/linuxthreads/sysdeps/pthread/pthread.h @@ -318,10 +318,14 @@ extern int pthread_mutexattr_destroy __P ((pthread_mutexattr_t *__attr)); /* Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL, PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or PTHREAD_MUTEX_DEFAULT). */ +extern int __pthread_mutexattr_settype __P ((pthread_mutexattr_t *__attr, + int __kind)); extern int pthread_mutexattr_settype __P ((pthread_mutexattr_t *__attr, int __kind)); /* Return in *KIND the mutex kind attribute in *ATTR. */ +extern int __pthread_mutexattr_gettype __P ((__const pthread_mutexattr_t *__attr, + int *__kind)); extern int pthread_mutexattr_gettype __P ((__const pthread_mutexattr_t *__attr, int *__kind)); #endif diff --git a/locale/langinfo.h b/locale/langinfo.h index 10e8dd249e..31fae92fe2 100644 --- a/locale/langinfo.h +++ b/locale/langinfo.h @@ -1,5 +1,5 @@ /* Access to locale-dependent parameters. - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 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 @@ -207,7 +207,7 @@ enum _NL_CTYPE_WIDTH, _NL_CTYPE_MB_CUR_MAX, _NL_CTYPE_CODESET_NAME, -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN CODESET = _NL_CTYPE_CODESET_NAME, #endif _NL_NUM_LC_CTYPE, @@ -219,7 +219,7 @@ enum #define INT_CURR_SYMBOL INT_CURR_SYMBOL CURRENCY_SYMBOL, #define CURRENCY_SYMBOL CURRENCY_SYMBOL -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN CRNCYSTR = CURRENCY_SYMBOL, # define CRNCYSTR CRNCYSTR #endif @@ -255,13 +255,13 @@ enum These also correspond to members of `struct lconv'; see <locale.h>. */ DECIMAL_POINT = _NL_ITEM (LC_NUMERIC, 0), #define DECIMAL_POINT DECIMAL_POINT -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN RADIXCHAR = DECIMAL_POINT, # define RADIXCHAR RADIXCHAR #endif THOUSANDS_SEP, #define THOUSANDS_SEP THOUSANDS_SEP -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN THOUSEP = THOUSANDS_SEP, #define THOUSANDS_SEP THOUSANDS_SEP #endif diff --git a/locale/setlocale.c b/locale/setlocale.c index 54ca416887..cde5b6a4fc 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -133,7 +133,7 @@ __libc_lock_define_initialized (, __libc_setlocale_lock) static inline char * new_composite_name (int category, const char *newnames[LC_ALL]) { - size_t last_len; + size_t last_len = 0; size_t cumlen = 0; int i; char *new, *p; diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index 67e86a7d51..30bbb7c0aa 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -145,10 +145,12 @@ __MATHCALL (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); -#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X +#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC9X /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); +#endif +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X /* Return the cube root of X. */ __MATHCALL (cbrt,, (_Mdouble_ __x)); #endif diff --git a/math/math.h b/math/math.h index a5d5b504f2..2ac6f11032 100644 --- a/math/math.h +++ b/math/math.h @@ -269,7 +269,7 @@ extern int matherr __P ((struct exception *__exc)); /* Some useful constants. */ -#if defined __USE_BSD || defined __USE_UNIX98 +#if defined __USE_BSD || defined __USE_XOPEN # define M_E 2.7182818284590452354 /* e */ # define M_LOG2E 1.4426950408889634074 /* log_2 e */ # define M_LOG10E 0.43429448190325182765 /* log_10 e */ diff --git a/posix/fnmatch.h b/posix/fnmatch.h index 4d1eb3e2d3..0966ee301a 100644 --- a/posix/fnmatch.h +++ b/posix/fnmatch.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 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 @@ -66,7 +66,7 @@ extern "C" { `fnmatch'. Since this is not the case here it will never be returned but the conformance test suites still require the symbol to be defined. */ -#if (_XOPEN_SOURCE - 0) == 500 +#ifdef _XOPEN_SOURCE # define FNM_NOSYS (-1) #endif diff --git a/posix/glob.h b/posix/glob.h index 0b7808b15c..5a8e48c196 100644 --- a/posix/glob.h +++ b/posix/glob.h @@ -84,7 +84,7 @@ extern "C" { `glob'. Since this is not the case here it will never be returned but the conformance test suites still require the symbol to be defined. */ -#if (_XOPEN_SOURCE - 0) == 500 +#ifdef _XOPEN_SOURCE # define GLOB_NOSYS (-1) #endif diff --git a/posix/regex.h b/posix/regex.h index 0efef36e66..2bca5378a4 100644 --- a/posix/regex.h +++ b/posix/regex.h @@ -282,7 +282,7 @@ extern reg_syntax_t re_syntax_options; `re_error_msg' table in regex.c. */ typedef enum { -#if (_XOPEN_SOURCE - 0) == 500 +#ifdef _XOPEN_SOURCE REG_ENOSYS = -1, /* This will never happen for this implementation. */ #endif diff --git a/posix/sys/wait.h b/posix/sys/wait.h index ed904d909b..1eeac91200 100644 --- a/posix/sys/wait.h +++ b/posix/sys/wait.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 96, 97 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 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 @@ -29,7 +29,7 @@ __BEGIN_DECLS #include <bits/types.h> -#if defined __USE_UNIX98 && !defined pid_t +#if defined __USE_XOPEN && !defined pid_t typedef __pid_t pid_t; # define pid_t pid_t #endif diff --git a/posix/unistd.h b/posix/unistd.h index fa28d94d1e..d56c56d45a 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -198,7 +198,7 @@ typedef __ssize_t ssize_t; #define __need_NULL #include <stddef.h> -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN /* The Single Unix specification says that some more types are available here. */ # ifndef gid_t @@ -228,7 +228,9 @@ typedef __off64_t off64_t; typedef __pid_t pid_t; # define pid_t pid_t # endif +#endif /* X/Open */ +#ifdef __USE_UNIX98 # ifndef intptr_t typedef __intptr_t intptr_t; # define intptr_t intptr_t @@ -1055,7 +1057,7 @@ extern void swab __P ((__const __ptr_t __from, __ptr_t __to, ssize_t __n)); /* The Single Unix specification, version 2, demands these prototypes to be here. They are also found in <stdio.h>. */ -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN /* Return the name of the controlling terminal. */ extern char *ctermid __P ((char *__s)); @@ -1063,7 +1065,12 @@ extern char *ctermid __P ((char *__s)); used and might go away some time. */ extern char *cuserid __P ((char *__s)); +/* Rename file OLD to NEW. */ +extern int rename __P ((__const char *__old, __const char *__new)); +#endif + +#if defined __USE_POSIX199309 || defined __USE_UNIX98 /* This function is only available if the system has POSIX threads. */ /* Install handlers to be called when a new process is created with FORK. diff --git a/posix/wordexp.h b/posix/wordexp.h index cd5fba9b41..2bdce27f93 100644 --- a/posix/wordexp.h +++ b/posix/wordexp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 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 @@ -47,7 +47,7 @@ typedef struct /* Possible nonzero return values from `wordexp'. */ enum { -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN WRDE_NOSYS = -1, /* Never used since we support `wordexp'. */ #endif WRDE_NOSPACE = 1, /* Ran out of memory. */ @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 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 @@ __BEGIN_DECLS #define __need_size_t #include <stddef.h> -#ifdef __USE_UNIX98 +#ifdef __USE_XOPEN /* The Single Unix specification says that some more types are available here. */ # ifndef gid_t diff --git a/signal/signal.h b/signal/signal.h index c803a5bec4..5d63375947 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -32,7 +32,7 @@ __BEGIN_DECLS #include <bits/types.h> #include <bits/sigset.h> /* __sigset_t, __sig_atomic_t. */ -#if defined _SIGNAL_H && defined __USE_UNIX98 && !defined pid_t +#if defined _SIGNAL_H && defined __USE_XOPEN && !defined pid_t typedef __pid_t pid_t; # define pid_t pid_t #endif /* Unix98 */ diff --git a/stdio-common/Versions b/stdio-common/Versions index d38ef7e123..6191e0b97d 100644 --- a/stdio-common/Versions +++ b/stdio-common/Versions @@ -20,7 +20,7 @@ libc { dprintf; # f* - fprintf; fscanf; + flockfile; fprintf; fscanf; ftrylockfile; funlockfile; # g* getline; getw; diff --git a/stdio/Versions b/stdio/Versions index 2dfd4a8de0..e3df0765a6 100644 --- a/stdio/Versions +++ b/stdio/Versions @@ -47,5 +47,18 @@ libc { GLIBC_2.1 { # functions used in other libraries __asprintf; + + # c* + clearerr_unlocked; + + # f* + feof_unlocked; ferror_unlocked; fflush_unlocked; fgets_unlocked; + fileno_unlocked; fputc_unlocked; fread_unlocked; fwrite_unlocked; + + # g* + getc_unlocked; getchar_unlocked; + + # p* + putc_unlocked; putchar_unlocked; } } diff --git a/stdio/clearerr.c b/stdio/clearerr.c index b602576fa9..37b82ee873 100644 --- a/stdio/clearerr.c +++ b/stdio/clearerr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 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 @@ -28,3 +28,5 @@ clearerr (FILE *stream) { __clearerr (stream); } + +weak_alias (clearerr, clearerr_unlocked) diff --git a/stdio/fclose.c b/stdio/fclose.c index 4fda20b4ac..f49af03076 100644 --- a/stdio/fclose.c +++ b/stdio/fclose.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 1996, 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 diff --git a/stdio/feof.c b/stdio/feof.c index 79e7f59975..86d36b7760 100644 --- a/stdio/feof.c +++ b/stdio/feof.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1996, 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,7 +20,7 @@ #include <stdio.h> #undef feof - +#undef feof_unlocked /* Return non-zero if STREAM has its EOF indicator set. */ int @@ -35,3 +35,5 @@ feof (stream) return stream->__eof; } + +weak_alias (feof, feof_unlocked) diff --git a/stdio/ferror.c b/stdio/ferror.c index 5665db22be..eaa5fc9826 100644 --- a/stdio/ferror.c +++ b/stdio/ferror.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 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 @@ -20,6 +20,7 @@ #include <stdio.h> #undef ferror +#undef ferror_unlocked /* Return non-zero if STREAM has its error indicator set. */ @@ -35,3 +36,5 @@ ferror (stream) return stream->__error; } + +weak_alias (ferror, ferror_unlocked) diff --git a/stdio/fflush.c b/stdio/fflush.c index 601fe4eada..e635f518af 100644 --- a/stdio/fflush.c +++ b/stdio/fflush.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1996, 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 @@ -43,3 +43,5 @@ fflush (stream) return __flshfp (stream, EOF); } + +weak_alias(fflush, fflush_unlocked) diff --git a/stdio/fgets.c b/stdio/fgets.c index 3d6833d089..4fbb4025de 100644 --- a/stdio/fgets.c +++ b/stdio/fgets.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 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 @@ -121,3 +121,5 @@ fgets (s, n, stream) *p = '\0'; return ferror (stream) ? NULL : s; } + +weak_alias (fgets, fgets_unlocked) diff --git a/stdio/fileno.c b/stdio/fileno.c index b6a20cd72b..e97c2f6e82 100644 --- a/stdio/fileno.c +++ b/stdio/fileno.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1994, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 93, 94, 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 @@ -46,3 +46,5 @@ fileno (stream) return (*stream->__io_funcs.__fileno) (stream->__cookie); } + +weak_alias(fileno, fileno_unlocked) diff --git a/stdio/fputc.c b/stdio/fputc.c index fc7ce5b179..754b4f9547 100644 --- a/stdio/fputc.c +++ b/stdio/fputc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 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 @@ -34,3 +34,5 @@ fputc (c, stream) return __putc (c, stream); } + +weak_alias (fputc, fputc_unlocked) diff --git a/stdio/fread.c b/stdio/fread.c index 80c3d44c23..b0fe36bc28 100644 --- a/stdio/fread.c +++ b/stdio/fread.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 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 @@ -131,3 +131,5 @@ fread (p, size, nmemb, stream) return (bytes - to_read) / size; } + +weak_alias (fread, fread_unlocked) diff --git a/stdio/fwrite.c b/stdio/fwrite.c index bd07c9edfb..236974388f 100644 --- a/stdio/fwrite.c +++ b/stdio/fwrite.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 96, 97 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 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 @@ -218,3 +218,5 @@ fwrite (ptr, size, nmemb, stream) done:; return (size_t) written / size; } + +weak_alias (fwrite, fwrite_unlocked) diff --git a/stdio/getc.c b/stdio/getc.c index 0d34a1cc6c..eee136a902 100644 --- a/stdio/getc.c +++ b/stdio/getc.c @@ -2,3 +2,5 @@ #undef getc #define fgetc getc #include <fgetc.c> + +weak_alias (getc, getc_unlocked) diff --git a/stdio/getchar.c b/stdio/getchar.c index 2b1cb92bf2..cbcbffd023 100644 --- a/stdio/getchar.c +++ b/stdio/getchar.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 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 @@ -27,3 +27,5 @@ getchar (void) { return __getc (stdin); } + +weak_alias (getchar, getchar_unlocked) diff --git a/stdio/putc.c b/stdio/putc.c index cd3012626f..f92ef303b8 100644 --- a/stdio/putc.c +++ b/stdio/putc.c @@ -1,4 +1,5 @@ #include <stdio.h> #undef putc #define fputc putc +#define fputc_unlocked putc_unlocked #include <fputc.c> diff --git a/stdio/putchar.c b/stdio/putchar.c index f90a9c0a4c..6f8268bbad 100644 --- a/stdio/putchar.c +++ b/stdio/putchar.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 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 @@ -27,3 +27,5 @@ putchar (int c) { return __putc (c, stdout); } + +weak_alias (putchar, putchar_unlocked) diff --git a/stdio/stdio.h b/stdio/stdio.h index dd4dd6db0d..eac8bd41b1 100644 --- a/stdio/stdio.h +++ b/stdio/stdio.h @@ -333,6 +333,11 @@ extern int fclose __P ((FILE *__stream)); /* Flush STREAM, or all streams if STREAM is NULL. */ extern int fflush __P ((FILE *__stream)); +#ifdef __USE_MISC +/* Faster versions when locking is not required. */ +extern int fflush_unlocked __P ((FILE *__stream)); +#endif + #ifdef __USE_GNU /* Close all streams. */ extern int __fcloseall __P ((void)); @@ -543,6 +548,26 @@ getchar (void) } #endif /* Optimizing. */ +#if defined __USE_POSIX || defined __USE_MISC +/* These are defined in POSIX.1:1996. */ +extern int getc_unlocked __P ((FILE *__stream)); +extern int getchar_unlocked __P ((void)); + +# ifdef __OPTIMIZE__ +extern __inline int +getc_unlocked (FILE *__stream) +{ + return __getc (__stream); +} + +extern __inline int +getchar_unlocked (void) +{ + return __getc (stdin); +} +# endif /* Optimizing. */ +#endif /* Use POSIX or MISC. */ + /* Write a character to STREAM. */ extern int fputc __P ((int __c, FILE *__stream)); @@ -571,6 +596,39 @@ putchar (int __c) } #endif +#ifdef __USE_MISC +/* Faster version when locking is not necessary. */ +extern int fputc_unlocked __P ((int __c, FILE *__stream)); + +# ifdef __OPTIMIZE__ +extern __inline int +fputc_unlocked (int __c, FILE *__stream) +{ + return __putc (__c, __stream); +} +# endif /* Optimizing. */ +#endif /* Use MISC. */ + +#if defined __USE_POSIX || defined __USE_MISC +/* These are defined in POSIX.1:1996. */ +extern int putc_unlocked __P ((int __c, FILE *__stream)); +extern int putchar_unlocked __P ((int __c)); + +# ifdef __OPTIMIZE__ +extern __inline int +putc_unlocked (int __c, FILE *__stream) +{ + return __putc (__c, __stream); +} + +extern __inline int +putchar_unlocked (int __c) +{ + return __putc (__c, stdout); +} +# endif /* Optimizing. */ +#endif /* Use POSIX or MISC. */ + #if defined __USE_SVID || defined __USE_MISC /* Get a word (int) from STREAM. */ @@ -585,6 +643,12 @@ extern int putw __P ((int __w, FILE *__stream)); extern char *fgets __P ((char *__restrict __s, int __n, FILE *__restrict __stream)); +#ifdef __USE_GNU +/* This function does the same as `fgets' but does not lock the stream. */ +extern char *fgets_unlocked __P ((char *__restrict __s, int __n, + FILE *__restrict __stream)); +#endif + /* Get a newline-terminated string from stdin, removing the newline. DO NOT USE THIS FUNCTION!! There is no limit on how much it will read. */ extern char *gets __P ((char *__s)); @@ -635,6 +699,15 @@ extern size_t fread __P ((__ptr_t __restrict __ptr, size_t __size, extern size_t fwrite __P ((__const __ptr_t __restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s)); +#ifdef __USE_MISC +/* Faster versions when locking is not necessary. */ +extern size_t fread_unlocked __P ((void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream)); +extern size_t fwrite_unlocked __P ((__const void *__restrict __ptr, + size_t __size, size_t __n, + FILE *__restrict __stream)); +#endif + /* Seek to a certain position on STREAM. */ extern int fseek __P ((FILE *__stream, long int __off, int __whence)); @@ -661,6 +734,17 @@ extern int ferror __P ((FILE *__stream)); #define ferror(stream) ((stream)->__error != 0) #endif /* Optimizing. */ +#ifdef __USE_MISC +/* Faster versions when locking is not required. */ +extern void clearerr_unlocked __P ((FILE *__stream)); +extern int feof_unlocked __P ((FILE *__stream)); +extern int ferror_unlocked __P ((FILE *__stream)); + +# ifdef __OPTIMIZE__ +# define feof_unlocked(stream) ((stream)->__eof != 0) +# define ferror_unlocked(stream) ((stream)->__error != 0) +# endif /* Optimizing. */ +#endif /* Print a message describing the meaning of the value of errno. */ extern void perror __P ((__const char *__s)); @@ -680,6 +764,11 @@ extern const char *const _sys_errlist[]; extern int fileno __P ((FILE *__stream)); #endif /* Use POSIX. */ +#ifdef __USE_MISC +/* Faster version when locking is not required. */ +extern int fileno_unlocked __P ((FILE *__stream)); +#endif + #if (defined __USE_POSIX2 || defined __USE_SVID || defined __USE_BSD || \ defined __USE_MISC) @@ -718,6 +807,35 @@ extern int obstack_vprintf __P ((struct obstack *__obstack, #endif +#if defined __USE_POSIX || defined __USE_MISC +/* These are defined in POSIX.1:1996. */ + +/* Acquire ownership of STREAM. */ +extern void flockfile __P ((FILE *__stream)); + +/* Try to acquire ownership of STREAM but do not block if it is not + possible. */ +extern int ftrylockfile __P ((FILE *__stream)); + +/* Relinquish the ownership granted for STREAM. */ +extern void funlockfile __P ((FILE *__stream)); +#endif /* POSIX || misc */ + +#if defined __USE_XOPEN && !defined __USE_GNU +/* The X/Open standard requires some functions and variables to be + declared here which do not belong into this header. But we have to + follow. In GNU mode we don't do this nonsense. */ + +/* For more information on these symbols look in <getopt.h>. */ +extern char *optarg; +extern int optind; +extern int opterr; +extern int optopt; + +extern int getopt __P ((int __argc, char *__const *__argv, + __const char *__shortopts)); +#endif + __END_DECLS #endif /* <stdio.h> included. */ diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c index 31e1d4bbfa..b73292bef0 100644 --- a/sysdeps/posix/fpathconf.c +++ b/sysdeps/posix/fpathconf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 1996, 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 @@ -146,7 +146,16 @@ __fpathconf (fd, name) #else return -1; #endif + + case _PC_FILESIZEBITS: +#ifdef FILESIZEBITS + return FILESIZEBITS; +#else + /* We let platforms with larger file sizes overwrite this value. */ + return 32; +#endif } } +#undef __fpathconf weak_alias (__fpathconf, fpathconf) diff --git a/sysdeps/unix/sysv/linux/bits/fcntl.h b/sysdeps/unix/sysv/linux/bits/fcntl.h index f63e8ce4eb..53018b7dc7 100644 --- a/sysdeps/unix/sysv/linux/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/bits/fcntl.h @@ -44,7 +44,7 @@ /* For now Linux has synchronisity options for data and read operations. We define the symbols here but let them do the same as O_SYNS since this is a superset. */ -#ifdef __USE_UNIX98 +#if defined __USE_POSIX199309 || defined __USE_UNIX98 # define O_DSYNC O_SYNC /* Synchronize data. */ # define O_RSYNC O_SYNC /* Synchronize read operations. */ #endif diff --git a/sysdeps/unix/sysv/linux/bits/termios.h b/sysdeps/unix/sysv/linux/bits/termios.h index 09a3f98a36..b3d760462e 100644 --- a/sysdeps/unix/sysv/linux/bits/termios.h +++ b/sysdeps/unix/sysv/linux/bits/termios.h @@ -1,5 +1,5 @@ /* termios type and macro definitions. Linux version. - Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1993, 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 @@ -82,7 +82,7 @@ struct termios #define ONLRET 0000040 #define OFILL 0000100 #define OFDEL 0000200 -#if defined __USE_MISC || defined __USE_UNIX98 +#if defined __USE_MISC || defined __USE_XOPEN # define NLDLY 0000400 # define NL0 0000000 # define NL1 0000400 @@ -162,7 +162,7 @@ struct termios /* c_lflag bits */ #define ISIG 0000001 #define ICANON 0000002 -#if defined __USE_MISC || defined __USE_UNIX98 +#if defined __USE_MISC || defined __USE_XOPEN # define XCASE 0000004 #endif #define ECHO 0000010 diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h index 48ed81b33b..8902c3f382 100644 --- a/wcsmbs/wchar.h +++ b/wcsmbs/wchar.h @@ -66,6 +66,12 @@ typedef struct # define WEOF (0xffffffffu) #endif +/* For XPG4 compliance we have to define the stuff from <wctype.h> here + as well. */ +#if defined __USE_XOPEN && !defined __USE_UNIX98 +# include <wctype.h> +#endif + /* This incomplete type is defined in <time.h> but needed here because of `wcsftime'. */ struct tm; @@ -160,6 +166,13 @@ extern wchar_t *wcspbrk __P ((__const wchar_t *__wcs, /* Find the first occurrence of NEEDLE in HAYSTACK. */ extern wchar_t *wcsstr __P ((__const wchar_t *__haystack, __const wchar_t *__needle)); + +#if defined __USE_XOPEN && !defined __USE_UNIX98 +/* Another name for `wcsstr' from XPG4. */ +extern wchar_t *wcswcs __P ((__const wchar_t *__haystack, + __const wchar_t *__needle)); +#endif + /* Divide WCS into tokens separated by characters in DELIM. */ extern wchar_t *wcstok __P ((wchar_t *__restrict __s, __const wchar_t *__restrict __delim, |