summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2004-10-04 20:18:43 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2004-10-04 20:18:43 +0000
commit1cc46fbf537a89aa60128e84b5973a831221220d (patch)
tree4c930d113bc9fdd3180197fe438900e569423775
parentbe1d0e7285afc1084b86b50ab64e86eb5bb9bb3d (diff)
downloadcoreutils-1cc46fbf537a89aa60128e84b5973a831221220d.tar.xz
Sync from gnulib, to remove dependencies of other modules on unlocked-io.
-rw-r--r--lib/ChangeLog11
-rw-r--r--lib/argmatch.c5
-rw-r--r--lib/closeout.c5
-rw-r--r--lib/error.c2
-rw-r--r--lib/exclude.c5
-rw-r--r--lib/getdate.y4
-rw-r--r--lib/getndelim2.c4
-rw-r--r--lib/getpass.c4
-rw-r--r--lib/getusershell.c10
-rw-r--r--lib/linebuffer.c9
-rw-r--r--lib/md5.c4
-rw-r--r--lib/mountlist.c5
-rw-r--r--lib/posixtm.c5
-rw-r--r--lib/readtokens.c5
-rw-r--r--lib/readutmp.c5
-rw-r--r--lib/regex.c5
-rw-r--r--lib/sha1.c4
-rw-r--r--lib/unlocked-io.h203
-rw-r--r--lib/version-etc.c5
-rw-r--r--lib/yesno.c5
-rw-r--r--m4/ChangeLog6
-rw-r--r--m4/unlocked-io.m424
22 files changed, 213 insertions, 122 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog
index b8d9b08e8..7cb4619f6 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,14 @@
+2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+ * argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
+ getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
+ md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
+ regex.c, sha1.c, version-etc.c, yesno.c:
+ Include "unlocked-io.h" only if USE_UNLOCKED_IO.
+ * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
+ the includer's responsibility.
+
2004-10-03 Paul Eggert <eggert@cs.ucla.edu>
Sync from gnulib.
diff --git a/lib/argmatch.c b/lib/argmatch.c
index ffc638c27..e7c2575c0 100644
--- a/lib/argmatch.c
+++ b/lib/argmatch.c
@@ -39,7 +39,10 @@
#include "exit.h"
#include "quotearg.h"
#include "quote.h"
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
/* When reporting an invalid argument, show nonprinting characters
by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use
diff --git a/lib/closeout.c b/lib/closeout.c
index 3c7bed9c3..16e6f9f67 100644
--- a/lib/closeout.c
+++ b/lib/closeout.c
@@ -32,9 +32,12 @@
#include "error.h"
#include "exitfail.h"
#include "quotearg.h"
-#include "unlocked-io.h"
#include "__fpending.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
static const char *file_name;
/* Set the file name to be reported in the event an error is detected
diff --git a/lib/error.c b/lib/error.c
index 5a5e126b0..94e32fd82 100644
--- a/lib/error.c
+++ b/lib/error.c
@@ -40,7 +40,7 @@
# define mbsrtowcs __mbsrtowcs
#endif
-#if !_LIBC
+#ifdef USE_UNLOCKED_IO
# include "unlocked-io.h"
#endif
diff --git a/lib/exclude.c b/lib/exclude.c
index 4ca2c7856..24146eb93 100644
--- a/lib/exclude.c
+++ b/lib/exclude.c
@@ -35,9 +35,12 @@
#include "exclude.h"
#include "fnmatch.h"
-#include "unlocked-io.h"
#include "xalloc.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII)
# define IN_CTYPE_DOMAIN(c) true
#else
diff --git a/lib/getdate.y b/lib/getdate.y
index 9d948dc12..e8cbfeb6b 100644
--- a/lib/getdate.y
+++ b/lib/getdate.y
@@ -77,7 +77,9 @@
#include <string.h>
-#include "unlocked-io.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
# define __attribute__(x)
diff --git a/lib/getndelim2.c b/lib/getndelim2.c
index 9571e50a8..aef97807a 100644
--- a/lib/getndelim2.c
+++ b/lib/getndelim2.c
@@ -29,7 +29,9 @@
#include <stdlib.h>
#include <stddef.h>
-#include "unlocked-io.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
#include <limits.h>
#if HAVE_INTTYPES_H
diff --git a/lib/getpass.c b/lib/getpass.c
index 9ac01f227..bc8eb4498 100644
--- a/lib/getpass.c
+++ b/lib/getpass.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2001, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
@@ -55,7 +55,7 @@
#if _LIBC
# define flockfile(s) _IO_flockfile (s)
# define funlockfile(s) _IO_funlockfile (s)
-#else
+#elif USE_UNLOCKED_IO
# include "unlocked-io.h"
#endif
diff --git a/lib/getusershell.c b/lib/getusershell.c
index 9b60f18d5..015cb3404 100644
--- a/lib/getusershell.c
+++ b/lib/getusershell.c
@@ -1,5 +1,7 @@
/* getusershell.c -- Return names of valid user shells.
- Copyright (C) 1991, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+ Copyright (C) 1991, 1997, 2000, 2001, 2003, 2004 Free Software
+ Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -34,9 +36,13 @@
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
-#include "unlocked-io.h"
+
#include "xalloc.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
diff --git a/lib/linebuffer.c b/lib/linebuffer.c
index 67d0f1fd7..c12cdbd4a 100644
--- a/lib/linebuffer.c
+++ b/lib/linebuffer.c
@@ -1,7 +1,7 @@
/* linebuffer.c -- read arbitrarily long lines
- Copyright (C) 1986, 1991, 1998, 1999, 2001, 2003 Free Software
- Foundation, Inc.
+ Copyright (C) 1986, 1991, 1998, 1999, 2001, 2003, 2004 Free
+ Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -28,9 +28,12 @@
#include <string.h>
#include <sys/types.h>
#include "linebuffer.h"
-#include "unlocked-io.h"
#include "xalloc.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
/* Initialize linebuffer LINEBUFFER for use. */
void
diff --git a/lib/md5.c b/lib/md5.c
index b938e1ca9..39d2bb4e5 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -29,7 +29,9 @@
#include <stddef.h>
#include <string.h>
-#include "unlocked-io.h"
+#ifdef USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
#ifdef _LIBC
# include <endian.h>
diff --git a/lib/mountlist.c b/lib/mountlist.c
index c9c146336..55071c3fc 100644
--- a/lib/mountlist.c
+++ b/lib/mountlist.c
@@ -134,7 +134,10 @@ char *strstr ();
#endif
#include "mountlist.h"
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t) -1)
diff --git a/lib/posixtm.c b/lib/posixtm.c
index 22f636ebb..1400e5a51 100644
--- a/lib/posixtm.c
+++ b/lib/posixtm.c
@@ -38,7 +38,10 @@
#endif
#include "posixtm.h"
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
/* ISDIGIT differs from isdigit, as follows:
- Its arg may be any int or unsigned int; it need not be an unsigned char.
diff --git a/lib/readtokens.c b/lib/readtokens.c
index 2ccf6a938..9fb611db1 100644
--- a/lib/readtokens.c
+++ b/lib/readtokens.c
@@ -32,9 +32,12 @@
#include <string.h>
#include <stdbool.h>
-#include "unlocked-io.h"
#include "xalloc.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
#define STREQ(a,b) ((a) == (b) || ((a) && (b) && *(a) == *(b) \
&& strcmp(a, b) == 0))
diff --git a/lib/readutmp.c b/lib/readutmp.c
index 91d341a96..ed5889308 100644
--- a/lib/readutmp.c
+++ b/lib/readutmp.c
@@ -27,9 +27,12 @@
#include <stdlib.h>
#include "readutmp.h"
-#include "unlocked-io.h"
#include "xalloc.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
/* Copy UT->ut_name into storage obtained from malloc. Then remove any
trailing spaces from the copy, NUL terminate it, and return the copy. */
diff --git a/lib/regex.c b/lib/regex.c
index 32c151911..45db40e9f 100644
--- a/lib/regex.c
+++ b/lib/regex.c
@@ -583,7 +583,10 @@ typedef enum
# undef INSIDE_RECURSION
# endif
#endif
-#include "unlocked-io.h"
+
+#ifdef USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
#ifdef INSIDE_RECURSION
/* Common operations on the compiled pattern. */
diff --git a/lib/sha1.c b/lib/sha1.c
index c86140caa..2bed14dbb 100644
--- a/lib/sha1.c
+++ b/lib/sha1.c
@@ -31,7 +31,9 @@
#include <stddef.h>
#include <string.h>
-#include "unlocked-io.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
/*
Not-swap is a macro that does an endian swap on architectures that are
diff --git a/lib/unlocked-io.h b/lib/unlocked-io.h
index 36a7a4885..3ff42f279 100644
--- a/lib/unlocked-io.h
+++ b/lib/unlocked-io.h
@@ -1,6 +1,6 @@
/* Prefer faster, non-thread-safe stdio functions if available.
- Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,13 +19,7 @@
/* Written by Jim Meyering. */
#ifndef UNLOCKED_IO_H
-# define UNLOCKED_IO_H 1
-
-# ifndef USE_UNLOCKED_IO
-# define USE_UNLOCKED_IO 1
-# endif
-
-# if USE_UNLOCKED_IO
+#define UNLOCKED_IO_H 1
/* These are wrappers for functions/macros from the GNU C library, and
from other C libraries supporting POSIX's optional thread-safe functions.
@@ -38,95 +32,106 @@
the *_unlocked functions directly. On hosts that lack those
functions, invoke the non-thread-safe versions instead. */
-# include <stdio.h>
-
-# if HAVE_DECL_CLEARERR_UNLOCKED
-# undef clearerr
-# define clearerr(x) clearerr_unlocked (x)
-# else
-# define clearerr_unlocked(x) clearerr (x)
-# endif
-# if HAVE_DECL_FEOF_UNLOCKED
-# undef feof
-# define feof(x) feof_unlocked (x)
-# else
-# define feof_unlocked(x) feof (x)
-# endif
-# if HAVE_DECL_FERROR_UNLOCKED
-# undef ferror
-# define ferror(x) ferror_unlocked (x)
-# else
-# define ferror_unlocked(x) ferror (x)
-# endif
-# if HAVE_DECL_FFLUSH_UNLOCKED
-# undef fflush
-# define fflush(x) fflush_unlocked (x)
-# else
-# define fflush_unlocked(x) fflush (x)
-# endif
-# if HAVE_DECL_FGETS_UNLOCKED
-# undef fgets
-# define fgets(x,y,z) fgets_unlocked (x,y,z)
-# else
-# define fgets_unlocked(x,y,z) fgets (x,y,z)
-# endif
-# if HAVE_DECL_FPUTC_UNLOCKED
-# undef fputc
-# define fputc(x,y) fputc_unlocked (x,y)
-# else
-# define fputc_unlocked(x,y) fputc (x,y)
-# endif
-# if HAVE_DECL_FPUTS_UNLOCKED
-# undef fputs
-# define fputs(x,y) fputs_unlocked (x,y)
-# else
-# define fputs_unlocked(x,y) fputs (x,y)
-# endif
-# if HAVE_DECL_FREAD_UNLOCKED
-# undef fread
-# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
-# else
-# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
-# endif
-# if HAVE_DECL_FWRITE_UNLOCKED
-# undef fwrite
-# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
-# else
-# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
-# endif
-# if HAVE_DECL_GETC_UNLOCKED
-# undef getc
-# define getc(x) getc_unlocked (x)
-# else
-# define getc_unlocked(x) getc (x)
-# endif
-# if HAVE_DECL_GETCHAR_UNLOCKED
-# undef getchar
-# define getchar() getchar_unlocked ()
-# else
-# define getchar_unlocked() getchar ()
-# endif
-# if HAVE_DECL_PUTC_UNLOCKED
-# undef putc
-# define putc(x,y) putc_unlocked (x,y)
-# else
-# define putc_unlocked(x,y) putc (x,y)
-# endif
-# if HAVE_DECL_PUTCHAR_UNLOCKED
-# undef putchar
-# define putchar(x) putchar_unlocked (x)
-# else
-# define putchar_unlocked(x) putchar (x)
-# endif
-
-# undef flockfile
-# define flockfile(x) ((void) 0)
-
-# undef ftrylockfile
-# define ftrylockfile(x) 0
-
-# undef funlockfile
-# define funlockfile(x) ((void) 0)
-
-# endif /* USE_UNLOCKED_IO */
+#include <stdio.h>
+
+#if HAVE_DECL_CLEARERR_UNLOCKED
+# undef clearerr
+# define clearerr(x) clearerr_unlocked (x)
+#else
+# define clearerr_unlocked(x) clearerr (x)
+#endif
+
+#if HAVE_DECL_FEOF_UNLOCKED
+# undef feof
+# define feof(x) feof_unlocked (x)
+#else
+# define feof_unlocked(x) feof (x)
+#endif
+
+#if HAVE_DECL_FERROR_UNLOCKED
+# undef ferror
+# define ferror(x) ferror_unlocked (x)
+#else
+# define ferror_unlocked(x) ferror (x)
+#endif
+
+#if HAVE_DECL_FFLUSH_UNLOCKED
+# undef fflush
+# define fflush(x) fflush_unlocked (x)
+#else
+# define fflush_unlocked(x) fflush (x)
+#endif
+
+#if HAVE_DECL_FGETS_UNLOCKED
+# undef fgets
+# define fgets(x,y,z) fgets_unlocked (x,y,z)
+#else
+# define fgets_unlocked(x,y,z) fgets (x,y,z)
+#endif
+
+#if HAVE_DECL_FPUTC_UNLOCKED
+# undef fputc
+# define fputc(x,y) fputc_unlocked (x,y)
+#else
+# define fputc_unlocked(x,y) fputc (x,y)
+#endif
+
+#if HAVE_DECL_FPUTS_UNLOCKED
+# undef fputs
+# define fputs(x,y) fputs_unlocked (x,y)
+#else
+# define fputs_unlocked(x,y) fputs (x,y)
+#endif
+
+#if HAVE_DECL_FREAD_UNLOCKED
+# undef fread
+# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
+#else
+# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
+#endif
+
+#if HAVE_DECL_FWRITE_UNLOCKED
+# undef fwrite
+# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
+#else
+# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
+#endif
+
+#if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc(x) getc_unlocked (x)
+#else
+# define getc_unlocked(x) getc (x)
+#endif
+
+#if HAVE_DECL_GETCHAR_UNLOCKED
+# undef getchar
+# define getchar() getchar_unlocked ()
+#else
+# define getchar_unlocked() getchar ()
+#endif
+
+#if HAVE_DECL_PUTC_UNLOCKED
+# undef putc
+# define putc(x,y) putc_unlocked (x,y)
+#else
+# define putc_unlocked(x,y) putc (x,y)
+#endif
+
+#if HAVE_DECL_PUTCHAR_UNLOCKED
+# undef putchar
+# define putchar(x) putchar_unlocked (x)
+#else
+# define putchar_unlocked(x) putchar (x)
+#endif
+
+#undef flockfile
+#define flockfile(x) ((void) 0)
+
+#undef ftrylockfile
+#define ftrylockfile(x) 0
+
+#undef funlockfile
+#define funlockfile(x) ((void) 0)
+
#endif /* UNLOCKED_IO_H */
diff --git a/lib/version-etc.c b/lib/version-etc.c
index fd71eff93..f9a701aaf 100644
--- a/lib/version-etc.c
+++ b/lib/version-etc.c
@@ -27,7 +27,10 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
diff --git a/lib/yesno.c b/lib/yesno.c
index 35d4ba767..54691b7ff 100644
--- a/lib/yesno.c
+++ b/lib/yesno.c
@@ -24,7 +24,10 @@
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
/* Read one line from standard input
and return nonzero if that line begins with y or Y,
diff --git a/m4/ChangeLog b/m4/ChangeLog
index aeeffa1af..450fd1e7c 100644
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ Sync from gnulib.
+ * unlocked-io.m4: Add copyright notice.
+ (gl_FUNC_GLIBC_UNLOCKED_IO): Define USE_UNLOCKED_IO.
+
2004-10-03 Paul Eggert <eggert@cs.ucla.edu>
Sync from gnulib.
diff --git a/m4/unlocked-io.m4 b/m4/unlocked-io.m4
index cd1c5f4ef..5849e4a3a 100644
--- a/m4/unlocked-io.m4
+++ b/m4/unlocked-io.m4
@@ -1,4 +1,21 @@
-#serial 9
+# unlocked-io.m4 serial 10
+
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+# Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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 General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl From Jim Meyering.
dnl
@@ -10,6 +27,11 @@ dnl on Solaris 2.6).
AC_DEFUN([gl_FUNC_GLIBC_UNLOCKED_IO],
[
+ AC_DEFINE([USE_UNLOCKED_IO], 1,
+ [Define to 1 if you want getc etc. to use unlocked I/O if available.
+ Unlocked I/O can improve performance in unithreaded apps,
+ but it is not safe for multithreaded apps.])
+
dnl Persuade glibc and Solaris <stdio.h> to declare
dnl fgets_unlocked(), fputs_unlocked() etc.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])