mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-01 02:34:55 +00:00
assume <ctype.h>, ..., <time.h> exist
For years gnulib has been assuming the existence of the headers <ctime.h>, <errno.h>, <fcntl.h>, <locale.h>, <signal.h>, <stdio.h>, <stdlib.h>, <string.h>, and <time.h>. Omit checks for them, since they don't appear to be needed. * README (Portability guidelines): Document this. * lib/flock.c: Assume <fcntl.h> exists. * lib/regex_internal.h: Assume <locale.h> exists. * m4/ctype.m4 (gl_CTYPE_H): Assume <ctype.h> exists. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Assume <errno.h> exists. * m4/fcntl_h.m4 (gl_FCNTL_H): Assume <fcntl.h> exists. * m4/flock.m4 (gl_PREREQ_FLOCK): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Assume <locale.h> exists. * m4/regex.m4 (gl_REGEX): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Assume <signal.h> exists. * m4/stdio_h.m4 (gl_STDIO_H): Assume <stdio.h> exists. * m4/stdlib_h.m4 (gl_STDLIB_H): Assume <stdlib.h> exists. * m4/string_h.m4 (gl_STRING_H): Assume <string.h> exists. * tests/test-argp.c: Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Assume <time.h> exists.
This commit is contained in:
@@ -1,5 +1,26 @@
|
||||
2011-01-19 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
assume <ctype.h>, ..., <time.h> exist
|
||||
For years gnulib has been assuming the existence of the headers
|
||||
<ctime.h>, <errno.h>, <fcntl.h>, <locale.h>, <signal.h>,
|
||||
<stdio.h>, <stdlib.h>, <string.h>, and <time.h>. Omit checks for
|
||||
them, since they don't appear to be needed.
|
||||
* README (Portability guidelines): Document this.
|
||||
* lib/flock.c: Assume <fcntl.h> exists.
|
||||
* lib/regex_internal.h: Assume <locale.h> exists.
|
||||
* m4/ctype.m4 (gl_CTYPE_H): Assume <ctype.h> exists.
|
||||
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Assume <errno.h> exists.
|
||||
* m4/fcntl_h.m4 (gl_FCNTL_H): Assume <fcntl.h> exists.
|
||||
* m4/flock.m4 (gl_PREREQ_FLOCK): Likewise.
|
||||
* m4/locale_h.m4 (gl_LOCALE_H): Assume <locale.h> exists.
|
||||
* m4/regex.m4 (gl_REGEX): Likewise.
|
||||
* m4/signal_h.m4 (gl_SIGNAL_H): Assume <signal.h> exists.
|
||||
* m4/stdio_h.m4 (gl_STDIO_H): Assume <stdio.h> exists.
|
||||
* m4/stdlib_h.m4 (gl_STDLIB_H): Assume <stdlib.h> exists.
|
||||
* m4/string_h.m4 (gl_STRING_H): Assume <string.h> exists.
|
||||
* tests/test-argp.c: Likewise.
|
||||
* m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Assume <time.h> exists.
|
||||
|
||||
multiarch: remove AA_APPLE_UNIVERSAL_BUILD
|
||||
* m4/multiarch.m4 (gl_MULTIARCH): Don't AC_DEFINE
|
||||
AA_APPLE_UNIVERSAL_BUILD. See
|
||||
|
||||
@@ -221,13 +221,16 @@ some point we may start assuming a C89 library as well.
|
||||
|
||||
Because we assume a freestanding C89 compiler, Gnulib code can include
|
||||
<float.h>, <limits.h>, <stdarg.h>, and <stddef.h> unconditionally. It
|
||||
can also include hosted headers like <errno.h> that were present in
|
||||
Unix Version 7 and are thus widely available. Similarly, many modules
|
||||
include <sys/types.h> even though it's not even in C99; that's OK
|
||||
since <sys/types.h> has been around nearly forever. <string.h> and
|
||||
can also assume the existence of <ctime.h>, <errno.h>, <fcntl.h>,
|
||||
<locale.h>, <signal.h>, <stdio.h>, <stdlib.h>, <string.h>, and
|
||||
<time.h>. Some of these headers, such as <errno.h>, were present in
|
||||
Unix Version 7 and are thus widely available. <string.h> and
|
||||
<stdlib.h> were not in Unix Version 7, so they weren't universally
|
||||
available on ancient hosts, but they are both in SunOS 4 (the oldest
|
||||
platform still in relatively-common use) so Gnulib assumes them now.
|
||||
Similarly, many modules include <sys/types.h> even though it's not
|
||||
even in C99; that's OK since <sys/types.h> has been around nearly
|
||||
forever.
|
||||
|
||||
Even if the include files exist, they may not conform to C89.
|
||||
However, GCC has a "fixincludes" script that attempts to fix most
|
||||
|
||||
@@ -163,9 +163,7 @@ flock (int fd, int operation)
|
||||
#ifdef HAVE_STRUCT_FLOCK_L_TYPE
|
||||
/* We know how to implement flock in terms of fcntl. */
|
||||
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -31,9 +31,7 @@
|
||||
#ifndef _LIBC
|
||||
# include "localcharset.h"
|
||||
#endif
|
||||
#if defined HAVE_LOCALE_H || defined _LIBC
|
||||
# include <locale.h>
|
||||
#endif
|
||||
#include <locale.h>
|
||||
|
||||
#include <wchar.h>
|
||||
#include <wctype.h>
|
||||
@@ -83,7 +81,7 @@
|
||||
# define SIZE_MAX ((size_t) -1)
|
||||
#endif
|
||||
|
||||
#if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCSCOLL) || _LIBC
|
||||
#if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCSCOLL) || _LIBC
|
||||
# define RE_ENABLE_I18N
|
||||
#endif
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# ctype_h.m4 serial 5
|
||||
# ctype_h.m4 serial 6
|
||||
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -9,7 +9,7 @@ AC_DEFUN([gl_CTYPE_H],
|
||||
AC_REQUIRE([gl_CTYPE_H_DEFAULTS])
|
||||
|
||||
dnl <ctype.h> is always overridden, because of GNULIB_POSIXCHECK.
|
||||
gl_CHECK_NEXT_HEADERS([ctype.h])
|
||||
gl_NEXT_HEADERS([ctype.h])
|
||||
|
||||
dnl Check for declarations of anything we want to poison if the
|
||||
dnl corresponding gnulib module is not in use.
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# errno_h.m4 serial 7
|
||||
# errno_h.m4 serial 8
|
||||
dnl Copyright (C) 2004, 2006, 2008-2011 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -50,7 +50,7 @@ booboo
|
||||
if test $gl_cv_header_errno_h_complete = yes; then
|
||||
ERRNO_H=''
|
||||
else
|
||||
gl_CHECK_NEXT_HEADERS([errno.h])
|
||||
gl_NEXT_HEADERS([errno.h])
|
||||
ERRNO_H='errno.h'
|
||||
fi
|
||||
AC_SUBST([ERRNO_H])
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# serial 12
|
||||
# serial 13
|
||||
# Configure fcntl.h.
|
||||
dnl Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
@@ -11,7 +11,7 @@ AC_DEFUN([gl_FCNTL_H],
|
||||
[
|
||||
AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FCNTL_O_FLAGS])
|
||||
gl_CHECK_NEXT_HEADERS([fcntl.h])
|
||||
gl_NEXT_HEADERS([fcntl.h])
|
||||
|
||||
dnl Check for declarations of anything we want to poison if the
|
||||
dnl corresponding gnulib module is not in use, if it is not common
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# flock.m4 serial 1
|
||||
# flock.m4 serial 2
|
||||
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -19,7 +19,7 @@ dnl Prerequisites of lib/flock.c.
|
||||
AC_DEFUN([gl_PREREQ_FLOCK],
|
||||
[
|
||||
AC_CHECK_FUNCS_ONCE([fcntl])
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h fcntl.h])
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h])
|
||||
|
||||
dnl Do we have a POSIX fcntl lock implementation?
|
||||
AC_CHECK_MEMBERS([struct flock.l_type],[],[],[[#include <fcntl.h>]])
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# locale_h.m4 serial 11
|
||||
# locale_h.m4 serial 12
|
||||
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -55,7 +55,7 @@ AC_DEFUN([gl_LOCALE_H],
|
||||
AC_SUBST([HAVE_XLOCALE_H])
|
||||
|
||||
dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK.
|
||||
gl_CHECK_NEXT_HEADERS([locale.h])
|
||||
gl_NEXT_HEADERS([locale.h])
|
||||
|
||||
if test -n "$STDDEF_H" \
|
||||
|| test $gl_cv_header_locale_h_posix2001 = no \
|
||||
|
||||
+25
-31
@@ -1,4 +1,4 @@
|
||||
# serial 57
|
||||
# serial 58
|
||||
|
||||
# Copyright (C) 1996-2001, 2003-2011 Free Software Foundation, Inc.
|
||||
#
|
||||
@@ -13,8 +13,6 @@ AC_PREREQ([2.50])
|
||||
|
||||
AC_DEFUN([gl_REGEX],
|
||||
[
|
||||
AC_CHECK_HEADERS_ONCE([locale.h])
|
||||
|
||||
AC_ARG_WITH([included-regex],
|
||||
[AS_HELP_STRING([--without-included-regex],
|
||||
[don't compile regex; this is the default on systems
|
||||
@@ -34,9 +32,7 @@ AC_DEFUN([gl_REGEX],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[AC_INCLUDES_DEFAULT[
|
||||
#if HAVE_LOCALE_H
|
||||
#include <locale.h>
|
||||
#endif
|
||||
#include <locale.h>
|
||||
#include <limits.h>
|
||||
#include <regex.h>
|
||||
]],
|
||||
@@ -47,31 +43,29 @@ AC_DEFUN([gl_REGEX],
|
||||
const char *s;
|
||||
struct re_registers regs;
|
||||
|
||||
#if HAVE_LOCALE_H
|
||||
/* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
|
||||
This test needs valgrind to catch the bug on Debian
|
||||
GNU/Linux 3.1 x86, but it might catch the bug better
|
||||
on other platforms and it shouldn't hurt to try the
|
||||
test here. */
|
||||
if (setlocale (LC_ALL, "en_US.UTF-8"))
|
||||
{
|
||||
static char const pat[] = "insert into";
|
||||
static char const data[] =
|
||||
"\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
|
||||
re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
|
||||
| RE_ICASE);
|
||||
memset (®ex, 0, sizeof regex);
|
||||
s = re_compile_pattern (pat, sizeof pat - 1, ®ex);
|
||||
if (s)
|
||||
result |= 1;
|
||||
else if (re_search (®ex, data, sizeof data - 1,
|
||||
0, sizeof data - 1, ®s)
|
||||
!= -1)
|
||||
result |= 1;
|
||||
if (! setlocale (LC_ALL, "C"))
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
/* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
|
||||
This test needs valgrind to catch the bug on Debian
|
||||
GNU/Linux 3.1 x86, but it might catch the bug better
|
||||
on other platforms and it shouldn't hurt to try the
|
||||
test here. */
|
||||
if (setlocale (LC_ALL, "en_US.UTF-8"))
|
||||
{
|
||||
static char const pat[] = "insert into";
|
||||
static char const data[] =
|
||||
"\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
|
||||
re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
|
||||
| RE_ICASE);
|
||||
memset (®ex, 0, sizeof regex);
|
||||
s = re_compile_pattern (pat, sizeof pat - 1, ®ex);
|
||||
if (s)
|
||||
result |= 1;
|
||||
else if (re_search (®ex, data, sizeof data - 1,
|
||||
0, sizeof data - 1, ®s)
|
||||
!= -1)
|
||||
result |= 1;
|
||||
if (! setlocale (LC_ALL, "C"))
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* This test is from glibc bug 3957, reported by Andrew Mackey. */
|
||||
re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
|
||||
AC_DEFUN([gl_SIGNAL_H],
|
||||
[
|
||||
AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
|
||||
gl_CHECK_NEXT_HEADERS([signal.h])
|
||||
gl_NEXT_HEADERS([signal.h])
|
||||
# AIX declares sig_atomic_t to already include volatile, and C89 compilers
|
||||
# then choke on 'volatile sig_atomic_t'. C99 requires that it compile.
|
||||
AC_CHECK_TYPE([volatile sig_atomic_t], [],
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ AC_DEFUN([gl_STDIO_H],
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_C_INLINE])
|
||||
AC_REQUIRE([gl_ASM_SYMBOL_PREFIX])
|
||||
gl_CHECK_NEXT_HEADERS([stdio.h])
|
||||
gl_NEXT_HEADERS([stdio.h])
|
||||
dnl No need to create extra modules for these functions. Everyone who uses
|
||||
dnl <stdio.h> likely needs them.
|
||||
GNULIB_FPRINTF=1
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# stdlib_h.m4 serial 33
|
||||
# stdlib_h.m4 serial 34
|
||||
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
|
||||
AC_DEFUN([gl_STDLIB_H],
|
||||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
gl_CHECK_NEXT_HEADERS([stdlib.h])
|
||||
gl_NEXT_HEADERS([stdlib.h])
|
||||
AC_CHECK_HEADERS([random.h], [], [], [AC_INCLUDES_DEFAULT])
|
||||
if test $ac_cv_header_random_h = yes; then
|
||||
HAVE_RANDOM_H=1
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 18
|
||||
# serial 19
|
||||
|
||||
# Written by Paul Eggert.
|
||||
|
||||
@@ -20,7 +20,7 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY],
|
||||
[
|
||||
AC_REQUIRE([AC_C_RESTRICT])
|
||||
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
|
||||
gl_CHECK_NEXT_HEADERS([string.h])
|
||||
gl_NEXT_HEADERS([string.h])
|
||||
|
||||
dnl Check for declarations of anything we want to poison if the
|
||||
dnl corresponding gnulib module is not in use, and which is not
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
|
||||
# Copyright (C) 2000-2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
|
||||
|
||||
# serial 3
|
||||
# serial 4
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -21,7 +21,7 @@ AC_DEFUN([gl_HEADER_TIME_H_BODY],
|
||||
[
|
||||
AC_REQUIRE([AC_C_RESTRICT])
|
||||
AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
|
||||
gl_CHECK_NEXT_HEADERS([time.h])
|
||||
gl_NEXT_HEADERS([time.h])
|
||||
AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
|
||||
])
|
||||
|
||||
|
||||
+1
-3
@@ -21,9 +21,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#if HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
#if HAVE_STRINGS_H
|
||||
# include <strings.h>
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user