summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog70
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--linuxthreads/sysdeps/pthread/bits/libc-lock.h2
-rw-r--r--linuxthreads/sysdeps/pthread/pthread.h4
-rw-r--r--locale/langinfo.h10
-rw-r--r--locale/setlocale.c2
-rw-r--r--math/bits/mathcalls.h4
-rw-r--r--math/math.h2
-rw-r--r--posix/fnmatch.h4
-rw-r--r--posix/glob.h2
-rw-r--r--posix/regex.h2
-rw-r--r--posix/sys/wait.h4
-rw-r--r--posix/unistd.h11
-rw-r--r--posix/wordexp.h4
-rw-r--r--pwd/pwd.h4
-rw-r--r--signal/signal.h2
-rw-r--r--stdio-common/Versions2
-rw-r--r--stdio/Versions13
-rw-r--r--stdio/clearerr.c4
-rw-r--r--stdio/fclose.c2
-rw-r--r--stdio/feof.c6
-rw-r--r--stdio/ferror.c5
-rw-r--r--stdio/fflush.c4
-rw-r--r--stdio/fgets.c4
-rw-r--r--stdio/fileno.c4
-rw-r--r--stdio/fputc.c4
-rw-r--r--stdio/fread.c4
-rw-r--r--stdio/fwrite.c4
-rw-r--r--stdio/getc.c2
-rw-r--r--stdio/getchar.c4
-rw-r--r--stdio/putc.c1
-rw-r--r--stdio/putchar.c4
-rw-r--r--stdio/stdio.h118
-rw-r--r--sysdeps/posix/fpathconf.c11
-rw-r--r--sysdeps/unix/sysv/linux/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios.h6
-rw-r--r--wcsmbs/wchar.h13
37 files changed, 307 insertions, 41 deletions
diff --git a/ChangeLog b/ChangeLog
index 6d23e62944..79b11a3d00 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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. */
diff --git a/pwd/pwd.h b/pwd/pwd.h
index ef16963c0e..a254cb05f6 100644
--- a/pwd/pwd.h
+++ b/pwd/pwd.h
@@ -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,