New upstream version 2.3.4
This commit is contained in:
parent
7c86d65dc2
commit
30f882762f
556 changed files with 90432 additions and 53391 deletions
|
@ -1,27 +1,82 @@
|
|||
# 00gnulib.m4 serial 2
|
||||
dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
|
||||
# 00gnulib.m4 serial 8
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl This file must be named something that sorts before all other
|
||||
dnl gnulib-provided .m4 files. It is needed until such time as we can
|
||||
dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics.
|
||||
dnl gnulib-provided .m4 files. It is needed until the clang fix has
|
||||
dnl been included in Autoconf.
|
||||
|
||||
# AC_DEFUN_ONCE([NAME], VALUE)
|
||||
# ----------------------------
|
||||
# Define NAME to expand to VALUE on the first use (whether by direct
|
||||
# expansion, or by AC_REQUIRE), and to nothing on all subsequent uses.
|
||||
# Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This
|
||||
# definition is slower than the version in Autoconf 2.64, because it
|
||||
# can only use interfaces that existed since 2.59; but it achieves the
|
||||
# same effect. Quoting is necessary to avoid confusing Automake.
|
||||
m4_version_prereq([2.63.263], [],
|
||||
[m4_define([AC][_DEFUN_ONCE],
|
||||
[AC][_DEFUN([$1],
|
||||
[AC_REQUIRE([_gl_DEFUN_ONCE([$1])],
|
||||
[m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl
|
||||
[AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])])
|
||||
# The following definitions arrange to use a compiler option
|
||||
# -Werror=implicit-function-declaration in AC_CHECK_DECL, when the
|
||||
# compiler is clang. Without it, clang implicitly declares "known"
|
||||
# library functions in C mode, but not in C++ mode, which would cause
|
||||
# Gnulib to omit a declaration and thus later produce an error in C++
|
||||
# mode. As of clang 9.0, these "known" functions are identified through
|
||||
# LIBBUILTIN invocations in the LLVM source file
|
||||
# llvm/tools/clang/include/clang/Basic/Builtins.def.
|
||||
# It's not possible to AC_REQUIRE the extra tests from AC_CHECK_DECL,
|
||||
# because AC_CHECK_DECL, like other Autoconf built-ins, is not supposed
|
||||
# to AC_REQUIRE anything: some configure.ac files have their first
|
||||
# AC_CHECK_DECL executed conditionally. Therefore append the extra tests
|
||||
# to AC_PROG_CC.
|
||||
AC_DEFUN([gl_COMPILER_CLANG],
|
||||
[
|
||||
dnl AC_REQUIRE([AC_PROG_CC])
|
||||
AC_CACHE_CHECK([whether the compiler is clang],
|
||||
[gl_cv_compiler_clang],
|
||||
[dnl Use _AC_COMPILE_IFELSE instead of AC_EGREP_CPP, to avoid error
|
||||
dnl "circular dependency of AC_LANG_COMPILER(C)" if AC_PROG_CC has
|
||||
dnl not yet been invoked.
|
||||
_AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#ifdef __clang__
|
||||
barfbarf
|
||||
#endif
|
||||
]],[[]])
|
||||
],
|
||||
[gl_cv_compiler_clang=no],
|
||||
[gl_cv_compiler_clang=yes])
|
||||
])
|
||||
])
|
||||
AC_DEFUN([gl_COMPILER_PREPARE_CHECK_DECL],
|
||||
[
|
||||
dnl AC_REQUIRE([AC_PROG_CC])
|
||||
dnl AC_REQUIRE([gl_COMPILER_CLANG])
|
||||
AC_CACHE_CHECK([for compiler option needed when checking for declarations],
|
||||
[gl_cv_compiler_check_decl_option],
|
||||
[if test $gl_cv_compiler_clang = yes; then
|
||||
dnl Test whether the compiler supports the option
|
||||
dnl '-Werror=implicit-function-declaration'.
|
||||
save_ac_compile="$ac_compile"
|
||||
ac_compile="$ac_compile -Werror=implicit-function-declaration"
|
||||
dnl Use _AC_COMPILE_IFELSE instead of AC_COMPILE_IFELSE, to avoid a
|
||||
dnl warning "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS".
|
||||
_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
|
||||
[gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration'],
|
||||
[gl_cv_compiler_check_decl_option=none])
|
||||
ac_compile="$save_ac_compile"
|
||||
else
|
||||
gl_cv_compiler_check_decl_option=none
|
||||
fi
|
||||
])
|
||||
if test "x$gl_cv_compiler_check_decl_option" != xnone; then
|
||||
ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option"
|
||||
else
|
||||
ac_compile_for_check_decl="$ac_compile"
|
||||
fi
|
||||
])
|
||||
dnl Redefine _AC_CHECK_DECL_BODY so that it references ac_compile_for_check_decl
|
||||
dnl instead of ac_compile. If, for whatever reason, the override of AC_PROG_CC
|
||||
dnl in zzgnulib.m4 is inactive, use the original ac_compile.
|
||||
m4_define([_AC_CHECK_DECL_BODY],
|
||||
[ ac_save_ac_compile="$ac_compile"
|
||||
if test -n "$ac_compile_for_check_decl"; then
|
||||
ac_compile="$ac_compile_for_check_decl"
|
||||
fi]
|
||||
m4_defn([_AC_CHECK_DECL_BODY])[ ac_compile="$ac_save_ac_compile"
|
||||
])
|
||||
|
||||
# gl_00GNULIB
|
||||
# -----------
|
||||
|
|
22
gl/m4/__inline.m4
Normal file
22
gl/m4/__inline.m4
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Test for __inline keyword
|
||||
dnl Copyright 2017-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl___INLINE],
|
||||
[
|
||||
AC_CACHE_CHECK([whether the compiler supports the __inline keyword],
|
||||
[gl_cv_c___inline],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[typedef int foo_t;
|
||||
static __inline foo_t foo (void) { return 0; }]],
|
||||
[[return foo ();]])],
|
||||
[gl_cv_c___inline=yes],
|
||||
[gl_cv_c___inline=no])])
|
||||
if test $gl_cv_c___inline = yes; then
|
||||
AC_DEFINE([HAVE___INLINE], [1],
|
||||
[Define to 1 if the compiler supports the keyword '__inline'.])
|
||||
fi
|
||||
])
|
100
gl/m4/absolute-header.m4
Normal file
100
gl/m4/absolute-header.m4
Normal file
|
@ -0,0 +1,100 @@
|
|||
# absolute-header.m4 serial 17
|
||||
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Derek Price.
|
||||
|
||||
# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...)
|
||||
# ---------------------------------------
|
||||
# Find the absolute name of a header file, testing first if the header exists.
|
||||
# If the header were sys/inttypes.h, this macro would define
|
||||
# ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h
|
||||
# in config.h
|
||||
# (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"').
|
||||
# The three "///" are to pacify Sun C 5.8, which otherwise would say
|
||||
# "warning: #include of /usr/include/... may be non-portable".
|
||||
# Use '""', not '<>', so that the /// cannot be confused with a C99 comment.
|
||||
# Note: This macro assumes that the header file is not empty after
|
||||
# preprocessing, i.e. it does not only define preprocessor macros but also
|
||||
# provides some type/enum definitions or function/variable declarations.
|
||||
AC_DEFUN([gl_ABSOLUTE_HEADER],
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_LANG_PREPROC_REQUIRE()dnl
|
||||
m4_foreach_w([gl_HEADER_NAME], [$1],
|
||||
[AS_VAR_PUSHDEF([gl_absolute_header],
|
||||
[gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl
|
||||
AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>],
|
||||
[gl_absolute_header],
|
||||
[AS_VAR_PUSHDEF([ac_header_exists],
|
||||
[ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl
|
||||
AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl
|
||||
if test AS_VAR_GET([ac_header_exists]) = yes; then
|
||||
gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME]))
|
||||
fi
|
||||
AS_VAR_POPDEF([ac_header_exists])dnl
|
||||
])dnl
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])),
|
||||
["AS_VAR_GET([gl_absolute_header])"],
|
||||
[Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.])
|
||||
AS_VAR_POPDEF([gl_absolute_header])dnl
|
||||
])dnl
|
||||
])# gl_ABSOLUTE_HEADER
|
||||
|
||||
# gl_ABSOLUTE_HEADER_ONE(HEADER)
|
||||
# ------------------------------
|
||||
# Like gl_ABSOLUTE_HEADER, except that:
|
||||
# - it assumes that the header exists,
|
||||
# - it uses the current CPPFLAGS,
|
||||
# - it does not cache the result,
|
||||
# - it is silent.
|
||||
AC_DEFUN([gl_ABSOLUTE_HEADER_ONE],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])])
|
||||
dnl AIX "xlc -E" and "cc -E" omit #line directives for header files
|
||||
dnl that contain only a #include of other header files and no
|
||||
dnl non-comment tokens of their own. This leads to a failure to
|
||||
dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h>
|
||||
dnl and others. The workaround is to force preservation of comments
|
||||
dnl through option -C. This ensures all necessary #line directives
|
||||
dnl are present. GCC supports option -C as well.
|
||||
case "$host_os" in
|
||||
aix*) gl_absname_cpp="$ac_cpp -C" ;;
|
||||
*) gl_absname_cpp="$ac_cpp" ;;
|
||||
esac
|
||||
changequote(,)
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
dnl For the sake of native Windows compilers (excluding gcc),
|
||||
dnl treat backslash as a directory separator, like /.
|
||||
dnl Actually, these compilers use a double-backslash as
|
||||
dnl directory separator, inside the
|
||||
dnl # line "filename"
|
||||
dnl directives.
|
||||
gl_dirsep_regex='[/\\]'
|
||||
;;
|
||||
*)
|
||||
gl_dirsep_regex='\/'
|
||||
;;
|
||||
esac
|
||||
dnl A sed expression that turns a string into a basic regular
|
||||
dnl expression, for use within "/.../".
|
||||
gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
|
||||
gl_header_literal_regex=`echo '$1' \
|
||||
| sed -e "$gl_make_literal_regex_sed"`
|
||||
gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
|
||||
s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
|
||||
s|^/[^/]|//&|
|
||||
p
|
||||
q
|
||||
}'
|
||||
changequote([,])
|
||||
dnl eval is necessary to expand gl_absname_cpp.
|
||||
dnl Ultrix and Pyramid sh refuse to redirect output of eval,
|
||||
dnl so use subshell.
|
||||
AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]),
|
||||
[`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
|
||||
sed -n "$gl_absolute_header_sed"`])
|
||||
])
|
57
gl/m4/af_alg.m4
Normal file
57
gl/m4/af_alg.m4
Normal file
|
@ -0,0 +1,57 @@
|
|||
# af_alg.m4 serial 6
|
||||
dnl Copyright 2018-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Matteo Croce.
|
||||
|
||||
AC_DEFUN_ONCE([gl_AF_ALG],
|
||||
[
|
||||
AC_REQUIRE([gl_SYS_SOCKET_H])
|
||||
AC_REQUIRE([AC_C_INLINE])
|
||||
|
||||
dnl Check whether linux/if_alg.h has needed features.
|
||||
AC_CACHE_CHECK([whether linux/if_alg.h has struct sockaddr_alg.],
|
||||
[gl_cv_header_linux_if_alg_salg],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <sys/socket.h>
|
||||
#include <linux/if_alg.h>
|
||||
struct sockaddr_alg salg = {
|
||||
.salg_family = AF_ALG,
|
||||
.salg_type = "hash",
|
||||
.salg_name = "sha1",
|
||||
};]])],
|
||||
[gl_cv_header_linux_if_alg_salg=yes],
|
||||
[gl_cv_header_linux_if_alg_salg=no])])
|
||||
if test "$gl_cv_header_linux_if_alg_salg" = yes; then
|
||||
AC_DEFINE([HAVE_LINUX_IF_ALG_H], [1],
|
||||
[Define to 1 if you have 'struct sockaddr_alg' defined.])
|
||||
fi
|
||||
|
||||
dnl The default is to not use AF_ALG if available,
|
||||
dnl as it's system dependent as to whether the kernel
|
||||
dnl routines are faster than libcrypto for example.
|
||||
use_af_alg=no
|
||||
AC_ARG_WITH([linux-crypto],
|
||||
[AS_HELP_STRING([[--with-linux-crypto]],
|
||||
[use Linux kernel cryptographic API (if available) for the hash functions
|
||||
MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 on files])],
|
||||
[use_af_alg=$withval],
|
||||
[use_af_alg=no])
|
||||
dnl We cannot use it if it is not available.
|
||||
if test "$gl_cv_header_linux_if_alg_salg" != yes; then
|
||||
if test "$use_af_alg" != no; then
|
||||
AC_MSG_WARN([Linux kernel cryptographic API not found])
|
||||
fi
|
||||
use_af_alg=no
|
||||
fi
|
||||
|
||||
if test "$use_af_alg" != no; then
|
||||
USE_AF_ALG=1
|
||||
else
|
||||
USE_AF_ALG=0
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([USE_LINUX_CRYPTO_API], [$USE_AF_ALG],
|
||||
[Define to 1 if you want to use the Linux kernel cryptographic API.])
|
||||
])
|
|
@ -1,5 +1,5 @@
|
|||
# alloca.m4 serial 14
|
||||
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 Free Software Foundation,
|
||||
# alloca.m4 serial 21
|
||||
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2023 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -26,30 +26,35 @@ AC_DEFUN([gl_FUNC_ALLOCA],
|
|||
AC_DEFINE([HAVE_ALLOCA], [1],
|
||||
[Define to 1 if you have 'alloca' after including <alloca.h>,
|
||||
a header that may be supplied by this distribution.])
|
||||
ALLOCA_H=alloca.h
|
||||
GL_GENERATE_ALLOCA_H=true
|
||||
else
|
||||
dnl alloca exists as a library function, i.e. it is slow and probably
|
||||
dnl a memory leak. Don't define HAVE_ALLOCA in this case.
|
||||
ALLOCA_H=
|
||||
GL_GENERATE_ALLOCA_H=false
|
||||
fi
|
||||
else
|
||||
ALLOCA_H=alloca.h
|
||||
GL_GENERATE_ALLOCA_H=true
|
||||
fi
|
||||
AC_SUBST([ALLOCA_H])
|
||||
AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
|
||||
|
||||
if test $ac_cv_working_alloca_h = yes; then
|
||||
HAVE_ALLOCA_H=1
|
||||
else
|
||||
HAVE_ALLOCA_H=0
|
||||
fi
|
||||
AC_SUBST([HAVE_ALLOCA_H])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/alloca.c.
|
||||
# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
|
||||
AC_DEFUN([gl_PREREQ_ALLOCA], [:])
|
||||
|
||||
# This works around a bug in autoconf <= 2.68.
|
||||
# See <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00277.html>.
|
||||
m4_version_prereq([2.70], [], [
|
||||
|
||||
m4_version_prereq([2.69], [] ,[
|
||||
|
||||
# This is taken from the following Autoconf patch:
|
||||
# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497
|
||||
# This works around a bug in autoconf <= 2.68 and has simplifications
|
||||
# from 2.70. See:
|
||||
# https://lists.gnu.org/r/bug-gnulib/2011-06/msg00277.html
|
||||
# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497
|
||||
# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=15edf7fd8094fd14a89d9891dd72a9624762597a
|
||||
|
||||
# _AC_LIBOBJ_ALLOCA
|
||||
# -----------------
|
||||
|
@ -65,26 +70,6 @@ AC_LIBSOURCES(alloca.c)
|
|||
AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl
|
||||
AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.])
|
||||
|
||||
AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray,
|
||||
[AC_EGREP_CPP(webecray,
|
||||
[#if defined CRAY && ! defined CRAY2
|
||||
webecray
|
||||
#else
|
||||
wenotbecray
|
||||
#endif
|
||||
], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
|
||||
if test $ac_cv_os_cray = yes; then
|
||||
for ac_func in _getb67 GETB67 getb67; do
|
||||
AC_CHECK_FUNC($ac_func,
|
||||
[AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
|
||||
[Define to one of '_getb67', 'GETB67',
|
||||
'getb67' for Cray-2 and Cray-YMP
|
||||
systems. This function is required for
|
||||
'alloca.c' support on those systems.])
|
||||
break])
|
||||
done
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([stack direction for C alloca],
|
||||
[ac_cv_c_stack_direction],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE(
|
||||
|
@ -115,7 +100,7 @@ AH_VERBATIM([STACK_DIRECTION],
|
|||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
@%:@undef STACK_DIRECTION])dnl
|
||||
#undef STACK_DIRECTION])dnl
|
||||
AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
|
||||
])# _AC_LIBOBJ_ALLOCA
|
||||
])
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
# arpa_inet_h.m4 serial 13
|
||||
dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
|
||||
# arpa_inet_h.m4 serial 17
|
||||
dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Written by Simon Josefsson and Bruno Haible
|
||||
|
||||
AC_DEFUN([gl_HEADER_ARPA_INET],
|
||||
AC_DEFUN_ONCE([gl_ARPA_INET_H],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default behavior below is expanded
|
||||
dnl once only, before all statements that occur in other macros.
|
||||
dnl Ensure to expand the default settings once only, before all statements
|
||||
dnl that occur in other macros.
|
||||
AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
|
||||
|
||||
AC_CHECK_HEADERS_ONCE([arpa/inet.h])
|
||||
|
@ -24,6 +24,8 @@ AC_DEFUN([gl_HEADER_ARPA_INET],
|
|||
|
||||
AC_REQUIRE([gl_FEATURES_H])
|
||||
|
||||
gl_PREREQ_SYS_H_WS2TCPIP
|
||||
|
||||
dnl Check for declarations of anything we want to poison if the
|
||||
dnl corresponding gnulib module is not in use.
|
||||
gl_WARN_ON_USE_PREPARE([[
|
||||
|
@ -38,17 +40,32 @@ AC_DEFUN([gl_HEADER_ARPA_INET],
|
|||
]], [inet_ntop inet_pton])
|
||||
])
|
||||
|
||||
# gl_ARPA_INET_MODULE_INDICATOR([modulename])
|
||||
# sets the shell variable that indicates the presence of the given module
|
||||
# to a C preprocessor expression that will evaluate to 1.
|
||||
# This macro invocation must not occur in macros that are AC_REQUIREd.
|
||||
AC_DEFUN([gl_ARPA_INET_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
|
||||
AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
|
||||
dnl Ensure to expand the default settings once only.
|
||||
gl_ARPA_INET_H_REQUIRE_DEFAULTS
|
||||
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
||||
])
|
||||
|
||||
# Initializes the default values for AC_SUBSTed shell variables.
|
||||
# This macro must not be AC_REQUIREd. It must only be invoked, and only
|
||||
# outside of macros or in macros that are not AC_REQUIREd.
|
||||
AC_DEFUN([gl_ARPA_INET_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_ARPA_INET_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_INET_NTOP])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_INET_PTON])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_ARPA_INET_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_ARPA_INET_H_DEFAULTS],
|
||||
[
|
||||
GNULIB_INET_NTOP=0; AC_SUBST([GNULIB_INET_NTOP])
|
||||
GNULIB_INET_PTON=0; AC_SUBST([GNULIB_INET_PTON])
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_DECL_INET_NTOP=1; AC_SUBST([HAVE_DECL_INET_NTOP])
|
||||
HAVE_DECL_INET_PTON=1; AC_SUBST([HAVE_DECL_INET_PTON])
|
||||
|
|
67
gl/m4/assert_h.m4
Normal file
67
gl/m4/assert_h.m4
Normal file
|
@ -0,0 +1,67 @@
|
|||
# assert-h.m4
|
||||
dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Paul Eggert.
|
||||
|
||||
AC_DEFUN([gl_ASSERT_H],
|
||||
[
|
||||
AC_CACHE_CHECK([for static_assert], [gl_cv_static_assert],
|
||||
[gl_save_CFLAGS=$CFLAGS
|
||||
for gl_working in "yes, a keyword" "yes, an <assert.h> macro"; do
|
||||
AS_CASE([$gl_working],
|
||||
[*assert.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H"])
|
||||
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#if defined __clang__ && __STDC_VERSION__ < 202311
|
||||
#pragma clang diagnostic error "-Wc2x-extensions"
|
||||
#pragma clang diagnostic error "-Wc++17-extensions"
|
||||
#endif
|
||||
#ifdef INCLUDE_ASSERT_H
|
||||
#include <assert.h>
|
||||
#endif
|
||||
static_assert (2 + 2 == 4, "arithmetic does not work");
|
||||
static_assert (2 + 2 == 4);
|
||||
]],
|
||||
[[
|
||||
static_assert (sizeof (char) == 1, "sizeof does not work");
|
||||
static_assert (sizeof (char) == 1);
|
||||
]])],
|
||||
[gl_cv_static_assert=$gl_working],
|
||||
[gl_cv_static_assert=no])
|
||||
CFLAGS=$gl_save_CFLAGS
|
||||
test "$gl_cv_static_assert" != no && break
|
||||
done])
|
||||
|
||||
GL_GENERATE_ASSERT_H=false
|
||||
AS_CASE([$gl_cv_static_assert],
|
||||
[yes*keyword*],
|
||||
[AC_DEFINE([HAVE_C_STATIC_ASSERT], [1],
|
||||
[Define to 1 if the static_assert keyword works.])],
|
||||
[no],
|
||||
[GL_GENERATE_ASSERT_H=true
|
||||
gl_NEXT_HEADERS([assert.h])])
|
||||
|
||||
dnl The "zz" puts this toward config.h's end, to avoid potential
|
||||
dnl collisions with other definitions. #undef assert so that
|
||||
dnl programs are not tempted to use it without specifically
|
||||
dnl including assert.h. Break the #undef apart with a comment
|
||||
dnl so that 'configure' does not comment it out.
|
||||
AH_VERBATIM([zzstatic_assert],
|
||||
[#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \
|
||||
&& (!defined __cplusplus \
|
||||
|| (__cpp_static_assert < 201411 \
|
||||
&& __GNUG__ < 6 && __clang_major__ < 6)))
|
||||
#include <assert.h>
|
||||
#undef/**/assert
|
||||
/* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments.
|
||||
We need it also to be invocable with a single argument. */
|
||||
#if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus
|
||||
#undef/**/static_assert
|
||||
#define static_assert _Static_assert
|
||||
#endif
|
||||
#endif])
|
||||
])
|
|
@ -1,5 +1,5 @@
|
|||
# base64.m4 serial 4
|
||||
dnl Copyright (C) 2004, 2006, 2009-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2004, 2006, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# btowc.m4 serial 10
|
||||
dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
|
||||
# btowc.m4 serial 12
|
||||
dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_BTOWC],
|
|||
|
||||
dnl Check whether <wchar.h> is usable at all, first. Otherwise the test
|
||||
dnl program below may lead to an endless loop. See
|
||||
dnl <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>.
|
||||
dnl <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>.
|
||||
AC_REQUIRE([gl_WCHAR_H_INLINE_OK])
|
||||
|
||||
AC_CHECK_FUNCS_ONCE([btowc])
|
||||
|
@ -28,14 +28,6 @@ AC_DEFUN([gl_FUNC_BTOWC],
|
|||
[
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
@ -50,6 +42,8 @@ changequote(,)dnl
|
|||
case "$host_os" in
|
||||
# Guess no on Cygwin.
|
||||
cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_btowc_nul="guessing yes" ;;
|
||||
# Guess yes otherwise.
|
||||
*) gl_cv_func_btowc_nul="guessing yes" ;;
|
||||
esac
|
||||
|
@ -65,24 +59,19 @@ changequote([,])dnl
|
|||
dnl is present.
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess no on IRIX.
|
||||
irix*) gl_cv_func_btowc_eof="guessing no" ;;
|
||||
# Guess yes otherwise.
|
||||
*) gl_cv_func_btowc_eof="guessing yes" ;;
|
||||
# Guess no on IRIX.
|
||||
irix*) gl_cv_func_btowc_eof="guessing no" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_btowc_eof="guessing yes" ;;
|
||||
# Guess yes otherwise.
|
||||
*) gl_cv_func_btowc_eof="guessing yes" ;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
if test $LOCALE_FR != none; then
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
|
49
gl/m4/builtin-expect.m4
Normal file
49
gl/m4/builtin-expect.m4
Normal file
|
@ -0,0 +1,49 @@
|
|||
dnl Check for __builtin_expect.
|
||||
|
||||
dnl Copyright 2016-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Written by Paul Eggert.
|
||||
|
||||
AC_DEFUN([gl___BUILTIN_EXPECT],
|
||||
[
|
||||
AC_CACHE_CHECK([for __builtin_expect],
|
||||
[gl_cv___builtin_expect],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
argc = __builtin_expect (argc, 100);
|
||||
return argv[argc != 100][0];
|
||||
}]])],
|
||||
[gl_cv___builtin_expect=yes],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <builtins.h>
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
argc = __builtin_expect (argc, 100);
|
||||
return argv[argc != 100][0];
|
||||
}]])],
|
||||
[gl_cv___builtin_expect="in <builtins.h>"],
|
||||
[gl_cv___builtin_expect=no])])])
|
||||
if test "$gl_cv___builtin_expect" = yes; then
|
||||
AC_DEFINE([HAVE___BUILTIN_EXPECT], [1])
|
||||
elif test "$gl_cv___builtin_expect" = "in <builtins.h>"; then
|
||||
AC_DEFINE([HAVE___BUILTIN_EXPECT], [2])
|
||||
fi
|
||||
AH_VERBATIM([HAVE___BUILTIN_EXPECT],
|
||||
[/* Define to 1 if the compiler supports __builtin_expect,
|
||||
and to 2 if <builtins.h> does. */
|
||||
#undef HAVE___BUILTIN_EXPECT
|
||||
#ifndef HAVE___BUILTIN_EXPECT
|
||||
# define __builtin_expect(e, c) (e)
|
||||
#elif HAVE___BUILTIN_EXPECT == 2
|
||||
# include <builtins.h>
|
||||
#endif
|
||||
])
|
||||
])
|
17
gl/m4/byteswap.m4
Normal file
17
gl/m4/byteswap.m4
Normal file
|
@ -0,0 +1,17 @@
|
|||
# byteswap.m4 serial 5
|
||||
dnl Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Written by Oskar Liljeblad.
|
||||
|
||||
AC_DEFUN([gl_BYTESWAP],
|
||||
[
|
||||
dnl Prerequisites of lib/byteswap.in.h.
|
||||
AC_CHECK_HEADERS([byteswap.h], [
|
||||
GL_GENERATE_BYTESWAP_H=false
|
||||
], [
|
||||
GL_GENERATE_BYTESWAP_H=true
|
||||
])
|
||||
])
|
51
gl/m4/c-bool.m4
Normal file
51
gl/m4/c-bool.m4
Normal file
|
@ -0,0 +1,51 @@
|
|||
# Check for bool that conforms to C2023.
|
||||
|
||||
dnl Copyright 2022-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_C_BOOL],
|
||||
[
|
||||
AC_CACHE_CHECK([for bool, true, false], [gl_cv_c_bool],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#if true == false
|
||||
#error "true == false"
|
||||
#endif
|
||||
extern bool b;
|
||||
bool b = true == false;]])],
|
||||
[gl_cv_c_bool=yes],
|
||||
[gl_cv_c_bool=no])])
|
||||
if test "$gl_cv_c_bool" = yes; then
|
||||
AC_DEFINE([HAVE_C_BOOL], [1],
|
||||
[Define to 1 if bool, true and false work as per C2023.])
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS_ONCE([stdbool.h])
|
||||
|
||||
dnl The "zz" puts this toward config.h's end, to avoid potential
|
||||
dnl collisions with other definitions.
|
||||
dnl If 'bool', 'true' and 'false' do not work, arrange for them to work.
|
||||
dnl In C, this means including <stdbool.h> if it is not already included.
|
||||
dnl However, if the preprocessor mistakenly treats 'true' as 0,
|
||||
dnl define it to a bool expression equal to 1; this is needed in
|
||||
dnl Sun C++ 5.11 (Oracle Solaris Studio 12.2, 2010) and older.
|
||||
AH_VERBATIM([zzbool],
|
||||
[#ifndef HAVE_C_BOOL
|
||||
# if !defined __cplusplus && !defined __bool_true_false_are_defined
|
||||
# if HAVE_STDBOOL_H
|
||||
# include <stdbool.h>
|
||||
# else
|
||||
# if defined __SUNPRO_C
|
||||
# error "<stdbool.h> is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC."
|
||||
# else
|
||||
# error "<stdbool.h> does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'."
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# if !true
|
||||
# define true (!false)
|
||||
# endif
|
||||
#endif])
|
||||
])
|
83
gl/m4/calloc.m4
Normal file
83
gl/m4/calloc.m4
Normal file
|
@ -0,0 +1,83 @@
|
|||
# calloc.m4 serial 29
|
||||
|
||||
# Copyright (C) 2004-2023 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# Written by Jim Meyering.
|
||||
|
||||
# Determine whether calloc (N, S) returns non-NULL when N*S is zero,
|
||||
# and returns NULL when N*S overflows.
|
||||
# If so, define HAVE_CALLOC. Otherwise, define calloc to rpl_calloc
|
||||
# and arrange to use a calloc wrapper function that does work in that case.
|
||||
|
||||
# _AC_FUNC_CALLOC_IF([IF-WORKS], [IF-NOT])
|
||||
# -------------------------------------
|
||||
# If calloc is compatible with GNU calloc, run IF-WORKS, otherwise, IF-NOT.
|
||||
AC_DEFUN([_AC_FUNC_CALLOC_IF],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CACHE_CHECK([whether calloc (0, n) and calloc (n, 0) return nonnull],
|
||||
[ac_cv_func_calloc_0_nonnull],
|
||||
[if test $cross_compiling != yes; then
|
||||
ac_cv_func_calloc_0_nonnull=yes
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[AC_INCLUDES_DEFAULT],
|
||||
[[int result = 0;
|
||||
char * volatile p = calloc (0, 0);
|
||||
if (!p)
|
||||
result |= 1;
|
||||
free (p);
|
||||
return result;
|
||||
]])],
|
||||
[],
|
||||
[ac_cv_func_calloc_0_nonnull=no])
|
||||
else
|
||||
case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
|
||||
# If we don't know, obey --enable-cross-guesses.
|
||||
*) ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
AS_CASE([$ac_cv_func_calloc_0_nonnull], [*yes], [$1], [$2])
|
||||
])
|
||||
|
||||
|
||||
# gl_FUNC_CALLOC_GNU
|
||||
# ------------------
|
||||
# Replace calloc if it is not compatible with GNU libc.
|
||||
AC_DEFUN([gl_FUNC_CALLOC_GNU],
|
||||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FUNC_CALLOC_POSIX])
|
||||
REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX"
|
||||
if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then
|
||||
_AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC_FOR_CALLOC_GNU=1])
|
||||
fi
|
||||
])# gl_FUNC_CALLOC_GNU
|
||||
|
||||
# gl_FUNC_CALLOC_POSIX
|
||||
# --------------------
|
||||
# Test whether 'calloc' is POSIX compliant (sets errno to ENOMEM when it
|
||||
# fails, and doesn't mess up with ptrdiff_t or size_t overflow),
|
||||
# and replace calloc if it is not.
|
||||
AC_DEFUN([gl_FUNC_CALLOC_POSIX],
|
||||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
|
||||
if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
|
||||
REPLACE_CALLOC_FOR_CALLOC_POSIX=1
|
||||
fi
|
||||
dnl Although in theory we should also test for size_t overflow,
|
||||
dnl in practice testing for ptrdiff_t overflow suffices
|
||||
dnl since PTRDIFF_MAX <= SIZE_MAX on all known Gnulib porting targets.
|
||||
dnl A separate size_t test would slow down 'configure'.
|
||||
])
|
35
gl/m4/close.m4
Normal file
35
gl/m4/close.m4
Normal file
|
@ -0,0 +1,35 @@
|
|||
# close.m4 serial 9
|
||||
dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_CLOSE],
|
||||
[
|
||||
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
|
||||
m4_ifdef([gl_MSVC_INVAL], [
|
||||
AC_REQUIRE([gl_MSVC_INVAL])
|
||||
if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
|
||||
REPLACE_CLOSE=1
|
||||
fi
|
||||
])
|
||||
m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [
|
||||
gl_PREREQ_SYS_H_WINSOCK2
|
||||
if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
|
||||
dnl Even if the 'socket' module is not used here, another part of the
|
||||
dnl application may use it and pass file descriptors that refer to
|
||||
dnl sockets to the close() function. So enable the support for sockets.
|
||||
REPLACE_CLOSE=1
|
||||
fi
|
||||
])
|
||||
dnl Replace close() for supporting the gnulib-defined fchdir() function,
|
||||
dnl to keep fchdir's bookkeeping up-to-date.
|
||||
m4_ifdef([gl_FUNC_FCHDIR], [
|
||||
if test $REPLACE_CLOSE = 0; then
|
||||
gl_TEST_FCHDIR
|
||||
if test $HAVE_FCHDIR = 0; then
|
||||
REPLACE_CLOSE=1
|
||||
fi
|
||||
fi
|
||||
])
|
||||
])
|
|
@ -1,5 +1,6 @@
|
|||
# codeset.m4 serial 5 (gettext-0.18.2)
|
||||
dnl Copyright (C) 2000-2002, 2006, 2008-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2023 Free Software
|
||||
dnl Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
# configmake.m4 serial 1
|
||||
dnl Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# gl_CONFIGMAKE_PREP
|
||||
# ------------------
|
||||
# Guarantee all of the standard directory variables, even when used with
|
||||
# autoconf 2.59 (datarootdir wasn't supported until 2.59c) or automake
|
||||
# 1.9.6 (pkglibexecdir wasn't supported until 1.10b.).
|
||||
AC_DEFUN([gl_CONFIGMAKE_PREP],
|
||||
[
|
||||
dnl Technically, datadir should default to datarootdir. But if
|
||||
dnl autoconf is too old to provide datarootdir, then reversing the
|
||||
dnl definition is a reasonable compromise. Only AC_SUBST a variable
|
||||
dnl if it was not already defined earlier by autoconf.
|
||||
if test "x$datarootdir" = x; then
|
||||
AC_SUBST([datarootdir], ['${datadir}'])
|
||||
fi
|
||||
dnl Copy the approach used in autoconf 2.60.
|
||||
if test "x$docdir" = x; then
|
||||
AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
fi
|
||||
dnl The remaining variables missing from autoconf 2.59 are easier.
|
||||
if test "x$htmldir" = x; then
|
||||
AC_SUBST([htmldir], ['${docdir}'])
|
||||
fi
|
||||
if test "x$dvidir" = x; then
|
||||
AC_SUBST([dvidir], ['${docdir}'])
|
||||
fi
|
||||
if test "x$pdfdir" = x; then
|
||||
AC_SUBST([pdfdir], ['${docdir}'])
|
||||
fi
|
||||
if test "x$psdir" = x; then
|
||||
AC_SUBST([psdir], ['${docdir}'])
|
||||
fi
|
||||
if test "x$lispdir" = x; then
|
||||
AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp'])
|
||||
fi
|
||||
if test "x$localedir" = x; then
|
||||
AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
fi
|
||||
|
||||
dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely
|
||||
dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe.
|
||||
AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}'])
|
||||
])
|
|
@ -1,19 +0,0 @@
|
|||
#serial 10 -*- autoconf -*-
|
||||
dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_DIRNAME],
|
||||
[
|
||||
AC_REQUIRE([gl_DIRNAME_LGPL])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_DIRNAME_LGPL],
|
||||
[
|
||||
dnl Prerequisites of lib/dirname.h.
|
||||
AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
|
||||
|
||||
dnl No prerequisites of lib/basename-lgpl.c, lib/dirname-lgpl.c,
|
||||
dnl lib/stripslash.c.
|
||||
])
|
|
@ -1,5 +1,5 @@
|
|||
# double-slash-root.m4 serial 4 -*- Autoconf -*-
|
||||
dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
105
gl/m4/dup2.m4
Normal file
105
gl/m4/dup2.m4
Normal file
|
@ -0,0 +1,105 @@
|
|||
#serial 27
|
||||
dnl Copyright (C) 2002, 2005, 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_DUP2],
|
||||
[
|
||||
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works],
|
||||
[AC_RUN_IFELSE([
|
||||
AC_LANG_PROGRAM(
|
||||
[[#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <sys/resource.h>
|
||||
#include <unistd.h>
|
||||
]GL_MDA_DEFINES[
|
||||
#ifndef RLIM_SAVED_CUR
|
||||
# define RLIM_SAVED_CUR RLIM_INFINITY
|
||||
#endif
|
||||
#ifndef RLIM_SAVED_MAX
|
||||
# define RLIM_SAVED_MAX RLIM_INFINITY
|
||||
#endif
|
||||
]],
|
||||
[[int result = 0;
|
||||
int bad_fd = INT_MAX;
|
||||
struct rlimit rlim;
|
||||
if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
|
||||
&& 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
|
||||
&& rlim.rlim_cur != RLIM_INFINITY
|
||||
&& rlim.rlim_cur != RLIM_SAVED_MAX
|
||||
&& rlim.rlim_cur != RLIM_SAVED_CUR)
|
||||
bad_fd = rlim.rlim_cur;
|
||||
#ifdef FD_CLOEXEC
|
||||
if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
|
||||
result |= 1;
|
||||
#endif
|
||||
if (dup2 (1, 1) != 1)
|
||||
result |= 2;
|
||||
#ifdef FD_CLOEXEC
|
||||
if (fcntl (1, F_GETFD) != FD_CLOEXEC)
|
||||
result |= 4;
|
||||
#endif
|
||||
close (0);
|
||||
if (dup2 (0, 0) != -1)
|
||||
result |= 8;
|
||||
/* Many gnulib modules require POSIX conformance of EBADF. */
|
||||
if (dup2 (2, bad_fd) == -1 && errno != EBADF)
|
||||
result |= 16;
|
||||
/* Flush out some cygwin core dumps. */
|
||||
if (dup2 (2, -1) != -1 || errno != EBADF)
|
||||
result |= 32;
|
||||
dup2 (2, 255);
|
||||
dup2 (2, 256);
|
||||
/* On OS/2 kLIBC, dup2() does not work on a directory fd. */
|
||||
{
|
||||
int fd = open (".", O_RDONLY);
|
||||
if (fd == -1)
|
||||
result |= 64;
|
||||
else if (dup2 (fd, fd + 1) == -1)
|
||||
result |= 128;
|
||||
close (fd);
|
||||
}
|
||||
return result;]])
|
||||
],
|
||||
[gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no],
|
||||
[case "$host_os" in
|
||||
mingw*) # on this platform, dup2 always returns 0 for success
|
||||
gl_cv_func_dup2_works="guessing no" ;;
|
||||
cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
|
||||
gl_cv_func_dup2_works="guessing no" ;;
|
||||
aix* | freebsd*)
|
||||
# on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE,
|
||||
# not EBADF.
|
||||
gl_cv_func_dup2_works="guessing no" ;;
|
||||
haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
|
||||
gl_cv_func_dup2_works="guessing no" ;;
|
||||
*-android*) # implemented using dup3(), which fails if oldfd == newfd
|
||||
gl_cv_func_dup2_works="guessing no" ;;
|
||||
os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd.
|
||||
gl_cv_func_dup2_works="guessing no" ;;
|
||||
*) gl_cv_func_dup2_works="guessing yes" ;;
|
||||
esac])
|
||||
])
|
||||
case "$gl_cv_func_dup2_works" in
|
||||
*yes) ;;
|
||||
*)
|
||||
REPLACE_DUP2=1
|
||||
AC_CHECK_FUNCS([setdtablesize])
|
||||
;;
|
||||
esac
|
||||
dnl Replace dup2() for supporting the gnulib-defined fchdir() function,
|
||||
dnl to keep fchdir's bookkeeping up-to-date.
|
||||
m4_ifdef([gl_FUNC_FCHDIR], [
|
||||
gl_TEST_FCHDIR
|
||||
if test $HAVE_FCHDIR = 0; then
|
||||
REPLACE_DUP2=1
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/dup2.c.
|
||||
AC_DEFUN([gl_PREREQ_DUP2], [])
|
|
@ -1,5 +1,5 @@
|
|||
# eealloc.m4 serial 3
|
||||
dnl Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# environ.m4 serial 6
|
||||
dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc.
|
||||
# environ.m4 serial 8
|
||||
dnl Copyright (C) 2001-2004, 2006-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -29,16 +29,15 @@ AC_DEFUN_ONCE([gl_ENVIRON],
|
|||
AC_DEFUN([gt_CHECK_VAR_DECL],
|
||||
[
|
||||
define([gt_cv_var], [gt_cv_var_]$2[_declaration])
|
||||
AC_MSG_CHECKING([if $2 is properly declared])
|
||||
AC_CACHE_VAL([gt_cv_var], [
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[$1
|
||||
extern struct { int foo; } $2;]],
|
||||
[[$2.foo = 1;]])],
|
||||
[gt_cv_var=no],
|
||||
[gt_cv_var=yes])])
|
||||
AC_MSG_RESULT([$gt_cv_var])
|
||||
AC_CACHE_CHECK([if $2 is properly declared], [gt_cv_var],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[$1
|
||||
typedef struct { int foo; } foo_t;
|
||||
extern foo_t $2;]],
|
||||
[[$2.foo = 1;]])],
|
||||
[gt_cv_var=no],
|
||||
[gt_cv_var=yes])])
|
||||
if test $gt_cv_var = yes; then
|
||||
AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
|
||||
[Define if you have the declaration of $2.])
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
# errno_h.m4 serial 12
|
||||
dnl Copyright (C) 2004, 2006, 2008-2013 Free Software Foundation, Inc.
|
||||
# errno_h.m4 serial 14
|
||||
dnl Copyright (C) 2004, 2006, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_PREREQ([2.61])
|
||||
|
||||
AC_DEFUN_ONCE([gl_HEADER_ERRNO_H],
|
||||
[
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
|
@ -66,13 +68,11 @@ booboo
|
|||
[gl_cv_header_errno_h_complete=yes])
|
||||
])
|
||||
if test $gl_cv_header_errno_h_complete = yes; then
|
||||
ERRNO_H=''
|
||||
GL_GENERATE_ERRNO_H=false
|
||||
else
|
||||
gl_NEXT_HEADERS([errno.h])
|
||||
ERRNO_H='errno.h'
|
||||
GL_GENERATE_ERRNO_H=true
|
||||
fi
|
||||
AC_SUBST([ERRNO_H])
|
||||
AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
|
||||
gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
|
||||
gl_REPLACE_ERRNO_VALUE([ENOLINK])
|
||||
gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
|
||||
|
@ -86,7 +86,7 @@ booboo
|
|||
# Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE.
|
||||
AC_DEFUN([gl_REPLACE_ERRNO_VALUE],
|
||||
[
|
||||
if test -n "$ERRNO_H"; then
|
||||
if $GL_GENERATE_ERRNO_H; then
|
||||
AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [
|
||||
AC_EGREP_CPP([yes],[
|
||||
#include <errno.h>
|
||||
|
@ -129,9 +129,3 @@ yes
|
|||
AC_SUBST($1[_VALUE])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
|
||||
dnl Remove this when we can assume autoconf >= 2.61.
|
||||
m4_ifdef([AC_COMPUTE_INT], [], [
|
||||
AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
|
||||
])
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#serial 14
|
||||
#serial 15
|
||||
|
||||
# Copyright (C) 1996-1998, 2001-2004, 2009-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-1998, 2001-2004, 2009-2023 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -22,6 +22,10 @@ AC_DEFUN([gl_ERROR],
|
|||
# Prerequisites of lib/error.c.
|
||||
AC_DEFUN([gl_PREREQ_ERROR],
|
||||
[
|
||||
dnl Use system extensions on Android, so that AC_FUNC_STRERROR_R
|
||||
dnl discovers the GNU API for strerror_r on Android API level 23 and later.
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_REQUIRE([AC_FUNC_STRERROR_R])
|
||||
:
|
||||
])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# exponentd.m4 serial 3
|
||||
dnl Copyright (C) 2007-2008, 2010-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2007-2008, 2010-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,14 +1,19 @@
|
|||
# serial 13 -*- Autoconf -*-
|
||||
# serial 23 -*- Autoconf -*-
|
||||
# Enable extensions on systems that normally disable them.
|
||||
|
||||
# Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003, 2006-2023 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Define to empty for the benefit of Autoconf 2.69 and earlier, so that
|
||||
dnl AC_USE_SYSTEM_EXTENSIONS (below) can be used unchanged from Autoconf 2.70+.
|
||||
m4_ifndef([AC_CHECK_INCLUDES_DEFAULT],
|
||||
[AC_DEFUN([AC_CHECK_INCLUDES_DEFAULT], [])])
|
||||
|
||||
# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git
|
||||
# Autoconf. Perhaps we can remove this once we can assume Autoconf
|
||||
# 2.70 or later everywhere, but since Autoconf mutates rapidly
|
||||
# is recent-enough everywhere, but since Autoconf mutates rapidly
|
||||
# enough in this area it's likely we'll need to redefine
|
||||
# AC_USE_SYSTEM_EXTENSIONS for quite some time.
|
||||
|
||||
|
@ -26,67 +31,125 @@
|
|||
# its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS
|
||||
# invocation occurs in gl_EARLY, not in gl_INIT.
|
||||
|
||||
m4_version_prereq([2.72], [], [
|
||||
|
||||
# AC_USE_SYSTEM_EXTENSIONS
|
||||
# ------------------------
|
||||
# Enable extensions on systems that normally disable them,
|
||||
# typically due to standards-conformance issues.
|
||||
#
|
||||
# Remember that #undef in AH_VERBATIM gets replaced with #define by
|
||||
# AC_DEFINE. The goal here is to define all known feature-enabling
|
||||
# macros, then, if reports of conflicts are made, disable macros that
|
||||
# cause problems on some platforms (such as __EXTENSIONS__).
|
||||
# We unconditionally define as many of the known feature-enabling
|
||||
# as possible, reserving conditional behavior for macros that are
|
||||
# known to cause problems on some platforms (such as __EXTENSIONS__).
|
||||
AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS],
|
||||
[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
|
||||
[AC_BEFORE([$0], [AC_PREPROC_IFELSE])dnl
|
||||
AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
|
||||
AC_BEFORE([$0], [AC_LINK_IFELSE])dnl
|
||||
AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
|
||||
|
||||
AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
|
||||
if test "$MINIX" = yes; then
|
||||
AC_DEFINE([_POSIX_SOURCE], [1],
|
||||
[Define to 1 if you need to in order for 'stat' and other
|
||||
things to work.])
|
||||
AC_DEFINE([_POSIX_1_SOURCE], [2],
|
||||
[Define to 2 if the system does not provide POSIX.1 features
|
||||
except with this defined.])
|
||||
AC_DEFINE([_MINIX], [1],
|
||||
[Define to 1 if on MINIX.])
|
||||
AC_DEFINE([_NETBSD_SOURCE], [1],
|
||||
[Define to 1 to make NetBSD features available. MINIX 3 needs this.])
|
||||
fi
|
||||
|
||||
AC_BEFORE([$0], [AC_CHECK_INCLUDES_DEFAULT])dnl
|
||||
dnl #undef in AH_VERBATIM gets replaced with #define by AC_DEFINE.
|
||||
dnl Use a different key than __EXTENSIONS__, as that name broke existing
|
||||
dnl configure.ac when using autoheader 2.62.
|
||||
AH_VERBATIM([USE_SYSTEM_EXTENSIONS],
|
||||
dnl The macros below are in alphabetical order ignoring leading _ or __
|
||||
dnl prefixes.
|
||||
AH_VERBATIM([USE_SYSTEM_EXTENSIONS],
|
||||
[/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on OS X. */
|
||||
/* Enable general extensions on macOS. */
|
||||
#ifndef _DARWIN_C_SOURCE
|
||||
# undef _DARWIN_C_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable X/Open extensions if necessary. HP-UX 11.11 defines
|
||||
mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
|
||||
whether compiling with -Ae or -D_HPUX_SOURCE=1. */
|
||||
#ifndef _XOPEN_SOURCE
|
||||
# undef _XOPEN_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
])
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable X/Open compliant socket functions that do not require linking
|
||||
with -lxnet on HP-UX 11.11. */
|
||||
#ifndef _HPUX_ALT_XOPEN_SOCKET_API
|
||||
# undef _HPUX_ALT_XOPEN_SOCKET_API
|
||||
#endif
|
||||
/* Identify the host operating system as Minix.
|
||||
This macro does not affect the system headers' behavior.
|
||||
A future release of Autoconf may stop defining this macro. */
|
||||
#ifndef _MINIX
|
||||
# undef _MINIX
|
||||
#endif
|
||||
/* Enable general extensions on NetBSD.
|
||||
Enable NetBSD compatibility extensions on Minix. */
|
||||
#ifndef _NETBSD_SOURCE
|
||||
# undef _NETBSD_SOURCE
|
||||
#endif
|
||||
/* Enable OpenBSD compatibility extensions on NetBSD.
|
||||
Oddly enough, this does nothing on OpenBSD. */
|
||||
#ifndef _OPENBSD_SOURCE
|
||||
# undef _OPENBSD_SOURCE
|
||||
#endif
|
||||
/* Define to 1 if needed for POSIX-compatible behavior. */
|
||||
#ifndef _POSIX_SOURCE
|
||||
# undef _POSIX_SOURCE
|
||||
#endif
|
||||
/* Define to 2 if needed for POSIX-compatible behavior. */
|
||||
#ifndef _POSIX_1_SOURCE
|
||||
# undef _POSIX_1_SOURCE
|
||||
#endif
|
||||
/* Enable POSIX-compatible threading on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
|
||||
#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
|
||||
# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
|
||||
#endif
|
||||
/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
|
||||
#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
# undef __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
#endif
|
||||
/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
|
||||
#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
|
||||
# undef __STDC_WANT_IEC_60559_DFP_EXT__
|
||||
#endif
|
||||
/* Enable extensions specified by C23 Annex F. */
|
||||
#ifndef __STDC_WANT_IEC_60559_EXT__
|
||||
# undef __STDC_WANT_IEC_60559_EXT__
|
||||
#endif
|
||||
/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
|
||||
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
#endif
|
||||
/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */
|
||||
#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
# undef __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
#endif
|
||||
/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
|
||||
#ifndef __STDC_WANT_LIB_EXT2__
|
||||
# undef __STDC_WANT_LIB_EXT2__
|
||||
#endif
|
||||
/* Enable extensions specified by ISO/IEC 24747:2009. */
|
||||
#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
|
||||
# undef __STDC_WANT_MATH_SPEC_FUNCS__
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable X/Open extensions. Define to 500 only if necessary
|
||||
to make mbstate_t available. */
|
||||
#ifndef _XOPEN_SOURCE
|
||||
# undef _XOPEN_SOURCE
|
||||
#endif
|
||||
])dnl
|
||||
|
||||
AC_REQUIRE([AC_CHECK_INCLUDES_DEFAULT])dnl
|
||||
_AC_CHECK_HEADER_ONCE([wchar.h])
|
||||
_AC_CHECK_HEADER_ONCE([minix/config.h])
|
||||
|
||||
dnl Defining __EXTENSIONS__ may break the system headers on some systems.
|
||||
dnl (FIXME: Which ones?)
|
||||
AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
|
||||
[ac_cv_safe_to_define___extensions__],
|
||||
[AC_COMPILE_IFELSE(
|
||||
|
@ -95,30 +158,57 @@ dnl configure.ac when using autoheader 2.62.
|
|||
]AC_INCLUDES_DEFAULT])],
|
||||
[ac_cv_safe_to_define___extensions__=yes],
|
||||
[ac_cv_safe_to_define___extensions__=no])])
|
||||
test $ac_cv_safe_to_define___extensions__ = yes &&
|
||||
AC_DEFINE([__EXTENSIONS__])
|
||||
AC_DEFINE([_ALL_SOURCE])
|
||||
AC_DEFINE([_DARWIN_C_SOURCE])
|
||||
AC_DEFINE([_GNU_SOURCE])
|
||||
AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
|
||||
AC_DEFINE([_TANDEM_SOURCE])
|
||||
|
||||
dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to
|
||||
dnl 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1.
|
||||
dnl But defining _XOPEN_SOURCE may turn *off* extensions on platforms
|
||||
dnl not covered by turn-on-extensions macros (notably Dragonfly, Free,
|
||||
dnl and OpenBSD, which don't have any equivalent of _NETBSD_SOURCE) so
|
||||
dnl it should only be defined when necessary.
|
||||
AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
|
||||
[ac_cv_should_define__xopen_source],
|
||||
[ac_cv_should_define__xopen_source=no
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
AS_IF([test $ac_cv_header_wchar_h = yes],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#include <wchar.h>
|
||||
mbstate_t x;]])],
|
||||
[],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#define _XOPEN_SOURCE 500
|
||||
#include <wchar.h>
|
||||
mbstate_t x;]])],
|
||||
[ac_cv_should_define__xopen_source=yes])])])
|
||||
test $ac_cv_should_define__xopen_source = yes &&
|
||||
AC_DEFINE([_XOPEN_SOURCE], [500])
|
||||
#define _XOPEN_SOURCE 500
|
||||
#include <wchar.h>
|
||||
mbstate_t x;]])],
|
||||
[ac_cv_should_define__xopen_source=yes])])])])
|
||||
|
||||
AC_DEFINE([_ALL_SOURCE])
|
||||
AC_DEFINE([_DARWIN_C_SOURCE])
|
||||
AC_DEFINE([_GNU_SOURCE])
|
||||
AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API])
|
||||
AC_DEFINE([_NETBSD_SOURCE])
|
||||
AC_DEFINE([_OPENBSD_SOURCE])
|
||||
AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
|
||||
AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__])
|
||||
AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__])
|
||||
AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__])
|
||||
AC_DEFINE([__STDC_WANT_IEC_60559_EXT__])
|
||||
AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__])
|
||||
AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__])
|
||||
AC_DEFINE([__STDC_WANT_LIB_EXT2__])
|
||||
AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__])
|
||||
AC_DEFINE([_TANDEM_SOURCE])
|
||||
AS_IF([test $ac_cv_header_minix_config_h = yes],
|
||||
[MINIX=yes
|
||||
AC_DEFINE([_MINIX])
|
||||
AC_DEFINE([_POSIX_SOURCE])
|
||||
AC_DEFINE([_POSIX_1_SOURCE], [2])],
|
||||
[MINIX=])
|
||||
AS_IF([test $ac_cv_safe_to_define___extensions__ = yes],
|
||||
[AC_DEFINE([__EXTENSIONS__])])
|
||||
AS_IF([test $ac_cv_should_define__xopen_source = yes],
|
||||
[AC_DEFINE([_XOPEN_SOURCE], [500])])
|
||||
])# AC_USE_SYSTEM_EXTENSIONS
|
||||
])
|
||||
|
||||
# gl_USE_SYSTEM_EXTENSIONS
|
||||
# ------------------------
|
||||
|
@ -126,13 +216,17 @@ dnl configure.ac when using autoheader 2.62.
|
|||
# typically due to standards-conformance issues.
|
||||
AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS],
|
||||
[
|
||||
dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS.
|
||||
dnl gnulib does not need it. But if it gets required by third-party macros
|
||||
dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a
|
||||
dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS".
|
||||
dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE,
|
||||
dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck.
|
||||
AC_REQUIRE([AC_GNU_SOURCE])
|
||||
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
dnl On OpenBSD 6.8 with GCC, the include files contain a couple of
|
||||
dnl definitions that are only activated with an explicit -D_ISOC11_SOURCE.
|
||||
dnl That's because this version of GCC (4.2.1) supports the option
|
||||
dnl '-std=gnu99' but not the option '-std=gnu11'.
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
case "$host_os" in
|
||||
openbsd*)
|
||||
AC_DEFINE([_ISOC11_SOURCE], [1],
|
||||
[Define to enable the declarations of ISO C 11 types and functions.])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
|
|
@ -1,61 +1,121 @@
|
|||
dnl 'extern inline' a la ISO C99.
|
||||
|
||||
dnl Copyright 2012-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright 2012-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_EXTERN_INLINE],
|
||||
[
|
||||
AH_VERBATIM([extern_inline],
|
||||
AC_CACHE_CHECK([whether ctype.h defines __header_inline],
|
||||
[gl_cv_have___header_inline],
|
||||
[AC_PREPROC_IFELSE(
|
||||
[AC_LANG_SOURCE([[#include <ctype.h>
|
||||
#ifndef __header_inline
|
||||
#error "<ctype.h> does not define __header_inline"
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_have___header_inline=yes],
|
||||
[gl_cv_have___header_inline=no])])
|
||||
if test "$gl_cv_have___header_inline" = yes; then
|
||||
AC_DEFINE([HAVE___HEADER_INLINE], [1],
|
||||
[Define to 1 if ctype.h defines __header_inline.])
|
||||
fi
|
||||
|
||||
AH_VERBATIM([HAVE___HEADER_INLINE_1],
|
||||
[/* Please see the Gnulib manual for how to use these macros.
|
||||
|
||||
Suppress extern inline with HP-UX cc, as it appears to be broken; see
|
||||
<http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
|
||||
<https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
|
||||
|
||||
Suppress extern inline with Sun C in standards-conformance mode, as it
|
||||
mishandles inline functions that call each other. E.g., for 'inline void f
|
||||
(void) { } inline void g (void) { f (); }', c99 incorrectly complains
|
||||
'reference to static identifier "f" in extern inline function'.
|
||||
This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
|
||||
This bug was observed with Oracle Developer Studio 12.6
|
||||
(Sun C 5.15 SunOS_sparc 2017/05/30).
|
||||
|
||||
Suppress the use of extern inline on Apple's platforms, as Libc at least
|
||||
through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
|
||||
<http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
|
||||
Perhaps Apple will fix this some day. */
|
||||
Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
|
||||
on configurations that mistakenly use 'static inline' to implement
|
||||
functions or macros in standard C headers like <ctype.h>. For example,
|
||||
if isdigit is mistakenly implemented via a static inline function,
|
||||
a program containing an extern inline function that calls isdigit
|
||||
may not work since the C standard prohibits extern inline functions
|
||||
from calling static functions (ISO C 99 section 6.7.4.(3).
|
||||
This bug is known to occur on:
|
||||
|
||||
OS X 10.8 and earlier; see:
|
||||
https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
|
||||
|
||||
DragonFly; see
|
||||
http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
|
||||
|
||||
FreeBSD; see:
|
||||
https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
|
||||
|
||||
OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
|
||||
for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
|
||||
Assume DragonFly and FreeBSD will be similar.
|
||||
|
||||
GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
||||
inline semantics, unless -fgnu89-inline is used. It defines a macro
|
||||
__GNUC_STDC_INLINE__ to indicate this situation or a macro
|
||||
__GNUC_GNU_INLINE__ to indicate the opposite situation.
|
||||
GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
|
||||
semantics but warns, unless -fgnu89-inline is used:
|
||||
warning: C99 inline functions are not supported; using GNU89
|
||||
warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
|
||||
It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
|
||||
*/
|
||||
#if (((defined __APPLE__ && defined __MACH__) \
|
||||
|| defined __DragonFly__ || defined __FreeBSD__) \
|
||||
&& (defined HAVE___HEADER_INLINE \
|
||||
? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
|
||||
&& ! defined __clang__) \
|
||||
: ((! defined _DONT_USE_CTYPE_INLINE_ \
|
||||
&& (defined __GNUC__ || defined __cplusplus)) \
|
||||
|| (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
|
||||
&& defined __GNUC__ && ! defined __cplusplus))))
|
||||
# define _GL_EXTERN_INLINE_STDHEADER_BUG
|
||||
#endif
|
||||
#if ((__GNUC__ \
|
||||
? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
|
||||
: (199901L <= __STDC_VERSION__ \
|
||||
&& !defined __HP_cc \
|
||||
&& !defined __PGI \
|
||||
&& !(defined __SUNPRO_C && __STDC__))) \
|
||||
&& !defined __APPLE__)
|
||||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
|
||||
# define _GL_INLINE inline
|
||||
# define _GL_EXTERN_INLINE extern inline
|
||||
# define _GL_EXTERN_INLINE_IN_USE
|
||||
#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
|
||||
&& !defined __APPLE__)
|
||||
# if __GNUC_GNU_INLINE__
|
||||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
|
||||
# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
|
||||
/* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
|
||||
# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
|
||||
# else
|
||||
# define _GL_INLINE extern inline
|
||||
# endif
|
||||
# define _GL_EXTERN_INLINE extern
|
||||
# define _GL_EXTERN_INLINE_IN_USE
|
||||
#else
|
||||
# define _GL_INLINE static _GL_UNUSED
|
||||
# define _GL_EXTERN_INLINE static _GL_UNUSED
|
||||
# define _GL_INLINE _GL_UNUSED static
|
||||
# define _GL_EXTERN_INLINE _GL_UNUSED static
|
||||
#endif
|
||||
|
||||
#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
|
||||
/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
|
||||
suppress bogus "no previous prototype for 'FOO'"
|
||||
and "no previous declaration for 'FOO'" diagnostics,
|
||||
when FOO is an inline function in the header; see
|
||||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
|
||||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
|
||||
#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
|
||||
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA
|
||||
# else
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA \
|
||||
_Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
|
||||
# endif
|
||||
/* Suppress GCC's bogus "no previous prototype for 'FOO'"
|
||||
and "no previous declaration for 'FOO'" diagnostics,
|
||||
when FOO is an inline function in the header; see
|
||||
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>. */
|
||||
# define _GL_INLINE_HEADER_BEGIN \
|
||||
_Pragma ("GCC diagnostic push") \
|
||||
_Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
|
||||
|
|
|
@ -1,23 +1,22 @@
|
|||
# fcntl-o.m4 serial 4
|
||||
dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
|
||||
# fcntl-o.m4 serial 7
|
||||
dnl Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Written by Paul Eggert.
|
||||
|
||||
AC_PREREQ([2.60])
|
||||
|
||||
# Test whether the flags O_NOATIME and O_NOFOLLOW actually work.
|
||||
# Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise.
|
||||
# Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise.
|
||||
AC_DEFUN([gl_FCNTL_O_FLAGS],
|
||||
[
|
||||
dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW.
|
||||
dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
|
||||
dnl AC_GNU_SOURCE.
|
||||
m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
|
||||
[AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
|
||||
[AC_REQUIRE([AC_GNU_SOURCE])])
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h])
|
||||
AC_CHECK_FUNCS_ONCE([symlink])
|
||||
AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h],
|
||||
|
@ -33,6 +32,7 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
|
|||
# defined sleep(n) _sleep ((n) * 1000)
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
]GL_MDA_DEFINES[
|
||||
#ifndef O_NOATIME
|
||||
#define O_NOATIME 0
|
||||
#endif
|
||||
|
@ -116,7 +116,13 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
|
|||
68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
|
||||
*) gl_cv_header_working_fcntl_h='no';;
|
||||
esac],
|
||||
[gl_cv_header_working_fcntl_h=cross-compiling])])
|
||||
[case "$host_os" in
|
||||
# Guess 'no' on native Windows.
|
||||
mingw*) gl_cv_header_working_fcntl_h='no' ;;
|
||||
*) gl_cv_header_working_fcntl_h=cross-compiling ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
||||
case $gl_cv_header_working_fcntl_h in #(
|
||||
*O_NOATIME* | no | cross-compiling) ac_val=0;; #(
|
||||
|
|
151
gl/m4/fcntl.m4
Normal file
151
gl/m4/fcntl.m4
Normal file
|
@ -0,0 +1,151 @@
|
|||
# fcntl.m4 serial 11
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# For now, this module ensures that fcntl()
|
||||
# - supports F_DUPFD correctly
|
||||
# - supports or emulates F_DUPFD_CLOEXEC
|
||||
# - supports F_GETFD
|
||||
# Still to be ported to mingw:
|
||||
# - F_SETFD
|
||||
# - F_GETFL, F_SETFL
|
||||
# - F_GETOWN, F_SETOWN
|
||||
# - F_GETLK, F_SETLK, F_SETLKW
|
||||
AC_DEFUN([gl_FUNC_FCNTL],
|
||||
[
|
||||
dnl Persuade glibc to expose F_DUPFD_CLOEXEC.
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CHECK_FUNCS_ONCE([fcntl])
|
||||
if test $ac_cv_func_fcntl = no; then
|
||||
gl_REPLACE_FCNTL
|
||||
else
|
||||
dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target
|
||||
dnl haiku alpha 2 F_DUPFD has wrong errno
|
||||
AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly],
|
||||
[gl_cv_func_fcntl_f_dupfd_works],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <sys/resource.h>
|
||||
#include <unistd.h>
|
||||
]GL_MDA_DEFINES[
|
||||
#ifndef RLIM_SAVED_CUR
|
||||
# define RLIM_SAVED_CUR RLIM_INFINITY
|
||||
#endif
|
||||
#ifndef RLIM_SAVED_MAX
|
||||
# define RLIM_SAVED_MAX RLIM_INFINITY
|
||||
#endif
|
||||
]],
|
||||
[[int result = 0;
|
||||
int bad_fd = INT_MAX;
|
||||
struct rlimit rlim;
|
||||
if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
|
||||
&& 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
|
||||
&& rlim.rlim_cur != RLIM_INFINITY
|
||||
&& rlim.rlim_cur != RLIM_SAVED_MAX
|
||||
&& rlim.rlim_cur != RLIM_SAVED_CUR)
|
||||
bad_fd = rlim.rlim_cur;
|
||||
if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
|
||||
if (errno != EINVAL) result |= 2;
|
||||
if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4;
|
||||
if (errno != EINVAL) result |= 8;
|
||||
/* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */
|
||||
{
|
||||
int fd;
|
||||
fd = open (".", O_RDONLY);
|
||||
if (fd == -1)
|
||||
result |= 16;
|
||||
else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1)
|
||||
result |= 32;
|
||||
|
||||
close (fd);
|
||||
}
|
||||
return result;]])],
|
||||
[gl_cv_func_fcntl_f_dupfd_works=yes],
|
||||
[gl_cv_func_fcntl_f_dupfd_works=no],
|
||||
[case $host_os in
|
||||
aix* | cygwin* | haiku*)
|
||||
gl_cv_func_fcntl_f_dupfd_works="guessing no" ;;
|
||||
*) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;;
|
||||
esac])])
|
||||
case $gl_cv_func_fcntl_f_dupfd_works in
|
||||
*yes) ;;
|
||||
*) gl_REPLACE_FCNTL
|
||||
AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD
|
||||
behavior does not match POSIX]) ;;
|
||||
esac
|
||||
|
||||
dnl Many systems lack F_DUPFD_CLOEXEC.
|
||||
dnl NetBSD 9.0 declares F_DUPFD_CLOEXEC but it works only like F_DUPFD.
|
||||
AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC],
|
||||
[gl_cv_func_fcntl_f_dupfd_cloexec],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
if (argc == 1)
|
||||
/* parent process */
|
||||
{
|
||||
if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0)
|
||||
return 1;
|
||||
return execl ("./conftest", "./conftest", "child", NULL);
|
||||
}
|
||||
else
|
||||
/* child process */
|
||||
return (fcntl (10, F_GETFL) < 0 ? 0 : 42);
|
||||
}
|
||||
]])
|
||||
],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#ifdef __linux__
|
||||
/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace
|
||||
it to support the semantics on older kernels that failed with EINVAL. */
|
||||
choke me
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_func_fcntl_f_dupfd_cloexec=yes],
|
||||
[gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"])
|
||||
],
|
||||
[gl_cv_func_fcntl_f_dupfd_cloexec=no],
|
||||
[case "$host_os" in
|
||||
# Guess no on NetBSD.
|
||||
netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;;
|
||||
*) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
case "$gl_cv_func_fcntl_f_dupfd_cloexec" in
|
||||
*yes) ;;
|
||||
*) gl_REPLACE_FCNTL
|
||||
dnl No witness macro needed for this bug.
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
dnl Replace fcntl() for supporting the gnulib-defined fchdir() function,
|
||||
dnl to keep fchdir's bookkeeping up-to-date.
|
||||
m4_ifdef([gl_FUNC_FCHDIR], [
|
||||
gl_TEST_FCHDIR
|
||||
if test $HAVE_FCHDIR = 0; then
|
||||
gl_REPLACE_FCNTL
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_REPLACE_FCNTL],
|
||||
[
|
||||
AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
|
||||
AC_CHECK_FUNCS_ONCE([fcntl])
|
||||
if test $ac_cv_func_fcntl = no; then
|
||||
HAVE_FCNTL=0
|
||||
else
|
||||
REPLACE_FCNTL=1
|
||||
fi
|
||||
])
|
70
gl/m4/fcntl_h.m4
Normal file
70
gl/m4/fcntl_h.m4
Normal file
|
@ -0,0 +1,70 @@
|
|||
# serial 20
|
||||
# Configure fcntl.h.
|
||||
dnl Copyright (C) 2006-2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Written by Paul Eggert.
|
||||
|
||||
AC_DEFUN_ONCE([gl_FCNTL_H],
|
||||
[
|
||||
AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FCNTL_O_FLAGS])
|
||||
gl_NEXT_HEADERS([fcntl.h])
|
||||
|
||||
dnl Ensure the type pid_t gets defined.
|
||||
AC_REQUIRE([AC_TYPE_PID_T])
|
||||
|
||||
dnl Ensure the type mode_t gets defined.
|
||||
AC_REQUIRE([AC_TYPE_MODE_T])
|
||||
|
||||
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
|
||||
dnl enough to be declared everywhere.
|
||||
gl_WARN_ON_USE_PREPARE([[#include <fcntl.h>
|
||||
]], [fcntl openat])
|
||||
])
|
||||
|
||||
# gl_FCNTL_MODULE_INDICATOR([modulename])
|
||||
# sets the shell variable that indicates the presence of the given module
|
||||
# to a C preprocessor expression that will evaluate to 1.
|
||||
# This macro invocation must not occur in macros that are AC_REQUIREd.
|
||||
AC_DEFUN([gl_FCNTL_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Ensure to expand the default settings once only.
|
||||
gl_FCNTL_H_REQUIRE_DEFAULTS
|
||||
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
||||
dnl Define it also as a C macro, for the benefit of the unit tests.
|
||||
gl_MODULE_INDICATOR_FOR_TESTS([$1])
|
||||
])
|
||||
|
||||
# Initializes the default values for AC_SUBSTed shell variables.
|
||||
# This macro must not be AC_REQUIREd. It must only be invoked, and only
|
||||
# outside of macros or in macros that are not AC_REQUIREd.
|
||||
AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CREAT])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCNTL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT])
|
||||
dnl Support Microsoft deprecated alias function names by default.
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_FCNTL_H_DEFAULTS],
|
||||
[
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL])
|
||||
HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT])
|
||||
REPLACE_CREAT=0; AC_SUBST([REPLACE_CREAT])
|
||||
REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL])
|
||||
REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN])
|
||||
REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT])
|
||||
])
|
100
gl/m4/fflush.m4
Normal file
100
gl/m4/fflush.m4
Normal file
|
@ -0,0 +1,100 @@
|
|||
# fflush.m4 serial 18
|
||||
|
||||
# Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Eric Blake
|
||||
|
||||
dnl Find out how to obey POSIX semantics of fflush(stdin) discarding
|
||||
dnl unread input on seekable streams, rather than C99 undefined semantics.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FFLUSH],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
gl_FUNC_FFLUSH_STDIN
|
||||
case "$gl_cv_func_fflush_stdin" in
|
||||
*yes) ;;
|
||||
*) REPLACE_FFLUSH=1 ;;
|
||||
esac
|
||||
])
|
||||
|
||||
dnl Determine whether fflush works on input streams.
|
||||
dnl Sets gl_cv_func_fflush_stdin.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FFLUSH_STDIN],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h])
|
||||
AC_CACHE_CHECK([whether fflush works on input streams],
|
||||
[gl_cv_func_fflush_stdin],
|
||||
[echo hello world > conftest.txt
|
||||
AC_RUN_IFELSE([AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <stdio.h>
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#else /* on Windows with MSVC */
|
||||
# include <io.h>
|
||||
#endif
|
||||
]GL_MDA_DEFINES],
|
||||
[[FILE *f = fopen ("conftest.txt", "r");
|
||||
char buffer[10];
|
||||
int fd;
|
||||
int c;
|
||||
if (f == NULL)
|
||||
return 1;
|
||||
fd = fileno (f);
|
||||
if (fd < 0 || fread (buffer, 1, 5, f) != 5)
|
||||
{ fclose (f); return 2; }
|
||||
/* For deterministic results, ensure f read a bigger buffer. */
|
||||
if (lseek (fd, 0, SEEK_CUR) == 5)
|
||||
{ fclose (f); return 3; }
|
||||
/* POSIX requires fflush-fseek to set file offset of fd. This fails
|
||||
on BSD systems and on mingw. */
|
||||
if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0)
|
||||
{ fclose (f); return 4; }
|
||||
if (lseek (fd, 0, SEEK_CUR) != 5)
|
||||
{ fclose (f); return 5; }
|
||||
/* Verify behaviour of fflush after ungetc. See
|
||||
<https://www.opengroup.org/austin/aardvark/latest/xshbug3.txt> */
|
||||
/* Verify behaviour of fflush after a backup ungetc. This fails on
|
||||
mingw. */
|
||||
c = fgetc (f);
|
||||
ungetc (c, f);
|
||||
fflush (f);
|
||||
if (fgetc (f) != c)
|
||||
{ fclose (f); return 6; }
|
||||
/* Verify behaviour of fflush after a non-backup ungetc. This fails
|
||||
on glibc 2.8 and on BSD systems. */
|
||||
c = fgetc (f);
|
||||
ungetc ('@', f);
|
||||
fflush (f);
|
||||
if (fgetc (f) != c)
|
||||
{ fclose (f); return 7; }
|
||||
fclose (f);
|
||||
return 0;
|
||||
]])],
|
||||
[gl_cv_func_fflush_stdin=yes],
|
||||
[gl_cv_func_fflush_stdin=no],
|
||||
[case "$host_os" in
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_fflush_stdin="guessing no" ;;
|
||||
*) gl_cv_func_fflush_stdin=cross ;;
|
||||
esac
|
||||
])
|
||||
rm conftest.txt
|
||||
])
|
||||
case "$gl_cv_func_fflush_stdin" in
|
||||
*yes) gl_func_fflush_stdin=1 ;;
|
||||
*no) gl_func_fflush_stdin=0 ;;
|
||||
*) gl_func_fflush_stdin='(-1)' ;;
|
||||
esac
|
||||
AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin],
|
||||
[Define to 1 if fflush is known to work on stdin as per POSIX.1-2008,
|
||||
0 if fflush is known to not work, -1 if unknown.])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/fflush.c.
|
||||
AC_DEFUN([gl_PREREQ_FFLUSH], [:])
|
|
@ -1,5 +1,5 @@
|
|||
# float_h.m4 serial 9
|
||||
dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
|
||||
# float_h.m4 serial 13
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -8,42 +8,46 @@ AC_DEFUN([gl_FLOAT_H],
|
|||
[
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
FLOAT_H=
|
||||
GL_GENERATE_FLOAT_H=false
|
||||
REPLACE_FLOAT_LDBL=0
|
||||
case "$host_os" in
|
||||
aix* | beos* | openbsd* | mirbsd* | irix*)
|
||||
FLOAT_H=float.h
|
||||
GL_GENERATE_FLOAT_H=true
|
||||
;;
|
||||
freebsd*)
|
||||
freebsd* | dragonfly*)
|
||||
case "$host_cpu" in
|
||||
changequote(,)dnl
|
||||
i[34567]86 )
|
||||
changequote([,])dnl
|
||||
FLOAT_H=float.h
|
||||
GL_GENERATE_FLOAT_H=true
|
||||
;;
|
||||
x86_64 )
|
||||
# On x86_64 systems, the C compiler may still be generating
|
||||
# 32-bit code.
|
||||
AC_EGREP_CPP([yes],
|
||||
[#if defined __LP64__ || defined __x86_64__ || defined __amd64__
|
||||
yes
|
||||
#endif],
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __LP64__ || defined __x86_64__ || defined __amd64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[],
|
||||
[FLOAT_H=float.h])
|
||||
[GL_GENERATE_FLOAT_H=true])
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
linux*)
|
||||
case "$host_cpu" in
|
||||
powerpc*)
|
||||
FLOAT_H=float.h
|
||||
GL_GENERATE_FLOAT_H=true
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case "$host_os" in
|
||||
aix* | freebsd* | linux*)
|
||||
if test -n "$FLOAT_H"; then
|
||||
aix* | freebsd* | dragonfly* | linux*)
|
||||
if $GL_GENERATE_FLOAT_H; then
|
||||
REPLACE_FLOAT_LDBL=1
|
||||
fi
|
||||
;;
|
||||
|
@ -69,14 +73,20 @@ int main ()
|
|||
[gl_cv_func_itold_works=no],
|
||||
[case "$host" in
|
||||
sparc*-*-linux*)
|
||||
AC_EGREP_CPP([yes],
|
||||
[#if defined __LP64__ || defined __arch64__
|
||||
yes
|
||||
#endif],
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __LP64__ || defined __arch64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_func_itold_works="guessing no"],
|
||||
[gl_cv_func_itold_works="guessing yes"])
|
||||
;;
|
||||
*) gl_cv_func_itold_works="guessing yes" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_itold_works="guessing yes" ;;
|
||||
*) gl_cv_func_itold_works="guessing yes" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
@ -85,14 +95,12 @@ int main ()
|
|||
REPLACE_ITOLD=1
|
||||
dnl We add the workaround to <float.h> but also to <math.h>,
|
||||
dnl to increase the chances that the fix function gets pulled in.
|
||||
FLOAT_H=float.h
|
||||
GL_GENERATE_FLOAT_H=true
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -n "$FLOAT_H"; then
|
||||
if $GL_GENERATE_FLOAT_H; then
|
||||
gl_NEXT_HEADERS([float.h])
|
||||
fi
|
||||
AC_SUBST([FLOAT_H])
|
||||
AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
|
||||
AC_SUBST([REPLACE_ITOLD])
|
||||
])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# floorf.m4 serial 13
|
||||
dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
|
||||
# floorf.m4 serial 18
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -39,7 +39,7 @@ AC_DEFUN([gl_FUNC_FLOORF],
|
|||
static float dummy (float f) { return 0; }
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
float (*my_floorf) (float) = argc ? floorf : dummy;
|
||||
float (* volatile my_floorf) (float) = argc ? floorf : dummy;
|
||||
/* Test whether floorf (-0.0f) is -0.0f. */
|
||||
if (signbitf (minus_zerof) && !signbitf (my_floorf (minus_zerof)))
|
||||
return 1;
|
||||
|
@ -49,10 +49,14 @@ int main (int argc, char *argv[])
|
|||
[gl_cv_func_floorf_ieee=yes],
|
||||
[gl_cv_func_floorf_ieee=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu*) gl_cv_func_floorf_ieee="guessing yes" ;;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_floorf_ieee="guessing no" ;;
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_floorf_ieee="guessing yes" ;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_floorf_ieee="guessing yes" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_floorf_ieee="guessing yes" ;;
|
||||
# If we don't know, obey --enable-cross-guesses.
|
||||
*) gl_cv_func_floorf_ieee="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
LIBS="$save_LIBS"
|
||||
|
|
149
gl/m4/fopen.m4
Normal file
149
gl/m4/fopen.m4
Normal file
|
@ -0,0 +1,149 @@
|
|||
# fopen.m4 serial 13
|
||||
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FOPEN],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
case "$host_os" in
|
||||
mingw* | pw*)
|
||||
dnl Replace fopen, for handling of "/dev/null".
|
||||
REPLACE_FOPEN=1
|
||||
dnl fopen on mingw also has the trailing slash bug.
|
||||
gl_cv_func_fopen_slash="guessing no"
|
||||
;;
|
||||
*)
|
||||
dnl fopen("foo/", "w") should not create a file when the file name has a
|
||||
dnl trailing slash.
|
||||
AC_CACHE_CHECK([whether fopen recognizes a trailing slash],
|
||||
[gl_cv_func_fopen_slash],
|
||||
[
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
int main ()
|
||||
{
|
||||
FILE *fp = fopen ("conftest.sl/", "w");
|
||||
int result = (fp != NULL);
|
||||
if (fp != NULL)
|
||||
fclose (fp);
|
||||
return result;
|
||||
}]])],
|
||||
[gl_cv_func_fopen_slash=yes],
|
||||
[gl_cv_func_fopen_slash=no],
|
||||
[
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
|
||||
gl_cv_func_fopen_slash="guessing no" ;;
|
||||
*)
|
||||
gl_cv_func_fopen_slash="guessing yes" ;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
rm -f conftest.sl
|
||||
])
|
||||
;;
|
||||
esac
|
||||
case "$gl_cv_func_fopen_slash" in
|
||||
*no)
|
||||
AC_DEFINE([FOPEN_TRAILING_SLASH_BUG], [1],
|
||||
[Define to 1 if fopen() fails to recognize a trailing slash.])
|
||||
REPLACE_FOPEN=1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_FUNC_FOPEN_GNU],
|
||||
[
|
||||
AC_REQUIRE([gl_FUNC_FOPEN])
|
||||
AC_CACHE_CHECK([whether fopen supports the mode character 'x'],
|
||||
[gl_cv_func_fopen_mode_x],
|
||||
[rm -f conftest.x
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
int main ()
|
||||
{
|
||||
FILE *fp;
|
||||
fp = fopen ("conftest.x", "w");
|
||||
fclose (fp);
|
||||
fp = fopen ("conftest.x", "wx");
|
||||
if (fp != NULL)
|
||||
/* 'x' ignored */
|
||||
return 1;
|
||||
else if (errno == EEXIST)
|
||||
return 0;
|
||||
else
|
||||
/* 'x' rejected */
|
||||
return 2;
|
||||
}]])],
|
||||
[gl_cv_func_fopen_mode_x=yes],
|
||||
[gl_cv_func_fopen_mode_x=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on glibc and musl systems.
|
||||
linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*)
|
||||
gl_cv_func_fopen_mode_x="guessing yes" ;;
|
||||
# If we don't know, obey --enable-cross-guesses.
|
||||
*)
|
||||
gl_cv_func_fopen_mode_x="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
rm -f conftest.x
|
||||
])
|
||||
AC_CACHE_CHECK([whether fopen supports the mode character 'e'],
|
||||
[gl_cv_func_fopen_mode_e],
|
||||
[echo foo > conftest.x
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
]GL_MDA_DEFINES[
|
||||
int main ()
|
||||
{
|
||||
FILE *fp = fopen ("conftest.x", "re");
|
||||
if (fp != NULL)
|
||||
{
|
||||
if (fcntl (fileno (fp), F_GETFD) & FD_CLOEXEC)
|
||||
return 0;
|
||||
else
|
||||
/* 'e' ignored */
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
/* 'e' rejected */
|
||||
return 2;
|
||||
}]])],
|
||||
[gl_cv_func_fopen_mode_e=yes],
|
||||
[gl_cv_func_fopen_mode_e=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on glibc and musl systems.
|
||||
linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*)
|
||||
gl_cv_func_fopen_mode_e="guessing yes" ;;
|
||||
# Guess no on native Windows.
|
||||
mingw*)
|
||||
gl_cv_func_fopen_mode_e="guessing no" ;;
|
||||
# If we don't know, obey --enable-cross-guesses.
|
||||
*)
|
||||
gl_cv_func_fopen_mode_e="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
rm -f conftest.x
|
||||
])
|
||||
REPLACE_FOPEN_FOR_FOPEN_GNU="$REPLACE_FOPEN"
|
||||
case "$gl_cv_func_fopen_mode_x" in
|
||||
*no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;;
|
||||
esac
|
||||
case "$gl_cv_func_fopen_mode_e" in
|
||||
*no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Prerequisites of lib/fopen.c.
|
||||
AC_DEFUN([gl_PREREQ_FOPEN], [:])
|
73
gl/m4/fpurge.m4
Normal file
73
gl/m4/fpurge.m4
Normal file
|
@ -0,0 +1,73 @@
|
|||
# fpurge.m4 serial 12
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FPURGE],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CHECK_HEADERS_ONCE([stdio_ext.h])
|
||||
AC_CHECK_FUNCS_ONCE([fpurge])
|
||||
AC_CHECK_FUNCS_ONCE([__fpurge])
|
||||
AC_CHECK_DECLS([fpurge], , , [[#include <stdio.h>]])
|
||||
if test "x$ac_cv_func_fpurge" = xyes; then
|
||||
HAVE_FPURGE=1
|
||||
# Detect BSD bug. Only cygwin 1.7 and musl are known to be immune.
|
||||
AC_CACHE_CHECK([whether fpurge works], [gl_cv_func_fpurge_works],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <stdio.h>
|
||||
]],
|
||||
[[FILE *f = fopen ("conftest.txt", "w+");
|
||||
if (!f)
|
||||
return 1;
|
||||
if (fputc ('a', f) != 'a')
|
||||
{ fclose (f); return 2; }
|
||||
rewind (f);
|
||||
if (fgetc (f) != 'a')
|
||||
{ fclose (f); return 3; }
|
||||
if (fgetc (f) != EOF)
|
||||
{ fclose (f); return 4; }
|
||||
if (fpurge (f) != 0)
|
||||
{ fclose (f); return 5; }
|
||||
if (putc ('b', f) != 'b')
|
||||
{ fclose (f); return 6; }
|
||||
if (fclose (f) != 0)
|
||||
return 7;
|
||||
if ((f = fopen ("conftest.txt", "r")) == NULL)
|
||||
return 8;
|
||||
if (fgetc (f) != 'a')
|
||||
{ fclose (f); return 9; }
|
||||
if (fgetc (f) != 'b')
|
||||
{ fclose (f); return 10; }
|
||||
if (fgetc (f) != EOF)
|
||||
{ fclose (f); return 11; }
|
||||
if (fclose (f) != 0)
|
||||
return 12;
|
||||
if (remove ("conftest.txt") != 0)
|
||||
return 13;
|
||||
return 0;
|
||||
]])],
|
||||
[gl_cv_func_fpurge_works=yes],
|
||||
[gl_cv_func_fpurge_works=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_fpurge_works="guessing yes" ;;
|
||||
# Otherwise obey --enable-cross-guesses.
|
||||
*) gl_cv_func_fpurge_works="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
case "$gl_cv_func_fpurge_works" in
|
||||
*yes) ;;
|
||||
*) REPLACE_FPURGE=1 ;;
|
||||
esac
|
||||
else
|
||||
HAVE_FPURGE=0
|
||||
fi
|
||||
if test "x$ac_cv_have_decl_fpurge" = xno; then
|
||||
HAVE_DECL_FPURGE=0
|
||||
fi
|
||||
])
|
|
@ -1,12 +1,11 @@
|
|||
# sha1.m4 serial 11
|
||||
dnl Copyright (C) 2002-2006, 2008-2013 Free Software Foundation, Inc.
|
||||
# freading.m4 serial 2
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_SHA1],
|
||||
AC_DEFUN([gl_FUNC_FREADING],
|
||||
[
|
||||
dnl Prerequisites of lib/sha1.c.
|
||||
AC_REQUIRE([gl_BIGENDIAN])
|
||||
:
|
||||
AC_CHECK_HEADERS_ONCE([stdio_ext.h])
|
||||
AC_CHECK_FUNCS_ONCE([__freading])
|
||||
])
|
52
gl/m4/free.m4
Normal file
52
gl/m4/free.m4
Normal file
|
@ -0,0 +1,52 @@
|
|||
# free.m4 serial 6
|
||||
# Copyright (C) 2003-2005, 2009-2023 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# Written by Paul Eggert and Bruno Haible.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FREE],
|
||||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
|
||||
dnl In the next release of POSIX, free must preserve errno.
|
||||
dnl https://www.austingroupbugs.net/view.php?id=385
|
||||
dnl https://sourceware.org/bugzilla/show_bug.cgi?id=17924
|
||||
dnl So far, we know of three platforms that do this:
|
||||
dnl * glibc >= 2.33, thanks to the fix for this bug:
|
||||
dnl <https://sourceware.org/bugzilla/show_bug.cgi?id=17924>
|
||||
dnl * OpenBSD >= 4.5, thanks to this commit:
|
||||
dnl <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdlib/malloc.c.diff?r1=1.100&r2=1.101&f=h>
|
||||
dnl * Solaris, because its malloc() implementation is based on brk(),
|
||||
dnl not mmap(); hence its free() implementation makes no system calls.
|
||||
dnl For other platforms, you can only be sure if they state it in their
|
||||
dnl documentation, or by code inspection of the free() implementation in libc.
|
||||
AC_CACHE_CHECK([whether free is known to preserve errno],
|
||||
[gl_cv_func_free_preserves_errno],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <stdlib.h>
|
||||
]],
|
||||
[[#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__)
|
||||
#elif defined __OpenBSD__
|
||||
#elif defined __sun
|
||||
#else
|
||||
#error "'free' is not known to preserve errno"
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_func_free_preserves_errno=yes],
|
||||
[gl_cv_func_free_preserves_errno=no])
|
||||
])
|
||||
|
||||
case $gl_cv_func_free_preserves_errno in
|
||||
*yes)
|
||||
AC_DEFINE([HAVE_FREE_POSIX], [1],
|
||||
[Define if the 'free' function is guaranteed to preserve errno.])
|
||||
;;
|
||||
*) REPLACE_FREE=1 ;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Prerequisites of lib/free.c.
|
||||
AC_DEFUN([gl_PREREQ_FREE], [:])
|
15
gl/m4/fseek.m4
Normal file
15
gl/m4/fseek.m4
Normal file
|
@ -0,0 +1,15 @@
|
|||
# fseek.m4 serial 4
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FSEEK],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FUNC_FSEEKO])
|
||||
dnl When fseeko needs fixes, fseek needs them too.
|
||||
if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
|
||||
REPLACE_FSEEK=1
|
||||
fi
|
||||
])
|
77
gl/m4/fseeko.m4
Normal file
77
gl/m4/fseeko.m4
Normal file
|
@ -0,0 +1,77 @@
|
|||
# fseeko.m4 serial 20
|
||||
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FSEEKO],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_STDIN_LARGE_OFFSET])
|
||||
AC_REQUIRE([gl_SYS_TYPES_H])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
|
||||
dnl Persuade glibc <stdio.h> to declare fseeko().
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko],
|
||||
[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
|
||||
]], [[fseeko (stdin, 0, 0);]])],
|
||||
[gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no])
|
||||
])
|
||||
|
||||
AC_CHECK_DECLS_ONCE([fseeko])
|
||||
if test $ac_cv_have_decl_fseeko = no; then
|
||||
HAVE_DECL_FSEEKO=0
|
||||
fi
|
||||
|
||||
if test $gl_cv_func_fseeko = no; then
|
||||
HAVE_FSEEKO=0
|
||||
else
|
||||
if test $WINDOWS_64_BIT_OFF_T = 1; then
|
||||
REPLACE_FSEEKO=1
|
||||
fi
|
||||
if test $gl_cv_var_stdin_large_offset = no; then
|
||||
REPLACE_FSEEKO=1
|
||||
fi
|
||||
m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
|
||||
gl_FUNC_FFLUSH_STDIN
|
||||
case "$gl_cv_func_fflush_stdin" in
|
||||
*yes) ;;
|
||||
*) REPLACE_FSEEKO=1 ;;
|
||||
esac
|
||||
])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Code shared by fseeko and ftello. Determine if large files are supported,
|
||||
dnl but stdin does not start as a large file by default.
|
||||
AC_DEFUN([gl_STDIN_LARGE_OFFSET],
|
||||
[
|
||||
AC_CACHE_CHECK([whether stdin defaults to large file offsets],
|
||||
[gl_cv_var_stdin_large_offset],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
|
||||
[[#if defined __SL64 && defined __SCLE /* cygwin */
|
||||
/* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
|
||||
fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
|
||||
it is easier to do a version check than building a runtime test. */
|
||||
# include <cygwin/version.h>
|
||||
# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
|
||||
choke me
|
||||
# endif
|
||||
#endif]])],
|
||||
[gl_cv_var_stdin_large_offset=yes],
|
||||
[gl_cv_var_stdin_large_offset=no])])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/fseeko.c.
|
||||
AC_DEFUN([gl_PREREQ_FSEEKO],
|
||||
[
|
||||
dnl Native Windows has the function _fseeki64. mingw hides it in some
|
||||
dnl circumstances, but mingw64 makes it usable again.
|
||||
AC_CHECK_FUNCS([_fseeki64])
|
||||
if test $ac_cv_func__fseeki64 = yes; then
|
||||
AC_CHECK_DECLS([_fseeki64])
|
||||
fi
|
||||
])
|
40
gl/m4/fstat.m4
Normal file
40
gl/m4/fstat.m4
Normal file
|
@ -0,0 +1,40 @@
|
|||
# fstat.m4 serial 8
|
||||
dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FSTAT],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
|
||||
|
||||
case "$host_os" in
|
||||
mingw* | solaris*)
|
||||
dnl On MinGW, the original stat() returns st_atime, st_mtime,
|
||||
dnl st_ctime values that are affected by the time zone.
|
||||
dnl Solaris stat can return a negative tv_nsec.
|
||||
REPLACE_FSTAT=1
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl Replace fstat() for supporting the gnulib-defined open() on directories.
|
||||
m4_ifdef([gl_FUNC_FCHDIR], [
|
||||
gl_TEST_FCHDIR
|
||||
if test $HAVE_FCHDIR = 0; then
|
||||
case "$gl_cv_func_open_directory_works" in
|
||||
*yes) ;;
|
||||
*)
|
||||
REPLACE_FSTAT=1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/fstat.c and lib/stat-w32.c.
|
||||
AC_DEFUN([gl_PREREQ_FSTAT], [
|
||||
AC_REQUIRE([gl_SYS_STAT_H])
|
||||
AC_REQUIRE([gl_PREREQ_STAT_W32])
|
||||
:
|
||||
])
|
|
@ -6,7 +6,7 @@ dnl See if struct statfs has the f_fstypename member.
|
|||
dnl If so, define HAVE_STRUCT_STATFS_F_FSTYPENAME.
|
||||
dnl
|
||||
|
||||
# Copyright (C) 1998-1999, 2001, 2004, 2006, 2009-2013 Free Software
|
||||
# Copyright (C) 1998-1999, 2001, 2004, 2006, 2009-2023 Free Software
|
||||
# Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
363
gl/m4/fsusage.m4
363
gl/m4/fsusage.m4
|
@ -1,7 +1,7 @@
|
|||
# serial 30
|
||||
# serial 35
|
||||
# Obtaining file system usage information.
|
||||
|
||||
# Copyright (C) 1997-1998, 2000-2001, 2003-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-1998, 2000-2001, 2003-2023 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -29,27 +29,29 @@ AC_DEFUN([gl_FSUSAGE],
|
|||
|
||||
AC_DEFUN([gl_FILE_SYSTEM_USAGE],
|
||||
[
|
||||
dnl Enable large-file support. This has the effect of changing the size
|
||||
dnl of field f_blocks in 'struct statvfs' from 32 bit to 64 bit on
|
||||
dnl glibc/Hurd, HP-UX 11, Solaris (32-bit mode). It also changes the size
|
||||
dnl of field f_blocks in 'struct statfs' from 32 bit to 64 bit on
|
||||
dnl Mac OS X >= 10.5 (32-bit mode).
|
||||
AC_REQUIRE([AC_SYS_LARGEFILE])
|
||||
dnl Enable large-file support. This has the effect of changing the size
|
||||
dnl of field f_blocks in 'struct statvfs' from 32 bit to 64 bit on
|
||||
dnl glibc/Hurd, HP-UX 11, Solaris (32-bit mode). It also changes the size
|
||||
dnl of field f_blocks in 'struct statfs' from 32 bit to 64 bit on
|
||||
dnl Mac OS X >= 10.5 (32-bit mode).
|
||||
AC_REQUIRE([AC_SYS_LARGEFILE])
|
||||
|
||||
AC_MSG_NOTICE([checking how to get file system space usage])
|
||||
ac_fsusage_space=no
|
||||
ac_fsusage_space=no
|
||||
|
||||
# Perform only the link test since it seems there are no variants of the
|
||||
# statvfs function. This check is more than just AC_CHECK_FUNCS([statvfs])
|
||||
# because that got a false positive on SCO OSR5. Adding the declaration
|
||||
# of a 'struct statvfs' causes this test to fail (as it should) on such
|
||||
# systems. That system is reported to work fine with STAT_STATFS4 which
|
||||
# is what it gets when this test fails.
|
||||
if test $ac_fsusage_space = no; then
|
||||
# glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0,
|
||||
# OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS.
|
||||
AC_CACHE_CHECK([for statvfs function (SVR4)], [fu_cv_sys_stat_statvfs],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
|
||||
# Perform only the link test since it seems there are no variants of the
|
||||
# statvfs function. This check is more than just AC_CHECK_FUNCS([statvfs])
|
||||
# because that got a false positive on SCO OSR5. Adding the declaration
|
||||
# of a 'struct statvfs' causes this test to fail (as it should) on such
|
||||
# systems. That system is reported to work fine with STAT_STATFS4 which
|
||||
# is what it gets when this test fails.
|
||||
if test $ac_fsusage_space = no; then
|
||||
# glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0,
|
||||
# OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS.
|
||||
AC_CACHE_CHECK([for statvfs function (SVR4)],
|
||||
[fu_cv_sys_stat_statvfs],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#include <sys/types.h>
|
||||
#ifdef __osf__
|
||||
"Do not use Tru64's statvfs implementation"
|
||||
#endif
|
||||
|
@ -68,45 +70,47 @@ struct statvfs fsd;
|
|||
int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1];
|
||||
#endif
|
||||
]],
|
||||
[[statvfs (0, &fsd);]])],
|
||||
[fu_cv_sys_stat_statvfs=yes],
|
||||
[fu_cv_sys_stat_statvfs=no])])
|
||||
if test $fu_cv_sys_stat_statvfs = yes; then
|
||||
ac_fsusage_space=yes
|
||||
# AIX >= 5.2 has statvfs64 that has a wider f_blocks field than statvfs.
|
||||
# glibc, HP-UX, IRIX, Solaris have statvfs64 as well, but on these systems
|
||||
# statvfs with large-file support is already equivalent to statvfs64.
|
||||
AC_CACHE_CHECK([whether to use statvfs64],
|
||||
[fu_cv_sys_stat_statvfs64],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <sys/types.h>
|
||||
#include <sys/statvfs.h>
|
||||
struct statvfs64 fsd;
|
||||
int check_f_blocks_larger_in_statvfs64
|
||||
[sizeof (((struct statvfs64 *) 0)->f_blocks)
|
||||
> sizeof (((struct statvfs *) 0)->f_blocks)
|
||||
? 1 : -1];
|
||||
]],
|
||||
[[statvfs64 (0, &fsd);]])],
|
||||
[fu_cv_sys_stat_statvfs64=yes],
|
||||
[fu_cv_sys_stat_statvfs64=no])
|
||||
[[statvfs (0, &fsd);]])],
|
||||
[fu_cv_sys_stat_statvfs=yes],
|
||||
[fu_cv_sys_stat_statvfs=no])
|
||||
])
|
||||
if test $fu_cv_sys_stat_statvfs64 = yes; then
|
||||
AC_DEFINE([STAT_STATVFS64], [1],
|
||||
[ Define if statvfs64 should be preferred over statvfs.])
|
||||
else
|
||||
AC_DEFINE([STAT_STATVFS], [1],
|
||||
[ Define if there is a function named statvfs. (SVR4)])
|
||||
if test $fu_cv_sys_stat_statvfs = yes; then
|
||||
ac_fsusage_space=yes
|
||||
# AIX >= 5.2 has statvfs64 that has a wider f_blocks field than statvfs.
|
||||
# glibc, HP-UX, IRIX, Solaris have statvfs64 as well, but on these systems
|
||||
# statvfs with large-file support is already equivalent to statvfs64.
|
||||
AC_CACHE_CHECK([whether to use statvfs64],
|
||||
[fu_cv_sys_stat_statvfs64],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <sys/types.h>
|
||||
#include <sys/statvfs.h>
|
||||
struct statvfs64 fsd;
|
||||
int check_f_blocks_larger_in_statvfs64
|
||||
[sizeof (((struct statvfs64 *) 0)->f_blocks)
|
||||
> sizeof (((struct statvfs *) 0)->f_blocks)
|
||||
? 1 : -1];
|
||||
]],
|
||||
[[statvfs64 (0, &fsd);]])],
|
||||
[fu_cv_sys_stat_statvfs64=yes],
|
||||
[fu_cv_sys_stat_statvfs64=no])
|
||||
])
|
||||
if test $fu_cv_sys_stat_statvfs64 = yes; then
|
||||
AC_DEFINE([STAT_STATVFS64], [1],
|
||||
[Define if statvfs64 should be preferred over statvfs.])
|
||||
else
|
||||
AC_DEFINE([STAT_STATVFS], [1],
|
||||
[Define if there is a function named statvfs. (SVR4)])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check for this unconditionally so we have a
|
||||
# good fallback on glibc/Linux > 2.6 < 2.6.36
|
||||
AC_MSG_CHECKING([for two-argument statfs with statfs.f_frsize member])
|
||||
AC_CACHE_VAL([fu_cv_sys_stat_statfs2_frsize],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
# Check for this unconditionally so we have a
|
||||
# good fallback on glibc/Linux > 2.6 < 2.6.36
|
||||
AC_CACHE_CHECK([for two-argument statfs with statfs.f_frsize member],
|
||||
[fu_cv_sys_stat_statfs2_frsize],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
|
@ -119,26 +123,26 @@ AC_CACHE_VAL([fu_cv_sys_stat_statfs2_frsize],
|
|||
int
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_frsize = 0;
|
||||
return statfs (".", &fsd) != 0;
|
||||
struct statfs fsd;
|
||||
fsd.f_frsize = 0;
|
||||
return statfs (".", &fsd) != 0;
|
||||
}]])],
|
||||
[fu_cv_sys_stat_statfs2_frsize=yes],
|
||||
[fu_cv_sys_stat_statfs2_frsize=no],
|
||||
[fu_cv_sys_stat_statfs2_frsize=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_stat_statfs2_frsize])
|
||||
if test $fu_cv_sys_stat_statfs2_frsize = yes; then
|
||||
[fu_cv_sys_stat_statfs2_frsize=yes],
|
||||
[fu_cv_sys_stat_statfs2_frsize=no],
|
||||
[fu_cv_sys_stat_statfs2_frsize=no])
|
||||
])
|
||||
if test $fu_cv_sys_stat_statfs2_frsize = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS2_FRSIZE], [1],
|
||||
[ Define if statfs takes 2 args and struct statfs has a field named f_frsize.
|
||||
(glibc/Linux > 2.6)])
|
||||
fi
|
||||
[Define if statfs takes 2 args and struct statfs has a field named f_frsize.
|
||||
(glibc/Linux > 2.6)])
|
||||
fi
|
||||
|
||||
if test $ac_fsusage_space = no; then
|
||||
# DEC Alpha running OSF/1
|
||||
AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
|
||||
AC_CACHE_VAL([fu_cv_sys_stat_statfs3_osf1],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
if test $ac_fsusage_space = no; then
|
||||
# DEC Alpha running OSF/1
|
||||
AC_CACHE_CHECK([for 3-argument statfs function (DEC OSF/1)],
|
||||
[fu_cv_sys_stat_statfs3_osf1],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mount.h>
|
||||
|
@ -149,28 +153,27 @@ if test $ac_fsusage_space = no; then
|
|||
fsd.f_fsize = 0;
|
||||
return statfs (".", &fsd, sizeof (struct statfs)) != 0;
|
||||
}]])],
|
||||
[fu_cv_sys_stat_statfs3_osf1=yes],
|
||||
[fu_cv_sys_stat_statfs3_osf1=no],
|
||||
[fu_cv_sys_stat_statfs3_osf1=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_stat_statfs3_osf1])
|
||||
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS3_OSF1], [1],
|
||||
[ Define if statfs takes 3 args. (DEC Alpha running OSF/1)])
|
||||
[fu_cv_sys_stat_statfs3_osf1=yes],
|
||||
[fu_cv_sys_stat_statfs3_osf1=no],
|
||||
[fu_cv_sys_stat_statfs3_osf1=no])
|
||||
])
|
||||
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS3_OSF1], [1],
|
||||
[Define if statfs takes 3 args. (DEC Alpha running OSF/1)])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_fsusage_space = no; then
|
||||
# glibc/Linux, Mac OS X, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4.
|
||||
# (glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0,
|
||||
# OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.)
|
||||
# (On IRIX you need to include <sys/statfs.h>, not only <sys/mount.h> and
|
||||
# <sys/vfs.h>.)
|
||||
# (On Solaris, statfs has 4 arguments.)
|
||||
AC_MSG_CHECKING([for two-argument statfs with statfs.f_bsize dnl
|
||||
member (AIX, 4.3BSD)])
|
||||
AC_CACHE_VAL([fu_cv_sys_stat_statfs2_bsize],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
if test $ac_fsusage_space = no; then
|
||||
# glibc/Linux, Mac OS X, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4.
|
||||
# (glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0,
|
||||
# OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.)
|
||||
# (On IRIX you need to include <sys/statfs.h>, not only <sys/mount.h> and
|
||||
# <sys/vfs.h>.)
|
||||
# (On Solaris, statfs has 4 arguments.)
|
||||
AC_CACHE_CHECK([for two-argument statfs with statfs.f_bsize member (AIX, 4.3BSD)],
|
||||
[fu_cv_sys_stat_statfs2_bsize],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
|
@ -183,57 +186,56 @@ member (AIX, 4.3BSD)])
|
|||
int
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_bsize = 0;
|
||||
return statfs (".", &fsd) != 0;
|
||||
struct statfs fsd;
|
||||
fsd.f_bsize = 0;
|
||||
return statfs (".", &fsd) != 0;
|
||||
}]])],
|
||||
[fu_cv_sys_stat_statfs2_bsize=yes],
|
||||
[fu_cv_sys_stat_statfs2_bsize=no],
|
||||
[fu_cv_sys_stat_statfs2_bsize=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_stat_statfs2_bsize])
|
||||
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS2_BSIZE], [1],
|
||||
[ Define if statfs takes 2 args and struct statfs has a field named f_bsize.
|
||||
(4.3BSD, SunOS 4, HP-UX, AIX PS/2)])
|
||||
[fu_cv_sys_stat_statfs2_bsize=yes],
|
||||
[fu_cv_sys_stat_statfs2_bsize=no],
|
||||
[fu_cv_sys_stat_statfs2_bsize=no])
|
||||
])
|
||||
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS2_BSIZE], [1],
|
||||
[Define if statfs takes 2 args and struct statfs has a field named f_bsize.
|
||||
(4.3BSD, SunOS 4, HP-UX)])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_fsusage_space = no; then
|
||||
# SVR3
|
||||
# (Solaris already handled above.)
|
||||
AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
|
||||
AC_CACHE_VAL([fu_cv_sys_stat_statfs4],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
if test $ac_fsusage_space = no; then
|
||||
# SVR3
|
||||
# (Solaris already handled above.)
|
||||
AC_CACHE_CHECK([for four-argument statfs (SVR3)],
|
||||
[fu_cv_sys_stat_statfs4],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/types.h>
|
||||
#include <sys/statfs.h>
|
||||
int
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
return statfs (".", &fsd, sizeof fsd, 0) != 0;
|
||||
struct statfs fsd;
|
||||
return statfs (".", &fsd, sizeof fsd, 0) != 0;
|
||||
}]])],
|
||||
[fu_cv_sys_stat_statfs4=yes],
|
||||
[fu_cv_sys_stat_statfs4=no],
|
||||
[fu_cv_sys_stat_statfs4=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_stat_statfs4])
|
||||
if test $fu_cv_sys_stat_statfs4 = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS4], [1],
|
||||
[ Define if statfs takes 4 args. (SVR3, Dynix, old Irix, old AIX, Dolphin)])
|
||||
[fu_cv_sys_stat_statfs4=yes],
|
||||
[fu_cv_sys_stat_statfs4=no],
|
||||
[fu_cv_sys_stat_statfs4=no])
|
||||
])
|
||||
if test $fu_cv_sys_stat_statfs4 = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS4], [1],
|
||||
[Define if statfs takes 4 args. (SVR3, old Irix)])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_fsusage_space = no; then
|
||||
# 4.4BSD and older NetBSD
|
||||
# (OSF/1 already handled above.)
|
||||
# (On AIX, you need to include <sys/statfs.h>, not only <sys/mount.h>.)
|
||||
# (On Solaris, statfs has 4 arguments and 'struct statfs' is not declared in
|
||||
# <sys/mount.h>.)
|
||||
AC_MSG_CHECKING([for two-argument statfs with statfs.f_fsize dnl
|
||||
member (4.4BSD and NetBSD)])
|
||||
AC_CACHE_VAL([fu_cv_sys_stat_statfs2_fsize],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
if test $ac_fsusage_space = no; then
|
||||
# 4.4BSD and older NetBSD
|
||||
# (OSF/1 already handled above.)
|
||||
# (On AIX, you need to include <sys/statfs.h>, not only <sys/mount.h>.)
|
||||
# (On Solaris, statfs has 4 arguments and 'struct statfs' is not declared in
|
||||
# <sys/mount.h>.)
|
||||
AC_CACHE_CHECK([for two-argument statfs with statfs.f_fsize member (4.4BSD and NetBSD)],
|
||||
[fu_cv_sys_stat_statfs2_fsize],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
|
@ -244,69 +246,23 @@ member (4.4BSD and NetBSD)])
|
|||
int
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_fsize = 0;
|
||||
return statfs (".", &fsd) != 0;
|
||||
struct statfs fsd;
|
||||
fsd.f_fsize = 0;
|
||||
return statfs (".", &fsd) != 0;
|
||||
}]])],
|
||||
[fu_cv_sys_stat_statfs2_fsize=yes],
|
||||
[fu_cv_sys_stat_statfs2_fsize=no],
|
||||
[fu_cv_sys_stat_statfs2_fsize=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_stat_statfs2_fsize])
|
||||
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS2_FSIZE], [1],
|
||||
[ Define if statfs takes 2 args and struct statfs has a field named f_fsize.
|
||||
(4.4BSD, NetBSD)])
|
||||
[fu_cv_sys_stat_statfs2_fsize=yes],
|
||||
[fu_cv_sys_stat_statfs2_fsize=no],
|
||||
[fu_cv_sys_stat_statfs2_fsize=no])
|
||||
])
|
||||
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS2_FSIZE], [1],
|
||||
[Define if statfs takes 2 args and struct statfs has a field named f_fsize.
|
||||
(4.4BSD, NetBSD)])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_fsusage_space = no; then
|
||||
# Ultrix
|
||||
AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
|
||||
AC_CACHE_VAL([fu_cv_sys_stat_fs_data],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_FS_TYPES_H
|
||||
#include <sys/fs_types.h>
|
||||
#endif
|
||||
int
|
||||
main ()
|
||||
{
|
||||
struct fs_data fsd;
|
||||
/* Ultrix's statfs returns 1 for success,
|
||||
0 for not mounted, -1 for failure. */
|
||||
return statfs (".", &fsd) != 1;
|
||||
}]])],
|
||||
[fu_cv_sys_stat_fs_data=yes],
|
||||
[fu_cv_sys_stat_fs_data=no],
|
||||
[fu_cv_sys_stat_fs_data=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_stat_fs_data])
|
||||
if test $fu_cv_sys_stat_fs_data = yes; then
|
||||
ac_fsusage_space=yes
|
||||
AC_DEFINE([STAT_STATFS2_FS_DATA], [1],
|
||||
[ Define if statfs takes 2 args and the second argument has
|
||||
type struct fs_data. (Ultrix)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_fsusage_space = no; then
|
||||
# SVR2
|
||||
# (AIX, HP-UX, OSF/1 already handled above.)
|
||||
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <sys/filsys.h>
|
||||
]])],
|
||||
[AC_DEFINE([STAT_READ_FILSYS], [1],
|
||||
[Define if there is no specific function for reading file systems usage
|
||||
information and you have the <sys/filsys.h> header file. (SVR2)])
|
||||
ac_fsusage_space=yes])
|
||||
fi
|
||||
|
||||
AS_IF([test $ac_fsusage_space = yes], [$1], [$2])
|
||||
AS_IF([test $ac_fsusage_space = yes], [$1], [$2])
|
||||
|
||||
])
|
||||
|
||||
|
@ -316,18 +272,22 @@ AS_IF([test $ac_fsusage_space = yes], [$1], [$2])
|
|||
# enable the work-around code in fsusage.c.
|
||||
AC_DEFUN([gl_STATFS_TRUNCATES],
|
||||
[
|
||||
AC_MSG_CHECKING([for statfs that truncates block counts])
|
||||
AC_CACHE_VAL([fu_cv_sys_truncating_statfs],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_CACHE_CHECK([for statfs that truncates block counts],
|
||||
[fu_cv_sys_truncating_statfs],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#if !defined(sun) && !defined(__sun)
|
||||
choke -- this is a workaround for a Sun-specific problem
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <sys/vfs.h>]],
|
||||
[[struct statfs t; long c = *(t.f_spare);
|
||||
if (c) return 0;]])],
|
||||
[fu_cv_sys_truncating_statfs=yes],
|
||||
[fu_cv_sys_truncating_statfs=no])])
|
||||
#include <sys/vfs.h>
|
||||
]],
|
||||
[[struct statfs t; long c = *(t.f_spare);
|
||||
if (c) return 0;
|
||||
]])],
|
||||
[fu_cv_sys_truncating_statfs=yes],
|
||||
[fu_cv_sys_truncating_statfs=no])
|
||||
])
|
||||
if test $fu_cv_sys_truncating_statfs = yes; then
|
||||
AC_DEFINE([STATFS_TRUNCATES_BLOCK_COUNTS], [1],
|
||||
[Define if the block counts reported by statfs may be truncated to 2GB
|
||||
|
@ -335,13 +295,12 @@ choke -- this is a workaround for a Sun-specific problem
|
|||
(SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
|
||||
SunOS 4.1.1 seems not to be affected.)])
|
||||
fi
|
||||
AC_MSG_RESULT([$fu_cv_sys_truncating_statfs])
|
||||
])
|
||||
|
||||
|
||||
# Prerequisites of lib/fsusage.c not done by gl_FILE_SYSTEM_USAGE.
|
||||
AC_DEFUN([gl_PREREQ_FSUSAGE_EXTRA],
|
||||
[
|
||||
AC_CHECK_HEADERS([dustat.h sys/fs/s5param.h sys/filsys.h sys/statfs.h])
|
||||
AC_CHECK_HEADERS([sys/fs/s5param.h sys/statfs.h])
|
||||
gl_STATFS_TRUNCATES
|
||||
])
|
||||
|
|
15
gl/m4/ftell.m4
Normal file
15
gl/m4/ftell.m4
Normal file
|
@ -0,0 +1,15 @@
|
|||
# ftell.m4 serial 3
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FTELL],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FUNC_FTELLO])
|
||||
dnl When ftello needs fixes, ftell needs them too.
|
||||
if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
|
||||
REPLACE_FTELL=1
|
||||
fi
|
||||
])
|
151
gl/m4/ftello.m4
Normal file
151
gl/m4/ftello.m4
Normal file
|
@ -0,0 +1,151 @@
|
|||
# ftello.m4 serial 14
|
||||
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_FTELLO],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([gl_STDIN_LARGE_OFFSET])
|
||||
AC_REQUIRE([gl_SYS_TYPES_H])
|
||||
|
||||
dnl Persuade glibc <stdio.h> to declare ftello().
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_CHECK_DECLS_ONCE([ftello])
|
||||
if test $ac_cv_have_decl_ftello = no; then
|
||||
HAVE_DECL_FTELLO=0
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for ftello], [gl_cv_func_ftello],
|
||||
[
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <stdio.h>]],
|
||||
[[ftello (stdin);]])],
|
||||
[gl_cv_func_ftello=yes],
|
||||
[gl_cv_func_ftello=no])
|
||||
])
|
||||
if test $gl_cv_func_ftello = no; then
|
||||
HAVE_FTELLO=0
|
||||
else
|
||||
if test $WINDOWS_64_BIT_OFF_T = 1; then
|
||||
REPLACE_FTELLO=1
|
||||
fi
|
||||
if test $gl_cv_var_stdin_large_offset = no; then
|
||||
REPLACE_FTELLO=1
|
||||
fi
|
||||
if test $REPLACE_FTELLO = 0; then
|
||||
dnl Detect bug on Solaris.
|
||||
dnl ftell and ftello produce incorrect results after putc that followed a
|
||||
dnl getc call that reached EOF on Solaris. This is because the _IOREAD
|
||||
dnl flag does not get cleared in this case, even though _IOWRT gets set,
|
||||
dnl and ftell and ftello look whether the _IOREAD flag is set.
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK([whether ftello works],
|
||||
[gl_cv_func_ftello_works],
|
||||
[
|
||||
dnl Initial guess, used when cross-compiling or when /dev/tty cannot
|
||||
dnl be opened.
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess no on Solaris.
|
||||
solaris*) gl_cv_func_ftello_works="guessing no" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_ftello_works="guessing yes" ;;
|
||||
# Guess yes otherwise.
|
||||
*) gl_cv_func_ftello_works="guessing yes" ;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#define TESTFILE "conftest.tmp"
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
FILE *fp;
|
||||
|
||||
/* Create a file with some contents. */
|
||||
fp = fopen (TESTFILE, "w");
|
||||
if (fp == NULL)
|
||||
return 70;
|
||||
if (fwrite ("foogarsh", 1, 8, fp) < 8)
|
||||
{ fclose (fp); return 71; }
|
||||
if (fclose (fp))
|
||||
return 72;
|
||||
|
||||
/* The file's contents is now "foogarsh". */
|
||||
|
||||
/* Try writing after reading to EOF. */
|
||||
fp = fopen (TESTFILE, "r+");
|
||||
if (fp == NULL)
|
||||
return 73;
|
||||
if (fseek (fp, -1, SEEK_END))
|
||||
{ fclose (fp); return 74; }
|
||||
if (!(getc (fp) == 'h'))
|
||||
{ fclose (fp); return 1; }
|
||||
if (!(getc (fp) == EOF))
|
||||
{ fclose (fp); return 2; }
|
||||
if (!(ftell (fp) == 8))
|
||||
{ fclose (fp); return 3; }
|
||||
if (!(ftell (fp) == 8))
|
||||
{ fclose (fp); return 4; }
|
||||
if (!(putc ('!', fp) == '!'))
|
||||
{ fclose (fp); return 5; }
|
||||
if (!(ftell (fp) == 9))
|
||||
{ fclose (fp); return 6; }
|
||||
if (!(fclose (fp) == 0))
|
||||
return 7;
|
||||
fp = fopen (TESTFILE, "r");
|
||||
if (fp == NULL)
|
||||
return 75;
|
||||
{
|
||||
char buf[10];
|
||||
if (!(fread (buf, 1, 10, fp) == 9))
|
||||
{ fclose (fp); return 10; }
|
||||
if (!(memcmp (buf, "foogarsh!", 9) == 0))
|
||||
{ fclose (fp); return 11; }
|
||||
}
|
||||
if (!(fclose (fp) == 0))
|
||||
return 12;
|
||||
|
||||
/* The file's contents is now "foogarsh!". */
|
||||
|
||||
return 0;
|
||||
}]])],
|
||||
[gl_cv_func_ftello_works=yes],
|
||||
[gl_cv_func_ftello_works=no], [:])
|
||||
])
|
||||
case "$gl_cv_func_ftello_works" in
|
||||
*yes) ;;
|
||||
*)
|
||||
REPLACE_FTELLO=1
|
||||
AC_DEFINE([FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE], [1],
|
||||
[Define to 1 if the system's ftello function has the Solaris bug.])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test $REPLACE_FTELLO = 0; then
|
||||
dnl Detect bug on macOS >= 10.15.
|
||||
gl_FUNC_UNGETC_WORKS
|
||||
if test $gl_ftello_broken_after_ungetc = yes; then
|
||||
REPLACE_FTELLO=1
|
||||
AC_DEFINE([FTELLO_BROKEN_AFTER_UNGETC], [1],
|
||||
[Define to 1 if the system's ftello function has the macOS bug.])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
# Prerequisites of lib/ftello.c.
|
||||
AC_DEFUN([gl_PREREQ_FTELLO],
|
||||
[
|
||||
dnl Native Windows has the function _ftelli64. mingw hides it, but mingw64
|
||||
dnl makes it usable again.
|
||||
AC_CHECK_FUNCS([_ftelli64])
|
||||
])
|
|
@ -1,14 +1,13 @@
|
|||
# getaddrinfo.m4 serial 30
|
||||
dnl Copyright (C) 2004-2013 Free Software Foundation, Inc.
|
||||
# getaddrinfo.m4 serial 34
|
||||
dnl Copyright (C) 2004-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_GETADDRINFO],
|
||||
[
|
||||
AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
|
||||
AC_REQUIRE([gl_HEADER_NETDB])dnl for HAVE_NETDB_H
|
||||
AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo])
|
||||
AC_REQUIRE([gl_SYS_SOCKET_H])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
|
||||
AC_REQUIRE([gl_NETDB_H])dnl for HAVE_NETDB_H
|
||||
GETADDRINFO_LIB=
|
||||
gai_saved_LIBS="$LIBS"
|
||||
|
||||
|
@ -55,10 +54,40 @@ AC_DEFUN([gl_GETADDRINFO],
|
|||
if test "$gl_cv_w32_getaddrinfo" = "yes"; then
|
||||
GETADDRINFO_LIB="-lws2_32"
|
||||
LIBS="$gai_saved_LIBS $GETADDRINFO_LIB"
|
||||
dnl Check for correct signature, in particular for a cdecl-compatible
|
||||
dnl calling convention.
|
||||
AC_CACHE_CHECK([for getaddrinfo with POSIX signature],
|
||||
[gl_cv_func_getaddrinfo_posix_signature],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#ifdef HAVE_NETDB_H
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
#ifdef HAVE_WS2TCPIP_H
|
||||
#include <ws2tcpip.h>
|
||||
#endif
|
||||
#include <stddef.h>
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
int getaddrinfo (const char *, const char *, const struct addrinfo *, struct addrinfo **);
|
||||
]])],
|
||||
[gl_cv_func_getaddrinfo_posix_signature=yes],
|
||||
[gl_cv_func_getaddrinfo_posix_signature=no])
|
||||
])
|
||||
if test $gl_cv_func_getaddrinfo_posix_signature = no; then
|
||||
REPLACE_GETADDRINFO=1
|
||||
fi
|
||||
else
|
||||
HAVE_GETADDRINFO=0
|
||||
fi
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO], [$HAVE_GETADDRINFO],
|
||||
[Define to 1 if getaddrinfo exists, or to 0 otherwise.])
|
||||
|
||||
# We can't use AC_REPLACE_FUNCS here because gai_strerror may be an
|
||||
# inline function declared in ws2tcpip.h, so we need to get that
|
||||
|
@ -127,13 +156,13 @@ const char *gai_strerror(int);]])],
|
|||
# Prerequisites of lib/netdb.in.h and lib/getaddrinfo.c.
|
||||
AC_DEFUN([gl_PREREQ_GETADDRINFO], [
|
||||
AC_REQUIRE([gl_NETDB_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
|
||||
AC_REQUIRE([gl_SYS_SOCKET_H])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
|
||||
AC_REQUIRE([gl_HOSTENT]) dnl for HOSTENT_LIB
|
||||
AC_REQUIRE([gl_SERVENT]) dnl for SERVENT_LIB
|
||||
AC_REQUIRE([gl_FUNC_INET_NTOP]) dnl for INET_NTOP_LIB
|
||||
AC_REQUIRE([AC_C_RESTRICT])
|
||||
AC_REQUIRE([gl_SOCKET_FAMILIES])
|
||||
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
|
||||
AC_REQUIRE([gl_SYS_SOCKET_H])
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
dnl Including sys/socket.h is wrong for Windows, but Windows does not
|
||||
|
|
111
gl/m4/getdelim.m4
Normal file
111
gl/m4/getdelim.m4
Normal file
|
@ -0,0 +1,111 @@
|
|||
# getdelim.m4 serial 16
|
||||
|
||||
dnl Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_PREREQ([2.59])
|
||||
|
||||
AC_DEFUN([gl_FUNC_GETDELIM],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
|
||||
dnl Persuade glibc <stdio.h> to declare getdelim().
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_CHECK_DECLS_ONCE([getdelim])
|
||||
|
||||
AC_CHECK_FUNCS_ONCE([getdelim])
|
||||
if test $ac_cv_func_getdelim = yes; then
|
||||
HAVE_GETDELIM=1
|
||||
dnl Found it in some library. Verify that it works.
|
||||
AC_CACHE_CHECK([for working getdelim function],
|
||||
[gl_cv_func_working_getdelim],
|
||||
[case "$host_os" in
|
||||
darwin*)
|
||||
dnl On macOS 10.13, valgrind detected an out-of-bounds read during
|
||||
dnl the GNU sed test suite:
|
||||
dnl Invalid read of size 16
|
||||
dnl at 0x100EE6A05: _platform_memchr$VARIANT$Base (in /usr/lib/system/libsystem_platform.dylib)
|
||||
dnl by 0x100B7B0BD: getdelim (in /usr/lib/system/libsystem_c.dylib)
|
||||
dnl by 0x10000B0BE: ck_getdelim (utils.c:254)
|
||||
gl_cv_func_working_getdelim=no ;;
|
||||
*)
|
||||
echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
int main ()
|
||||
{
|
||||
FILE *in = fopen ("./conftest.data", "r");
|
||||
if (!in)
|
||||
return 1;
|
||||
{
|
||||
/* Test result for a NULL buffer and a zero size.
|
||||
Based on a test program from Karl Heuer. */
|
||||
char *line = NULL;
|
||||
size_t siz = 0;
|
||||
int len = getdelim (&line, &siz, '\n', in);
|
||||
if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
|
||||
{ free (line); fclose (in); return 2; }
|
||||
free (line);
|
||||
}
|
||||
{
|
||||
/* Test result for a NULL buffer and a non-zero size.
|
||||
This crashes on FreeBSD 8.0. */
|
||||
char *line = NULL;
|
||||
size_t siz = (size_t)(~0) / 4;
|
||||
if (getdelim (&line, &siz, '\n', in) == -1)
|
||||
{ fclose (in); return 3; }
|
||||
free (line);
|
||||
}
|
||||
fclose (in);
|
||||
return 0;
|
||||
}
|
||||
]])],
|
||||
[gl_cv_func_working_getdelim=yes],
|
||||
[gl_cv_func_working_getdelim=no],
|
||||
[dnl We're cross compiling.
|
||||
dnl Guess it works on glibc2 systems and musl systems.
|
||||
AC_EGREP_CPP([Lucky GNU user],
|
||||
[
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#if (__GLIBC__ >= 2) && !defined __UCLIBC__
|
||||
Lucky GNU user
|
||||
#endif
|
||||
#endif
|
||||
],
|
||||
[gl_cv_func_working_getdelim="guessing yes"],
|
||||
[case "$host_os" in
|
||||
*-musl*) gl_cv_func_working_getdelim="guessing yes" ;;
|
||||
*) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
case "$gl_cv_func_working_getdelim" in
|
||||
*yes) ;;
|
||||
*) REPLACE_GETDELIM=1 ;;
|
||||
esac
|
||||
else
|
||||
HAVE_GETDELIM=0
|
||||
fi
|
||||
|
||||
if test $ac_cv_have_decl_getdelim = no; then
|
||||
HAVE_DECL_GETDELIM=0
|
||||
fi
|
||||
])
|
||||
|
||||
# Prerequisites of lib/getdelim.c.
|
||||
AC_DEFUN([gl_PREREQ_GETDELIM],
|
||||
[
|
||||
AC_CHECK_FUNCS([flockfile funlockfile])
|
||||
AC_CHECK_DECLS([getc_unlocked])
|
||||
])
|
63
gl/m4/getdtablesize.m4
Normal file
63
gl/m4/getdtablesize.m4
Normal file
|
@ -0,0 +1,63 @@
|
|||
# getdtablesize.m4 serial 8
|
||||
dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_GETDTABLESIZE],
|
||||
[
|
||||
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CHECK_FUNCS_ONCE([getdtablesize])
|
||||
AC_CHECK_DECLS_ONCE([getdtablesize])
|
||||
if test $ac_cv_func_getdtablesize = yes &&
|
||||
test $ac_cv_have_decl_getdtablesize = yes; then
|
||||
AC_CACHE_CHECK([whether getdtablesize works],
|
||||
[gl_cv_func_getdtablesize_works],
|
||||
[dnl There are two concepts: the "maximum possible file descriptor value + 1"
|
||||
dnl and the "maximum number of open file descriptors in a process".
|
||||
dnl Per SUSv2 and POSIX, getdtablesize() should return the first one.
|
||||
dnl On most platforms, the first and the second concept are the same.
|
||||
dnl On OpenVMS, however, they are different and getdtablesize() returns
|
||||
dnl the second one; thus the test below fails. But we don't care
|
||||
dnl because there's no good way to write a replacement getdtablesize().
|
||||
case "$host_os" in
|
||||
vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;;
|
||||
*)
|
||||
dnl Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft
|
||||
dnl limit up to an unchangeable hard limit; all other platforms
|
||||
dnl correctly require setrlimit before getdtablesize() can report
|
||||
dnl a larger value.
|
||||
AC_RUN_IFELSE([
|
||||
AC_LANG_PROGRAM(
|
||||
[[#include <unistd.h>]
|
||||
GL_MDA_DEFINES
|
||||
],
|
||||
[[int size = getdtablesize();
|
||||
if (dup2 (0, getdtablesize()) != -1)
|
||||
return 1;
|
||||
if (size != getdtablesize())
|
||||
return 2;
|
||||
]])],
|
||||
[gl_cv_func_getdtablesize_works=yes],
|
||||
[gl_cv_func_getdtablesize_works=no],
|
||||
[case "$host_os" in
|
||||
cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
|
||||
gl_cv_func_getdtablesize_works="guessing no" ;;
|
||||
*) gl_cv_func_getdtablesize_works="guessing yes" ;;
|
||||
esac
|
||||
])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
case "$gl_cv_func_getdtablesize_works" in
|
||||
*yes | "no (limitation)") ;;
|
||||
*) REPLACE_GETDTABLESIZE=1 ;;
|
||||
esac
|
||||
else
|
||||
HAVE_GETDTABLESIZE=0
|
||||
fi
|
||||
])
|
||||
|
||||
# Prerequisites of lib/getdtablesize.c.
|
||||
AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:])
|
|
@ -1,5 +1,5 @@
|
|||
# gethostname.m4 serial 13
|
||||
dnl Copyright (C) 2002, 2008-2013 Free Software Foundation, Inc.
|
||||
# gethostname.m4 serial 15
|
||||
dnl Copyright (C) 2002, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -48,7 +48,7 @@ AC_DEFUN([gl_PREREQ_HOST_NAME_MAX], [
|
|||
dnl - On most Unix systems, use MAXHOSTNAMELEN from <sys/param.h> instead.
|
||||
dnl - On Solaris, Cygwin, BeOS, use MAXHOSTNAMELEN from <netdb.h> instead.
|
||||
dnl - On mingw, use 256, because
|
||||
dnl <http://msdn.microsoft.com/en-us/library/ms738527.aspx> says:
|
||||
dnl <https://docs.microsoft.com/en-us/windows/desktop/api/winsock/nf-winsock-gethostname> says:
|
||||
dnl "if a buffer of 256 bytes is passed in the name parameter and
|
||||
dnl the namelen parameter is set to 256, the buffer size will always
|
||||
dnl be adequate."
|
||||
|
@ -74,7 +74,7 @@ lucky
|
|||
dnl mingw.
|
||||
gl_cv_decl_HOST_NAME_MAX=256
|
||||
else
|
||||
_AC_COMPUTE_INT([MAXHOSTNAMELEN], [gl_cv_decl_HOST_NAME_MAX], [
|
||||
AC_COMPUTE_INT([gl_cv_decl_HOST_NAME_MAX], [MAXHOSTNAMELEN], [
|
||||
#include <sys/types.h>
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
|
|
109
gl/m4/getline.m4
Normal file
109
gl/m4/getline.m4
Normal file
|
@ -0,0 +1,109 @@
|
|||
# getline.m4 serial 30
|
||||
|
||||
dnl Copyright (C) 1998-2003, 2005-2007, 2009-2023 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_PREREQ([2.59])
|
||||
|
||||
dnl See if there's a working, system-supplied version of the getline function.
|
||||
dnl We can't just do AC_REPLACE_FUNCS([getline]) because some systems
|
||||
dnl have a function by that name in -linet that doesn't have anything
|
||||
dnl to do with the function we need.
|
||||
AC_DEFUN([gl_FUNC_GETLINE],
|
||||
[
|
||||
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
|
||||
dnl Persuade glibc <stdio.h> to declare getline().
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
AC_CHECK_DECLS_ONCE([getline])
|
||||
|
||||
gl_getline_needs_run_time_check=no
|
||||
AC_CHECK_FUNC([getline],
|
||||
[dnl Found it in some library. Verify that it works.
|
||||
gl_getline_needs_run_time_check=yes],
|
||||
[am_cv_func_working_getline=no])
|
||||
if test $gl_getline_needs_run_time_check = yes; then
|
||||
AC_CACHE_CHECK([for working getline function],
|
||||
[am_cv_func_working_getline],
|
||||
[echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
int main ()
|
||||
{
|
||||
FILE *in = fopen ("./conftest.data", "r");
|
||||
if (!in)
|
||||
return 1;
|
||||
{
|
||||
/* Test result for a NULL buffer and a zero size.
|
||||
Based on a test program from Karl Heuer. */
|
||||
char *line = NULL;
|
||||
size_t siz = 0;
|
||||
int len = getline (&line, &siz, in);
|
||||
if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
|
||||
{ free (line); fclose (in); return 2; }
|
||||
free (line);
|
||||
}
|
||||
{
|
||||
/* Test result for a NULL buffer and a non-zero size.
|
||||
This crashes on FreeBSD 8.0. */
|
||||
char *line = NULL;
|
||||
size_t siz = (size_t)(~0) / 4;
|
||||
if (getline (&line, &siz, in) == -1)
|
||||
{ fclose (in); return 3; }
|
||||
free (line);
|
||||
}
|
||||
fclose (in);
|
||||
return 0;
|
||||
}
|
||||
]])],
|
||||
[am_cv_func_working_getline=yes],
|
||||
[am_cv_func_working_getline=no],
|
||||
[dnl We're cross compiling.
|
||||
dnl Guess it works on glibc2 systems and musl systems.
|
||||
AC_EGREP_CPP([Lucky GNU user],
|
||||
[
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#if (__GLIBC__ >= 2) && !defined __UCLIBC__
|
||||
Lucky GNU user
|
||||
#endif
|
||||
#endif
|
||||
],
|
||||
[am_cv_func_working_getline="guessing yes"],
|
||||
[case "$host_os" in
|
||||
*-musl*) am_cv_func_working_getline="guessing yes" ;;
|
||||
*) am_cv_func_working_getline="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
])
|
||||
fi
|
||||
|
||||
if test $ac_cv_have_decl_getline = no; then
|
||||
HAVE_DECL_GETLINE=0
|
||||
fi
|
||||
|
||||
case "$am_cv_func_working_getline" in
|
||||
*yes) ;;
|
||||
*)
|
||||
dnl Set REPLACE_GETLINE always: Even if we have not found the broken
|
||||
dnl getline function among $LIBS, it may exist in libinet and the
|
||||
dnl executable may be linked with -linet.
|
||||
REPLACE_GETLINE=1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Prerequisites of lib/getline.c.
|
||||
AC_DEFUN([gl_PREREQ_GETLINE],
|
||||
[
|
||||
:
|
||||
])
|
|
@ -1,13 +1,13 @@
|
|||
# Check for getloadavg.
|
||||
|
||||
# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2013 Free Software
|
||||
# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2023 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 6
|
||||
#serial 10
|
||||
|
||||
# Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent.
|
||||
# New applications should use gl_GETLOADAVG instead.
|
||||
|
@ -22,7 +22,7 @@ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
|||
|
||||
gl_save_LIBS=$LIBS
|
||||
|
||||
# getloadvg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0,
|
||||
# getloadavg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0,
|
||||
# NetBSD >= 0.9, OpenBSD >= 2.0, Solaris >= 7.
|
||||
HAVE_GETLOADAVG=1
|
||||
AC_CHECK_FUNC([getloadavg], [],
|
||||
|
@ -45,7 +45,9 @@ AC_CHECK_FUNC([getloadavg], [],
|
|||
# There is a commonly available library for RS/6000 AIX.
|
||||
# Since it is not a standard part of AIX, it might be installed locally.
|
||||
gl_getloadavg_LIBS=$LIBS
|
||||
LIBS="-L/usr/local/lib $LIBS"
|
||||
if test $cross_compiling != yes; then
|
||||
LIBS="-L/usr/local/lib $LIBS"
|
||||
fi
|
||||
AC_CHECK_LIB([getloadavg], [getloadavg],
|
||||
[LIBS="-lgetloadavg $LIBS" gl_func_getloadavg_done=yes],
|
||||
[LIBS=$gl_getloadavg_LIBS])
|
||||
|
@ -92,6 +94,9 @@ else
|
|||
fi
|
||||
AC_CHECK_DECL([getloadavg], [], [HAVE_DECL_GETLOADAVG=0],
|
||||
[[#if HAVE_SYS_LOADAVG_H
|
||||
/* OpenIndiana has a bug: <sys/time.h> must be included before
|
||||
<sys/loadavg.h>. */
|
||||
# include <sys/time.h>
|
||||
# include <sys/loadavg.h>
|
||||
#endif
|
||||
#include <stdlib.h>]])
|
||||
|
@ -105,7 +110,7 @@ AC_DEFUN([gl_PREREQ_GETLOADAVG],
|
|||
[
|
||||
# Figure out what our getloadavg.c needs.
|
||||
|
||||
AC_CHECK_HEADERS_ONCE([sys/param.h])
|
||||
AC_CHECK_HEADERS_ONCE([sys/param.h unistd.h])
|
||||
|
||||
# On HPUX9, an unprivileged user can get load averages this way.
|
||||
if test $gl_func_getloadavg_done = no; then
|
||||
|
@ -142,7 +147,7 @@ fi
|
|||
AC_CHECK_HEADERS([nlist.h],
|
||||
[AC_CHECK_MEMBERS([struct nlist.n_un.n_name],
|
||||
[], [],
|
||||
[@%:@include <nlist.h>])
|
||||
[#include <nlist.h>])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nlist.h>]],
|
||||
[[struct nlist x;
|
||||
#ifdef HAVE_STRUCT_NLIST_N_UN_N_NAME
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# getopt.m4 serial 44
|
||||
dnl Copyright (C) 2002-2006, 2008-2013 Free Software Foundation, Inc.
|
||||
# getopt.m4 serial 48
|
||||
dnl Copyright (C) 2002-2006, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -21,6 +21,8 @@ AC_DEFUN([gl_FUNC_GETOPT_POSIX],
|
|||
REPLACE_GETOPT=1
|
||||
fi
|
||||
])
|
||||
GL_GENERATE_GETOPT_H=false
|
||||
GL_GENERATE_GETOPT_CDEFS_H=false
|
||||
if test $REPLACE_GETOPT = 1; then
|
||||
dnl Arrange for getopt.h to be created.
|
||||
gl_GETOPT_SUBSTITUTE_HEADER
|
||||
|
@ -32,9 +34,16 @@ AC_DEFUN([gl_FUNC_GETOPT_POSIX],
|
|||
# getopt_long_only.
|
||||
AC_DEFUN([gl_FUNC_GETOPT_GNU],
|
||||
[
|
||||
dnl Set the variable gl_getopt_required, so that all invocations of
|
||||
dnl gl_GETOPT_CHECK_HEADERS in the scope of the current configure file
|
||||
dnl will check for getopt with GNU extensions.
|
||||
dnl This means that if one gnulib-tool invocation requests getopt-posix
|
||||
dnl and another gnulib-tool invocation requests getopt-gnu, it is as if
|
||||
dnl both had requested getopt-gnu.
|
||||
m4_divert_text([INIT_PREPARE], [gl_getopt_required=GNU])
|
||||
|
||||
AC_REQUIRE([gl_FUNC_GETOPT_POSIX])
|
||||
dnl No need to invoke gl_FUNC_GETOPT_POSIX here; this is automatically
|
||||
dnl done through the module dependency getopt-gnu -> getopt-posix.
|
||||
])
|
||||
|
||||
# Determine whether to replace the entire getopt facility.
|
||||
|
@ -295,8 +304,10 @@ dnl is ambiguous with environment values that contain newlines.
|
|||
]])],
|
||||
[gl_cv_func_getopt_gnu=yes],
|
||||
[gl_cv_func_getopt_gnu=no],
|
||||
[dnl Cross compiling. Assume the worst, even on glibc platforms.
|
||||
gl_cv_func_getopt_gnu="guessing no"
|
||||
[dnl Cross compiling.
|
||||
dnl Assume the worst, even on glibc platforms.
|
||||
dnl But obey --enable-cross-guesses.
|
||||
gl_cv_func_getopt_gnu="$gl_cross_guess_normal"
|
||||
])
|
||||
case $gl_had_POSIXLY_CORRECT in
|
||||
exported) ;;
|
||||
|
@ -354,15 +365,17 @@ dnl is ambiguous with environment values that contain newlines.
|
|||
|
||||
AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
|
||||
[
|
||||
GETOPT_H=getopt.h
|
||||
AC_CHECK_HEADERS_ONCE([sys/cdefs.h])
|
||||
if test $ac_cv_header_sys_cdefs_h = yes; then
|
||||
HAVE_SYS_CDEFS_H=1
|
||||
else
|
||||
HAVE_SYS_CDEFS_H=0
|
||||
fi
|
||||
AC_SUBST([HAVE_SYS_CDEFS_H])
|
||||
|
||||
AC_DEFINE([__GETOPT_PREFIX], [[rpl_]],
|
||||
[Define to rpl_ if the getopt replacement functions and variables
|
||||
should be used.])
|
||||
AC_SUBST([GETOPT_H])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/getopt*.
|
||||
AC_DEFUN([gl_PREREQ_GETOPT],
|
||||
[
|
||||
AC_CHECK_DECLS_ONCE([getenv])
|
||||
GL_GENERATE_GETOPT_H=true
|
||||
GL_GENERATE_GETOPT_CDEFS_H=true
|
||||
])
|
||||
|
|
43
gl/m4/getprogname.m4
Normal file
43
gl/m4/getprogname.m4
Normal file
|
@ -0,0 +1,43 @@
|
|||
# getprogname.m4 - check for getprogname or replacements for it
|
||||
|
||||
# Copyright (C) 2016-2023 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
AC_DEFUN([gl_FUNC_GETPROGNAME],
|
||||
[
|
||||
AC_CHECK_FUNCS_ONCE([getprogname getexecname])
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
ac_found=0
|
||||
AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [],
|
||||
[#include <errno.h>])
|
||||
AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [],
|
||||
[#include <errno.h>])
|
||||
AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include <stdlib.h>])
|
||||
|
||||
# Incur the cost of this test only if none of the above worked.
|
||||
if test $ac_found = 0; then
|
||||
# On OpenBSD 5.1, using the global __progname variable appears to be
|
||||
# the only way to implement getprogname.
|
||||
AC_CACHE_CHECK([whether __progname is defined in default libraries],
|
||||
[gl_cv_var___progname],
|
||||
[
|
||||
gl_cv_var___progname=
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[extern char *__progname;]],
|
||||
[[return *__progname;]]
|
||||
)],
|
||||
[gl_cv_var___progname=yes]
|
||||
)
|
||||
]
|
||||
)
|
||||
if test "$gl_cv_var___progname" = yes; then
|
||||
AC_DEFINE([HAVE_VAR___PROGNAME], 1,
|
||||
[Define if you have a global __progname variable])
|
||||
fi
|
||||
fi
|
||||
])
|
401
gl/m4/gettext.m4
401
gl/m4/gettext.m4
|
@ -1,401 +0,0 @@
|
|||
# gettext.m4 serial 66 (gettext-0.18.2)
|
||||
dnl Copyright (C) 1995-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl
|
||||
dnl This file can can be used in projects which are not available under
|
||||
dnl the GNU General Public License or the GNU Library General Public
|
||||
dnl License but which still want to provide support for the GNU gettext
|
||||
dnl functionality.
|
||||
dnl Please note that the actual code of the GNU gettext library is covered
|
||||
dnl by the GNU Library General Public License, and the rest of the GNU
|
||||
dnl gettext package package is covered by the GNU General Public License.
|
||||
dnl They are *not* in the public domain.
|
||||
|
||||
dnl Authors:
|
||||
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
|
||||
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
|
||||
|
||||
dnl Macro to add for using GNU gettext.
|
||||
|
||||
dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
|
||||
dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
|
||||
dnl default (if it is not specified or empty) is 'no-libtool'.
|
||||
dnl INTLSYMBOL should be 'external' for packages with no intl directory,
|
||||
dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
|
||||
dnl If INTLSYMBOL is 'use-libtool', then a libtool library
|
||||
dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
|
||||
dnl depending on --{enable,disable}-{shared,static} and on the presence of
|
||||
dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
|
||||
dnl $(top_builddir)/intl/libintl.a will be created.
|
||||
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
|
||||
dnl implementations (in libc or libintl) without the ngettext() function
|
||||
dnl will be ignored. If NEEDSYMBOL is specified and is
|
||||
dnl 'need-formatstring-macros', then GNU gettext implementations that don't
|
||||
dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
|
||||
dnl INTLDIR is used to find the intl libraries. If empty,
|
||||
dnl the value '$(top_builddir)/intl/' is used.
|
||||
dnl
|
||||
dnl The result of the configuration is one of three cases:
|
||||
dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
|
||||
dnl and used.
|
||||
dnl Catalog format: GNU --> install in $(datadir)
|
||||
dnl Catalog extension: .mo after installation, .gmo in source tree
|
||||
dnl 2) GNU gettext has been found in the system's C library.
|
||||
dnl Catalog format: GNU --> install in $(datadir)
|
||||
dnl Catalog extension: .mo after installation, .gmo in source tree
|
||||
dnl 3) No internationalization, always use English msgid.
|
||||
dnl Catalog format: none
|
||||
dnl Catalog extension: none
|
||||
dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
|
||||
dnl The use of .gmo is historical (it was needed to avoid overwriting the
|
||||
dnl GNU format catalogs when building on a platform with an X/Open gettext),
|
||||
dnl but we keep it in order not to force irrelevant filename changes on the
|
||||
dnl maintainers.
|
||||
dnl
|
||||
AC_DEFUN([AM_GNU_GETTEXT],
|
||||
[
|
||||
dnl Argument checking.
|
||||
ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
|
||||
[errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
|
||||
])])])])])
|
||||
ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
|
||||
[AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
|
||||
ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
|
||||
[errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
|
||||
])])])])
|
||||
define([gt_included_intl],
|
||||
ifelse([$1], [external],
|
||||
ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
|
||||
[yes]))
|
||||
define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
|
||||
gt_NEEDS_INIT
|
||||
AM_GNU_GETTEXT_NEED([$2])
|
||||
|
||||
AC_REQUIRE([AM_PO_SUBDIRS])dnl
|
||||
ifelse(gt_included_intl, yes, [
|
||||
AC_REQUIRE([AM_INTL_SUBDIR])dnl
|
||||
])
|
||||
|
||||
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
|
||||
dnl Sometimes libintl requires libiconv, so first search for libiconv.
|
||||
dnl Ideally we would do this search only after the
|
||||
dnl if test "$USE_NLS" = "yes"; then
|
||||
dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
|
||||
dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
|
||||
dnl the configure script would need to contain the same shell code
|
||||
dnl again, outside any 'if'. There are two solutions:
|
||||
dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
|
||||
dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
|
||||
dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
|
||||
dnl documented, we avoid it.
|
||||
ifelse(gt_included_intl, yes, , [
|
||||
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
|
||||
])
|
||||
|
||||
dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation.
|
||||
gt_INTL_MACOSX
|
||||
|
||||
dnl Set USE_NLS.
|
||||
AC_REQUIRE([AM_NLS])
|
||||
|
||||
ifelse(gt_included_intl, yes, [
|
||||
BUILD_INCLUDED_LIBINTL=no
|
||||
USE_INCLUDED_LIBINTL=no
|
||||
])
|
||||
LIBINTL=
|
||||
LTLIBINTL=
|
||||
POSUB=
|
||||
|
||||
dnl Add a version number to the cache macros.
|
||||
case " $gt_needs " in
|
||||
*" need-formatstring-macros "*) gt_api_version=3 ;;
|
||||
*" need-ngettext "*) gt_api_version=2 ;;
|
||||
*) gt_api_version=1 ;;
|
||||
esac
|
||||
gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
|
||||
gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
|
||||
|
||||
dnl If we use NLS figure out what method
|
||||
if test "$USE_NLS" = "yes"; then
|
||||
gt_use_preinstalled_gnugettext=no
|
||||
ifelse(gt_included_intl, yes, [
|
||||
AC_MSG_CHECKING([whether included gettext is requested])
|
||||
AC_ARG_WITH([included-gettext],
|
||||
[ --with-included-gettext use the GNU gettext library included here],
|
||||
nls_cv_force_use_gnu_gettext=$withval,
|
||||
nls_cv_force_use_gnu_gettext=no)
|
||||
AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
|
||||
|
||||
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
||||
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
||||
])
|
||||
dnl User does not insist on using GNU NLS library. Figure out what
|
||||
dnl to use. If GNU gettext is available we use this. Else we have
|
||||
dnl to fall back to GNU NLS library.
|
||||
|
||||
if test $gt_api_version -ge 3; then
|
||||
gt_revision_test_code='
|
||||
#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
|
||||
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
|
||||
#endif
|
||||
changequote(,)dnl
|
||||
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
|
||||
changequote([,])dnl
|
||||
'
|
||||
else
|
||||
gt_revision_test_code=
|
||||
fi
|
||||
if test $gt_api_version -ge 2; then
|
||||
gt_expression_test_code=' + * ngettext ("", "", 0)'
|
||||
else
|
||||
gt_expression_test_code=
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <libintl.h>
|
||||
$gt_revision_test_code
|
||||
extern int _nl_msg_cat_cntr;
|
||||
extern int *_nl_domain_bindings;
|
||||
]],
|
||||
[[
|
||||
bindtextdomain ("", "");
|
||||
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
|
||||
]])],
|
||||
[eval "$gt_func_gnugettext_libc=yes"],
|
||||
[eval "$gt_func_gnugettext_libc=no"])])
|
||||
|
||||
if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
|
||||
dnl Sometimes libintl requires libiconv, so first search for libiconv.
|
||||
ifelse(gt_included_intl, yes, , [
|
||||
AM_ICONV_LINK
|
||||
])
|
||||
dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
|
||||
dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
|
||||
dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
|
||||
dnl even if libiconv doesn't exist.
|
||||
AC_LIB_LINKFLAGS_BODY([intl])
|
||||
AC_CACHE_CHECK([for GNU gettext in libintl],
|
||||
[$gt_func_gnugettext_libintl],
|
||||
[gt_save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $INCINTL"
|
||||
gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIBINTL"
|
||||
dnl Now see whether libintl exists and does not depend on libiconv.
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <libintl.h>
|
||||
$gt_revision_test_code
|
||||
extern int _nl_msg_cat_cntr;
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
const char *_nl_expand_alias (const char *);
|
||||
]],
|
||||
[[
|
||||
bindtextdomain ("", "");
|
||||
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
|
||||
]])],
|
||||
[eval "$gt_func_gnugettext_libintl=yes"],
|
||||
[eval "$gt_func_gnugettext_libintl=no"])
|
||||
dnl Now see whether libintl exists and depends on libiconv.
|
||||
if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
|
||||
LIBS="$LIBS $LIBICONV"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <libintl.h>
|
||||
$gt_revision_test_code
|
||||
extern int _nl_msg_cat_cntr;
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
const char *_nl_expand_alias (const char *);
|
||||
]],
|
||||
[[
|
||||
bindtextdomain ("", "");
|
||||
return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
|
||||
]])],
|
||||
[LIBINTL="$LIBINTL $LIBICONV"
|
||||
LTLIBINTL="$LTLIBINTL $LTLIBICONV"
|
||||
eval "$gt_func_gnugettext_libintl=yes"
|
||||
])
|
||||
fi
|
||||
CPPFLAGS="$gt_save_CPPFLAGS"
|
||||
LIBS="$gt_save_LIBS"])
|
||||
fi
|
||||
|
||||
dnl If an already present or preinstalled GNU gettext() is found,
|
||||
dnl use it. But if this macro is used in GNU gettext, and GNU
|
||||
dnl gettext is already preinstalled in libintl, we update this
|
||||
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
|
||||
if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
|
||||
|| { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
|
||||
&& test "$PACKAGE" != gettext-runtime \
|
||||
&& test "$PACKAGE" != gettext-tools; }; then
|
||||
gt_use_preinstalled_gnugettext=yes
|
||||
else
|
||||
dnl Reset the values set by searching for libintl.
|
||||
LIBINTL=
|
||||
LTLIBINTL=
|
||||
INCINTL=
|
||||
fi
|
||||
|
||||
ifelse(gt_included_intl, yes, [
|
||||
if test "$gt_use_preinstalled_gnugettext" != "yes"; then
|
||||
dnl GNU gettext is not found in the C library.
|
||||
dnl Fall back on included GNU gettext library.
|
||||
nls_cv_use_gnu_gettext=yes
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||
dnl Mark actions used to generate GNU NLS library.
|
||||
BUILD_INCLUDED_LIBINTL=yes
|
||||
USE_INCLUDED_LIBINTL=yes
|
||||
LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
|
||||
LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
|
||||
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
|
||||
fi
|
||||
|
||||
CATOBJEXT=
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|
||||
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||
dnl Mark actions to use GNU gettext tools.
|
||||
CATOBJEXT=.gmo
|
||||
fi
|
||||
])
|
||||
|
||||
if test -n "$INTL_MACOSX_LIBS"; then
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|
||||
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||
dnl Some extra flags are needed during linking.
|
||||
LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
|
||||
LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|
||||
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||
AC_DEFINE([ENABLE_NLS], [1],
|
||||
[Define to 1 if translation of program messages to the user's native language
|
||||
is requested.])
|
||||
else
|
||||
USE_NLS=no
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([whether to use NLS])
|
||||
AC_MSG_RESULT([$USE_NLS])
|
||||
if test "$USE_NLS" = "yes"; then
|
||||
AC_MSG_CHECKING([where the gettext function comes from])
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
|
||||
if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
|
||||
gt_source="external libintl"
|
||||
else
|
||||
gt_source="libc"
|
||||
fi
|
||||
else
|
||||
gt_source="included intl directory"
|
||||
fi
|
||||
AC_MSG_RESULT([$gt_source])
|
||||
fi
|
||||
|
||||
if test "$USE_NLS" = "yes"; then
|
||||
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
|
||||
if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
|
||||
AC_MSG_CHECKING([how to link with libintl])
|
||||
AC_MSG_RESULT([$LIBINTL])
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
|
||||
fi
|
||||
|
||||
dnl For backward compatibility. Some packages may be using this.
|
||||
AC_DEFINE([HAVE_GETTEXT], [1],
|
||||
[Define if the GNU gettext() function is already present or preinstalled.])
|
||||
AC_DEFINE([HAVE_DCGETTEXT], [1],
|
||||
[Define if the GNU dcgettext() function is already present or preinstalled.])
|
||||
fi
|
||||
|
||||
dnl We need to process the po/ directory.
|
||||
POSUB=po
|
||||
fi
|
||||
|
||||
ifelse(gt_included_intl, yes, [
|
||||
dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
|
||||
dnl to 'yes' because some of the testsuite requires it.
|
||||
if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
|
||||
BUILD_INCLUDED_LIBINTL=yes
|
||||
fi
|
||||
|
||||
dnl Make all variables we use known to autoconf.
|
||||
AC_SUBST([BUILD_INCLUDED_LIBINTL])
|
||||
AC_SUBST([USE_INCLUDED_LIBINTL])
|
||||
AC_SUBST([CATOBJEXT])
|
||||
|
||||
dnl For backward compatibility. Some configure.ins may be using this.
|
||||
nls_cv_header_intl=
|
||||
nls_cv_header_libgt=
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
DATADIRNAME=share
|
||||
AC_SUBST([DATADIRNAME])
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
INSTOBJEXT=.mo
|
||||
AC_SUBST([INSTOBJEXT])
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
GENCAT=gencat
|
||||
AC_SUBST([GENCAT])
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
INTLOBJS=
|
||||
if test "$USE_INCLUDED_LIBINTL" = yes; then
|
||||
INTLOBJS="\$(GETTOBJS)"
|
||||
fi
|
||||
AC_SUBST([INTLOBJS])
|
||||
|
||||
dnl Enable libtool support if the surrounding package wishes it.
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
|
||||
AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
|
||||
])
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
INTLLIBS="$LIBINTL"
|
||||
AC_SUBST([INTLLIBS])
|
||||
|
||||
dnl Make all documented variables known to autoconf.
|
||||
AC_SUBST([LIBINTL])
|
||||
AC_SUBST([LTLIBINTL])
|
||||
AC_SUBST([POSUB])
|
||||
])
|
||||
|
||||
|
||||
dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
|
||||
m4_define([gt_NEEDS_INIT],
|
||||
[
|
||||
m4_divert_text([DEFAULTS], [gt_needs=])
|
||||
m4_define([gt_NEEDS_INIT], [])
|
||||
])
|
||||
|
||||
|
||||
dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
|
||||
AC_DEFUN([AM_GNU_GETTEXT_NEED],
|
||||
[
|
||||
m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
|
||||
])
|
||||
|
||||
|
||||
dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
|
||||
AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
|
76
gl/m4/gl-openssl.m4
Normal file
76
gl/m4/gl-openssl.m4
Normal file
|
@ -0,0 +1,76 @@
|
|||
# gl-openssl.m4 serial 6
|
||||
dnl Copyright (C) 2013-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_SET_CRYPTO_CHECK_DEFAULT],
|
||||
[
|
||||
m4_define([gl_CRYPTO_CHECK_DEFAULT], [$1])
|
||||
])
|
||||
gl_SET_CRYPTO_CHECK_DEFAULT([no])
|
||||
|
||||
AC_DEFUN([gl_CRYPTO_CHECK],
|
||||
[
|
||||
dnl gnulib users set this before gl_INIT with gl_SET_CRYPTO_CHECK_DEFAULT()
|
||||
m4_divert_once([DEFAULTS], [with_openssl_default='gl_CRYPTO_CHECK_DEFAULT'])
|
||||
|
||||
dnl Only clear once, so crypto routines can be checked for individually
|
||||
m4_divert_once([DEFAULTS], [LIB_CRYPTO=])
|
||||
|
||||
AC_ARG_WITH([openssl],
|
||||
[[ --with-openssl[=ARG] use libcrypto hash routines for the hash functions
|
||||
MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512.
|
||||
Valid ARGs are:
|
||||
'yes',
|
||||
'no',
|
||||
'auto' => use if any version available,
|
||||
'auto-gpl-compat' => use if GPL compatible version
|
||||
available,
|
||||
'optional' => use if available
|
||||
and warn if not available;
|
||||
Default is ']gl_CRYPTO_CHECK_DEFAULT['.]m4_ifdef([gl_AF_ALG], [
|
||||
Note also --with-linux-crypto, which will enable the
|
||||
use of Linux kernel crypto routines (if available),
|
||||
which has precedence for files.])],
|
||||
[],
|
||||
[with_openssl=$with_openssl_default])
|
||||
|
||||
AC_SUBST([LIB_CRYPTO])
|
||||
if test "x$with_openssl" != xno; then
|
||||
if test "x$with_openssl" = xauto-gpl-compat; then
|
||||
AC_CACHE_CHECK([whether openssl is GPL compatible],
|
||||
[gl_cv_openssl_gpl_compat],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#include <openssl/opensslv.h>
|
||||
#if OPENSSL_VERSION_MAJOR < 3
|
||||
#error "openssl >= version 3 not found"
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_openssl_gpl_compat=yes],
|
||||
[gl_cv_openssl_gpl_compat=no])])
|
||||
fi
|
||||
if test "x$with_openssl" != xauto-gpl-compat ||
|
||||
test "x$gl_cv_openssl_gpl_compat" = xyes; then
|
||||
AC_CHECK_LIB([crypto], [$1],
|
||||
[AC_CHECK_HEADERS(
|
||||
m4_if([$1], [MD5], [openssl/md5.h], [openssl/sha.h]),
|
||||
[LIB_CRYPTO=-lcrypto
|
||||
AC_DEFINE([HAVE_OPENSSL_$1], [1],
|
||||
[Define to 1 if libcrypto is used for $1.])])])
|
||||
fi
|
||||
if test "x$LIB_CRYPTO" = x; then
|
||||
message='openssl development library not found for $1.
|
||||
If you want to install it, first find the pre-built package name:
|
||||
- On Debian and Debian-based systems: libssl-dev,
|
||||
- On Red Hat distributions: openssl-devel.
|
||||
- Other: https://repology.org/project/openssl/versions'
|
||||
if test "x$with_openssl" = xyes; then
|
||||
AC_MSG_ERROR([$message])
|
||||
elif test "x$with_openssl" = xoptional; then
|
||||
AC_MSG_WARN([$message])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
])
|
|
@ -1,34 +0,0 @@
|
|||
# glibc21.m4 serial 5
|
||||
dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# Test for the GNU C Library, version 2.1 or newer, or uClibc.
|
||||
# From Bruno Haible.
|
||||
|
||||
AC_DEFUN([gl_GLIBC21],
|
||||
[
|
||||
AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc],
|
||||
[ac_cv_gnu_library_2_1],
|
||||
[AC_EGREP_CPP([Lucky],
|
||||
[
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
|
||||
Lucky GNU user
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __UCLIBC__
|
||||
Lucky user
|
||||
#endif
|
||||
],
|
||||
[ac_cv_gnu_library_2_1=yes],
|
||||
[ac_cv_gnu_library_2_1=no])
|
||||
]
|
||||
)
|
||||
AC_SUBST([GLIBC21])
|
||||
GLIBC21="$ac_cv_gnu_library_2_1"
|
||||
]
|
||||
)
|
|
@ -1,8 +1,8 @@
|
|||
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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 3 of the License, or
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This file is distributed in the hope that it will be useful,
|
||||
|
@ -11,7 +11,7 @@
|
|||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this file. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this file. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception to the GNU General Public License,
|
||||
# this file may be distributed as part of a program that
|
||||
|
@ -27,13 +27,45 @@
|
|||
|
||||
|
||||
# Specification in the form of a command-line invocation:
|
||||
# gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname environ floorf fsusage getaddrinfo gethostname getloadavg getopt-gnu gettext idpriv-droptemp mountlist regex setenv strcase strcasestr strsep timegm unsetenv vasprintf vsnprintf
|
||||
# gnulib-tool --import \
|
||||
# --lib=libgnu \
|
||||
# --source-base=gl \
|
||||
# --m4-base=gl/m4 \
|
||||
# --doc-base=doc \
|
||||
# --tests-base=tests \
|
||||
# --aux-dir=build-aux \
|
||||
# --no-conditional-dependencies \
|
||||
# --no-libtool \
|
||||
# --macro-prefix=gl \
|
||||
# --no-vc-files \
|
||||
# base64 \
|
||||
# crypto/sha256 \
|
||||
# dirname \
|
||||
# environ \
|
||||
# floorf \
|
||||
# fsusage \
|
||||
# getaddrinfo \
|
||||
# gethostname \
|
||||
# getloadavg \
|
||||
# getopt-gnu \
|
||||
# gettext-h \
|
||||
# idpriv-droptemp \
|
||||
# mountlist \
|
||||
# regex \
|
||||
# setenv \
|
||||
# strcase \
|
||||
# strcasestr \
|
||||
# strsep \
|
||||
# timegm \
|
||||
# unsetenv \
|
||||
# vasprintf \
|
||||
# vsnprintf
|
||||
|
||||
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
||||
gl_LOCAL_DIR([])
|
||||
gl_MODULES([
|
||||
base64
|
||||
crypto/sha1
|
||||
crypto/sha256
|
||||
dirname
|
||||
environ
|
||||
floorf
|
||||
|
@ -42,7 +74,7 @@ gl_MODULES([
|
|||
gethostname
|
||||
getloadavg
|
||||
getopt-gnu
|
||||
gettext
|
||||
gettext-h
|
||||
idpriv-droptemp
|
||||
mountlist
|
||||
regex
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
# hostent.m4 serial 2
|
||||
dnl Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc.
|
||||
# hostent.m4 serial 4
|
||||
dnl Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -8,12 +8,12 @@ AC_DEFUN([gl_HOSTENT],
|
|||
[
|
||||
dnl Where are gethostent(), sethostent(), endhostent(), gethostbyname(),
|
||||
dnl gethostbyaddr() defined?
|
||||
dnl - On Solaris, they are in libnsl. Ignore libxnet.
|
||||
dnl - On Solaris < 11.4, they are in libnsl. Ignore libxnet.
|
||||
dnl - On Haiku, they are in libnetwork.
|
||||
dnl - On BeOS, they are in libnet.
|
||||
dnl - On native Windows, they are in ws2_32.dll.
|
||||
dnl - Otherwise they are in libc.
|
||||
AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
|
||||
AC_REQUIRE([gl_SYS_SOCKET_H])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
|
||||
HOSTENT_LIB=
|
||||
gl_saved_libs="$LIBS"
|
||||
AC_SEARCH_LIBS([gethostbyname], [nsl network net],
|
||||
|
|
268
gl/m4/iconv.m4
268
gl/m4/iconv.m4
|
@ -1,268 +0,0 @@
|
|||
# iconv.m4 serial 18 (gettext-0.18.2)
|
||||
dnl Copyright (C) 2000-2002, 2007-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
|
||||
[
|
||||
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
|
||||
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
|
||||
dnl accordingly.
|
||||
AC_LIB_LINKFLAGS_BODY([iconv])
|
||||
])
|
||||
|
||||
AC_DEFUN([AM_ICONV_LINK],
|
||||
[
|
||||
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
|
||||
dnl those with the standalone portable GNU libiconv installed).
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
|
||||
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
|
||||
dnl accordingly.
|
||||
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
|
||||
|
||||
dnl Add $INCICONV to CPPFLAGS before performing the following checks,
|
||||
dnl because if the user has installed libiconv and not disabled its use
|
||||
dnl via --without-libiconv-prefix, he wants to use it. The first
|
||||
dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
|
||||
am_save_CPPFLAGS="$CPPFLAGS"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
|
||||
|
||||
AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
|
||||
am_cv_func_iconv="no, consider installing GNU libiconv"
|
||||
am_cv_lib_iconv=no
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <stdlib.h>
|
||||
#include <iconv.h>
|
||||
]],
|
||||
[[iconv_t cd = iconv_open("","");
|
||||
iconv(cd,NULL,NULL,NULL,NULL);
|
||||
iconv_close(cd);]])],
|
||||
[am_cv_func_iconv=yes])
|
||||
if test "$am_cv_func_iconv" != yes; then
|
||||
am_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIBICONV"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <stdlib.h>
|
||||
#include <iconv.h>
|
||||
]],
|
||||
[[iconv_t cd = iconv_open("","");
|
||||
iconv(cd,NULL,NULL,NULL,NULL);
|
||||
iconv_close(cd);]])],
|
||||
[am_cv_lib_iconv=yes]
|
||||
[am_cv_func_iconv=yes])
|
||||
LIBS="$am_save_LIBS"
|
||||
fi
|
||||
])
|
||||
if test "$am_cv_func_iconv" = yes; then
|
||||
AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
|
||||
dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
|
||||
dnl Solaris 10.
|
||||
am_save_LIBS="$LIBS"
|
||||
if test $am_cv_lib_iconv = yes; then
|
||||
LIBS="$LIBS $LIBICONV"
|
||||
fi
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <iconv.h>
|
||||
#include <string.h>
|
||||
int main ()
|
||||
{
|
||||
int result = 0;
|
||||
/* Test against AIX 5.1 bug: Failures are not distinguishable from successful
|
||||
returns. */
|
||||
{
|
||||
iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
|
||||
if (cd_utf8_to_88591 != (iconv_t)(-1))
|
||||
{
|
||||
static const char input[] = "\342\202\254"; /* EURO SIGN */
|
||||
char buf[10];
|
||||
const char *inptr = input;
|
||||
size_t inbytesleft = strlen (input);
|
||||
char *outptr = buf;
|
||||
size_t outbytesleft = sizeof (buf);
|
||||
size_t res = iconv (cd_utf8_to_88591,
|
||||
(char **) &inptr, &inbytesleft,
|
||||
&outptr, &outbytesleft);
|
||||
if (res == 0)
|
||||
result |= 1;
|
||||
iconv_close (cd_utf8_to_88591);
|
||||
}
|
||||
}
|
||||
/* Test against Solaris 10 bug: Failures are not distinguishable from
|
||||
successful returns. */
|
||||
{
|
||||
iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
|
||||
if (cd_ascii_to_88591 != (iconv_t)(-1))
|
||||
{
|
||||
static const char input[] = "\263";
|
||||
char buf[10];
|
||||
const char *inptr = input;
|
||||
size_t inbytesleft = strlen (input);
|
||||
char *outptr = buf;
|
||||
size_t outbytesleft = sizeof (buf);
|
||||
size_t res = iconv (cd_ascii_to_88591,
|
||||
(char **) &inptr, &inbytesleft,
|
||||
&outptr, &outbytesleft);
|
||||
if (res == 0)
|
||||
result |= 2;
|
||||
iconv_close (cd_ascii_to_88591);
|
||||
}
|
||||
}
|
||||
/* Test against AIX 6.1..7.1 bug: Buffer overrun. */
|
||||
{
|
||||
iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
|
||||
if (cd_88591_to_utf8 != (iconv_t)(-1))
|
||||
{
|
||||
static const char input[] = "\304";
|
||||
static char buf[2] = { (char)0xDE, (char)0xAD };
|
||||
const char *inptr = input;
|
||||
size_t inbytesleft = 1;
|
||||
char *outptr = buf;
|
||||
size_t outbytesleft = 1;
|
||||
size_t res = iconv (cd_88591_to_utf8,
|
||||
(char **) &inptr, &inbytesleft,
|
||||
&outptr, &outbytesleft);
|
||||
if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
|
||||
result |= 4;
|
||||
iconv_close (cd_88591_to_utf8);
|
||||
}
|
||||
}
|
||||
#if 0 /* This bug could be worked around by the caller. */
|
||||
/* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
|
||||
{
|
||||
iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
|
||||
if (cd_88591_to_utf8 != (iconv_t)(-1))
|
||||
{
|
||||
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
|
||||
char buf[50];
|
||||
const char *inptr = input;
|
||||
size_t inbytesleft = strlen (input);
|
||||
char *outptr = buf;
|
||||
size_t outbytesleft = sizeof (buf);
|
||||
size_t res = iconv (cd_88591_to_utf8,
|
||||
(char **) &inptr, &inbytesleft,
|
||||
&outptr, &outbytesleft);
|
||||
if ((int)res > 0)
|
||||
result |= 8;
|
||||
iconv_close (cd_88591_to_utf8);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
/* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
|
||||
provided. */
|
||||
if (/* Try standardized names. */
|
||||
iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
|
||||
/* Try IRIX, OSF/1 names. */
|
||||
&& iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
|
||||
/* Try AIX names. */
|
||||
&& iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
|
||||
/* Try HP-UX names. */
|
||||
&& iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
|
||||
result |= 16;
|
||||
return result;
|
||||
}]])],
|
||||
[am_cv_func_iconv_works=yes],
|
||||
[am_cv_func_iconv_works=no],
|
||||
[
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
|
||||
*) am_cv_func_iconv_works="guessing yes" ;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
LIBS="$am_save_LIBS"
|
||||
])
|
||||
case "$am_cv_func_iconv_works" in
|
||||
*no) am_func_iconv=no am_cv_lib_iconv=no ;;
|
||||
*) am_func_iconv=yes ;;
|
||||
esac
|
||||
else
|
||||
am_func_iconv=no am_cv_lib_iconv=no
|
||||
fi
|
||||
if test "$am_func_iconv" = yes; then
|
||||
AC_DEFINE([HAVE_ICONV], [1],
|
||||
[Define if you have the iconv() function and it works.])
|
||||
fi
|
||||
if test "$am_cv_lib_iconv" = yes; then
|
||||
AC_MSG_CHECKING([how to link with libiconv])
|
||||
AC_MSG_RESULT([$LIBICONV])
|
||||
else
|
||||
dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
|
||||
dnl either.
|
||||
CPPFLAGS="$am_save_CPPFLAGS"
|
||||
LIBICONV=
|
||||
LTLIBICONV=
|
||||
fi
|
||||
AC_SUBST([LIBICONV])
|
||||
AC_SUBST([LTLIBICONV])
|
||||
])
|
||||
|
||||
dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
|
||||
dnl avoid warnings like
|
||||
dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
|
||||
dnl This is tricky because of the way 'aclocal' is implemented:
|
||||
dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
|
||||
dnl Otherwise aclocal's initial scan pass would miss the macro definition.
|
||||
dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
|
||||
dnl Otherwise aclocal would emit many "Use of uninitialized value $1"
|
||||
dnl warnings.
|
||||
m4_define([gl_iconv_AC_DEFUN],
|
||||
m4_version_prereq([2.64],
|
||||
[[AC_DEFUN_ONCE(
|
||||
[$1], [$2])]],
|
||||
[m4_ifdef([gl_00GNULIB],
|
||||
[[AC_DEFUN_ONCE(
|
||||
[$1], [$2])]],
|
||||
[[AC_DEFUN(
|
||||
[$1], [$2])]])]))
|
||||
gl_iconv_AC_DEFUN([AM_ICONV],
|
||||
[
|
||||
AM_ICONV_LINK
|
||||
if test "$am_cv_func_iconv" = yes; then
|
||||
AC_MSG_CHECKING([for iconv declaration])
|
||||
AC_CACHE_VAL([am_cv_proto_iconv], [
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <stdlib.h>
|
||||
#include <iconv.h>
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
|
||||
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
|
||||
#else
|
||||
size_t iconv();
|
||||
#endif
|
||||
]],
|
||||
[[]])],
|
||||
[am_cv_proto_iconv_arg1=""],
|
||||
[am_cv_proto_iconv_arg1="const"])
|
||||
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
|
||||
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
|
||||
AC_MSG_RESULT([
|
||||
$am_cv_proto_iconv])
|
||||
AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
|
||||
[Define as const if the declaration of iconv() needs const.])
|
||||
dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
|
||||
m4_ifdef([gl_ICONV_H_DEFAULTS],
|
||||
[AC_REQUIRE([gl_ICONV_H_DEFAULTS])
|
||||
if test -n "$am_cv_proto_iconv_arg1"; then
|
||||
ICONV_CONST="const"
|
||||
fi
|
||||
])
|
||||
fi
|
||||
])
|
|
@ -1,5 +1,5 @@
|
|||
# idpriv.m4 serial 1
|
||||
dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
# include_next.m4 serial 23
|
||||
dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
|
||||
# include_next.m4 serial 26
|
||||
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Paul Eggert and Derek Price.
|
||||
|
||||
dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER.
|
||||
dnl Sets INCLUDE_NEXT, INCLUDE_NEXT_AS_FIRST_DIRECTIVE, PRAGMA_SYSTEM_HEADER,
|
||||
dnl and PRAGMA_COLUMNS.
|
||||
dnl
|
||||
dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to
|
||||
dnl 'include' otherwise.
|
||||
|
@ -105,19 +106,21 @@ dnl We intentionally avoid using AC_LANG_SOURCE here.
|
|||
AC_SUBST([INCLUDE_NEXT])
|
||||
AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
|
||||
AC_SUBST([PRAGMA_SYSTEM_HEADER])
|
||||
AC_CACHE_CHECK([whether system header files limit the line length],
|
||||
[gl_cv_pragma_columns],
|
||||
[dnl HP NonStop systems, which define __TANDEM, have this misfeature.
|
||||
AC_EGREP_CPP([choke me],
|
||||
|
||||
dnl HP NonStop systems, which define __TANDEM, limit the line length
|
||||
dnl after including some system header files.
|
||||
AC_CACHE_CHECK([whether source code line length is unlimited],
|
||||
[gl_cv_source_line_length_unlimited],
|
||||
[AC_EGREP_CPP([choke me],
|
||||
[
|
||||
#ifdef __TANDEM
|
||||
choke me
|
||||
#endif
|
||||
],
|
||||
[gl_cv_pragma_columns=yes],
|
||||
[gl_cv_pragma_columns=no])
|
||||
[gl_cv_source_line_length_unlimited=no],
|
||||
[gl_cv_source_line_length_unlimited=yes])
|
||||
])
|
||||
if test $gl_cv_pragma_columns = yes; then
|
||||
if test $gl_cv_source_line_length_unlimited = no; then
|
||||
PRAGMA_COLUMNS="#pragma COLUMNS 10000"
|
||||
else
|
||||
PRAGMA_COLUMNS=
|
||||
|
@ -175,89 +178,40 @@ AC_DEFUN([gl_NEXT_HEADERS_INTERNAL],
|
|||
[AC_CHECK_HEADERS_ONCE([$1])
|
||||
])
|
||||
|
||||
dnl FIXME: gl_next_header and gl_header_exists must be used unquoted
|
||||
dnl until we can assume autoconf 2.64 or newer.
|
||||
m4_foreach_w([gl_HEADER_NAME], [$1],
|
||||
[AS_VAR_PUSHDEF([gl_next_header],
|
||||
[gl_cv_next_]m4_defn([gl_HEADER_NAME]))
|
||||
if test $gl_cv_have_include_next = yes; then
|
||||
AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
|
||||
AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
|
||||
else
|
||||
AC_CACHE_CHECK(
|
||||
[absolute name of <]m4_defn([gl_HEADER_NAME])[>],
|
||||
m4_defn([gl_next_header]),
|
||||
[gl_next_header],
|
||||
[m4_if([$2], [check],
|
||||
[AS_VAR_PUSHDEF([gl_header_exists],
|
||||
[ac_cv_header_]m4_defn([gl_HEADER_NAME]))
|
||||
if test AS_VAR_GET(gl_header_exists) = yes; then
|
||||
if test AS_VAR_GET([gl_header_exists]) = yes; then
|
||||
AS_VAR_POPDEF([gl_header_exists])
|
||||
])
|
||||
AC_LANG_CONFTEST(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
|
||||
)])
|
||||
dnl AIX "xlc -E" and "cc -E" omit #line directives for header
|
||||
dnl files that contain only a #include of other header files and
|
||||
dnl no non-comment tokens of their own. This leads to a failure
|
||||
dnl to detect the absolute name of <dirent.h>, <signal.h>,
|
||||
dnl <poll.h> and others. The workaround is to force preservation
|
||||
dnl of comments through option -C. This ensures all necessary
|
||||
dnl #line directives are present. GCC supports option -C as well.
|
||||
case "$host_os" in
|
||||
aix*) gl_absname_cpp="$ac_cpp -C" ;;
|
||||
*) gl_absname_cpp="$ac_cpp" ;;
|
||||
esac
|
||||
changequote(,)
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
dnl For the sake of native Windows compilers (excluding gcc),
|
||||
dnl treat backslash as a directory separator, like /.
|
||||
dnl Actually, these compilers use a double-backslash as
|
||||
dnl directory separator, inside the
|
||||
dnl # line "filename"
|
||||
dnl directives.
|
||||
gl_dirsep_regex='[/\\]'
|
||||
;;
|
||||
*)
|
||||
gl_dirsep_regex='\/'
|
||||
;;
|
||||
esac
|
||||
dnl A sed expression that turns a string into a basic regular
|
||||
dnl expression, for use within "/.../".
|
||||
gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
|
||||
changequote([,])
|
||||
gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \
|
||||
| sed -e "$gl_make_literal_regex_sed"`
|
||||
gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
|
||||
s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
|
||||
changequote(,)dnl
|
||||
s|^/[^/]|//&|
|
||||
changequote([,])dnl
|
||||
p
|
||||
q
|
||||
}'
|
||||
dnl eval is necessary to expand gl_absname_cpp.
|
||||
dnl Ultrix and Pyramid sh refuse to redirect output of eval,
|
||||
dnl so use subshell.
|
||||
AS_VAR_SET(gl_next_header,
|
||||
['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
|
||||
sed -n "$gl_absolute_header_sed"`'"'])
|
||||
gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME)
|
||||
AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME))
|
||||
AS_VAR_SET([gl_next_header], ['"'$gl_header'"'])
|
||||
m4_if([$2], [check],
|
||||
[else
|
||||
AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
|
||||
AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
|
||||
fi
|
||||
])
|
||||
])
|
||||
fi
|
||||
AC_SUBST(
|
||||
AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])),
|
||||
[AS_VAR_GET(gl_next_header)])
|
||||
[AS_VAR_GET([gl_next_header])])
|
||||
if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
|
||||
# INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
|
||||
gl_next_as_first_directive='<'gl_HEADER_NAME'>'
|
||||
else
|
||||
# INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
|
||||
gl_next_as_first_directive=AS_VAR_GET(gl_next_header)
|
||||
gl_next_as_first_directive=AS_VAR_GET([gl_next_header])
|
||||
fi
|
||||
AC_SUBST(
|
||||
AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# inet_ntop.m4 serial 19
|
||||
dnl Copyright (C) 2005-2006, 2008-2013 Free Software Foundation, Inc.
|
||||
# inet_ntop.m4 serial 21
|
||||
dnl Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -16,6 +16,7 @@ AC_DEFUN([gl_FUNC_INET_NTOP],
|
|||
dnl Most platforms that provide inet_ntop define it in libc.
|
||||
dnl Solaris 8..10 provide inet_ntop in libnsl instead.
|
||||
dnl Solaris 2.6..7 provide inet_ntop in libresolv instead.
|
||||
dnl Haiku provides it in -lnetwork.
|
||||
dnl Native Windows provides it in -lws2_32 instead, with a declaration in
|
||||
dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl
|
||||
dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it).
|
||||
|
@ -23,19 +24,20 @@ AC_DEFUN([gl_FUNC_INET_NTOP],
|
|||
INET_NTOP_LIB=
|
||||
gl_PREREQ_SYS_H_WINSOCK2
|
||||
if test $HAVE_WINSOCK2_H = 1; then
|
||||
dnl It needs to be overridden, because the stdcall calling convention
|
||||
dnl is not compliant with POSIX. Set REPLACE_INET_NTOP in order to avoid
|
||||
dnl a name conflict at the linker level, even though the header file
|
||||
dnl <ws2tcpip.h> declares inet_ntop only if _WIN32_WINNT >= 0x0600.
|
||||
REPLACE_INET_NTOP=1
|
||||
AC_CHECK_DECLS([inet_ntop],,, [[#include <ws2tcpip.h>]])
|
||||
if test $ac_cv_have_decl_inet_ntop = yes; then
|
||||
dnl It needs to be overridden, because the stdcall calling convention
|
||||
dnl is not compliant with POSIX.
|
||||
REPLACE_INET_NTOP=1
|
||||
INET_NTOP_LIB="-lws2_32"
|
||||
else
|
||||
HAVE_DECL_INET_NTOP=0
|
||||
HAVE_INET_NTOP=0
|
||||
fi
|
||||
else
|
||||
gl_save_LIBS=$LIBS
|
||||
AC_SEARCH_LIBS([inet_ntop], [nsl resolv], [],
|
||||
AC_SEARCH_LIBS([inet_ntop], [nsl resolv network], [],
|
||||
[AC_CHECK_FUNCS([inet_ntop])
|
||||
if test $ac_cv_func_inet_ntop = no; then
|
||||
HAVE_INET_NTOP=0
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
# intlmacosx.m4 serial 5 (gettext-0.18.2)
|
||||
dnl Copyright (C) 2004-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl
|
||||
dnl This file can can be used in projects which are not available under
|
||||
dnl the GNU General Public License or the GNU Library General Public
|
||||
dnl License but which still want to provide support for the GNU gettext
|
||||
dnl functionality.
|
||||
dnl Please note that the actual code of the GNU gettext library is covered
|
||||
dnl by the GNU Library General Public License, and the rest of the GNU
|
||||
dnl gettext package package is covered by the GNU General Public License.
|
||||
dnl They are *not* in the public domain.
|
||||
|
||||
dnl Checks for special options needed on Mac OS X.
|
||||
dnl Defines INTL_MACOSX_LIBS.
|
||||
AC_DEFUN([gt_INTL_MACOSX],
|
||||
[
|
||||
dnl Check for API introduced in Mac OS X 10.2.
|
||||
AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
|
||||
[gt_cv_func_CFPreferencesCopyAppValue],
|
||||
[gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <CoreFoundation/CFPreferences.h>]],
|
||||
[[CFPreferencesCopyAppValue(NULL, NULL)]])],
|
||||
[gt_cv_func_CFPreferencesCopyAppValue=yes],
|
||||
[gt_cv_func_CFPreferencesCopyAppValue=no])
|
||||
LIBS="$gt_save_LIBS"])
|
||||
if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
|
||||
AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
|
||||
[Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
|
||||
fi
|
||||
dnl Check for API introduced in Mac OS X 10.3.
|
||||
AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
|
||||
[gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <CoreFoundation/CFLocale.h>]],
|
||||
[[CFLocaleCopyCurrent();]])],
|
||||
[gt_cv_func_CFLocaleCopyCurrent=yes],
|
||||
[gt_cv_func_CFLocaleCopyCurrent=no])
|
||||
LIBS="$gt_save_LIBS"])
|
||||
if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
|
||||
AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
|
||||
[Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
|
||||
fi
|
||||
INTL_MACOSX_LIBS=
|
||||
if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
|
||||
INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
|
||||
fi
|
||||
AC_SUBST([INTL_MACOSX_LIBS])
|
||||
])
|
|
@ -1,5 +1,5 @@
|
|||
# intmax_t.m4 serial 8
|
||||
dnl Copyright (C) 1997-2004, 2006-2007, 2009-2013 Free Software Foundation,
|
||||
# intmax_t.m4 serial 9
|
||||
dnl Copyright (C) 1997-2004, 2006-2007, 2009-2023 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -19,11 +19,7 @@ AC_DEFUN([gl_AC_TYPE_INTMAX_T],
|
|||
AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
|
||||
AC_REQUIRE([gl_AC_HEADER_STDINT_H])
|
||||
if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
|
||||
AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
|
||||
test $ac_cv_type_long_long_int = yes \
|
||||
&& ac_type='long long' \
|
||||
|| ac_type='long'
|
||||
AC_DEFINE_UNQUOTED([intmax_t], [$ac_type],
|
||||
AC_DEFINE_UNQUOTED([intmax_t], [long long],
|
||||
[Define to long or long long if <inttypes.h> and <stdint.h> don't define.])
|
||||
else
|
||||
AC_DEFINE([HAVE_INTMAX_T], [1],
|
||||
|
@ -57,11 +53,7 @@ AC_DEFUN([gt_AC_TYPE_INTMAX_T],
|
|||
AC_DEFINE([HAVE_INTMAX_T], [1],
|
||||
[Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
|
||||
else
|
||||
AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
|
||||
test $ac_cv_type_long_long_int = yes \
|
||||
&& ac_type='long long' \
|
||||
|| ac_type='long'
|
||||
AC_DEFINE_UNQUOTED([intmax_t], [$ac_type],
|
||||
AC_DEFINE_UNQUOTED([intmax_t], [long long],
|
||||
[Define to long or long long if <stdint.h> and <inttypes.h> don't define.])
|
||||
fi
|
||||
])
|
||||
|
|
180
gl/m4/inttypes.m4
Normal file
180
gl/m4/inttypes.m4
Normal file
|
@ -0,0 +1,180 @@
|
|||
# inttypes.m4 serial 36
|
||||
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Derek Price, Bruno Haible.
|
||||
dnl Test whether <inttypes.h> is supported or must be substituted.
|
||||
|
||||
AC_DEFUN_ONCE([gl_INTTYPES_H],
|
||||
[
|
||||
AC_REQUIRE([gl_INTTYPES_INCOMPLETE])
|
||||
gl_INTTYPES_PRI_SCN
|
||||
])
|
||||
|
||||
AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE],
|
||||
[
|
||||
AC_REQUIRE([gl_STDINT_H])
|
||||
AC_CHECK_HEADERS_ONCE([inttypes.h])
|
||||
|
||||
dnl Override <inttypes.h> always, so that the portability warnings work.
|
||||
AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
|
||||
gl_CHECK_NEXT_HEADERS([inttypes.h])
|
||||
|
||||
AC_REQUIRE([gl_MULTIARCH])
|
||||
|
||||
dnl Check for declarations of anything we want to poison if the
|
||||
dnl corresponding gnulib module is not in use.
|
||||
gl_WARN_ON_USE_PREPARE([[#include <inttypes.h>
|
||||
]], [imaxabs imaxdiv strtoimax strtoumax])
|
||||
|
||||
AC_REQUIRE([AC_C_RESTRICT])
|
||||
])
|
||||
|
||||
# Ensure that the PRI* and SCN* macros are defined appropriately.
|
||||
AC_DEFUN([gl_INTTYPES_PRI_SCN],
|
||||
[
|
||||
PRIPTR_PREFIX=
|
||||
if $GL_GENERATE_STDINT_H; then
|
||||
dnl Using the gnulib <stdint.h>. It defines intptr_t to 'long' or
|
||||
dnl 'long long', depending on _WIN64.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#ifdef _WIN64
|
||||
LLP64
|
||||
#endif
|
||||
]])
|
||||
],
|
||||
[PRIPTR_PREFIX='"l"'],
|
||||
[PRIPTR_PREFIX='"ll"'])
|
||||
else
|
||||
dnl Using the system's <stdint.h>.
|
||||
for glpfx in '' l ll I64; do
|
||||
case $glpfx in
|
||||
'') gltype1='int';;
|
||||
l) gltype1='long int';;
|
||||
ll) gltype1='long long int';;
|
||||
I64) gltype1='__int64';;
|
||||
esac
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <stdint.h>
|
||||
extern intptr_t foo;
|
||||
extern $gltype1 foo;]])],
|
||||
[PRIPTR_PREFIX='"'$glpfx'"'])
|
||||
test -n "$PRIPTR_PREFIX" && break
|
||||
done
|
||||
fi
|
||||
AC_SUBST([PRIPTR_PREFIX])
|
||||
|
||||
gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
|
||||
[INT32_MAX_LT_INTMAX_MAX],
|
||||
[defined INT32_MAX && defined INTMAX_MAX],
|
||||
[INT32_MAX < INTMAX_MAX],
|
||||
[sizeof (int) < sizeof (long long int)])
|
||||
if test $APPLE_UNIVERSAL_BUILD = 0; then
|
||||
gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
|
||||
[INT64_MAX_EQ_LONG_MAX],
|
||||
[defined INT64_MAX],
|
||||
[INT64_MAX == LONG_MAX],
|
||||
[sizeof (long long int) == sizeof (long int)])
|
||||
else
|
||||
INT64_MAX_EQ_LONG_MAX=-1
|
||||
fi
|
||||
gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
|
||||
[UINT32_MAX_LT_UINTMAX_MAX],
|
||||
[defined UINT32_MAX && defined UINTMAX_MAX],
|
||||
[UINT32_MAX < UINTMAX_MAX],
|
||||
[sizeof (unsigned int) < sizeof (unsigned long long int)])
|
||||
if test $APPLE_UNIVERSAL_BUILD = 0; then
|
||||
gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
|
||||
[UINT64_MAX_EQ_ULONG_MAX],
|
||||
[defined UINT64_MAX],
|
||||
[UINT64_MAX == ULONG_MAX],
|
||||
[sizeof (unsigned long long int) == sizeof (unsigned long int)])
|
||||
else
|
||||
UINT64_MAX_EQ_ULONG_MAX=-1
|
||||
fi
|
||||
])
|
||||
|
||||
# Define the symbol $1 to be 1 if the condition is true, 0 otherwise.
|
||||
# If $2 is true, the condition is $3; otherwise if long long int is supported
|
||||
# approximate the condition with $4; otherwise, assume the condition is false.
|
||||
# The condition should work on all C99 platforms; the approximations should be
|
||||
# good enough to work on all practical pre-C99 platforms.
|
||||
# $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants.
|
||||
AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION],
|
||||
[
|
||||
AC_CACHE_CHECK([whether $3],
|
||||
[gl_cv_test_$1],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[/* Work also in C++ mode. */
|
||||
#define __STDC_LIMIT_MACROS 1
|
||||
|
||||
/* Work if build is not clean. */
|
||||
#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
|
||||
|
||||
#include <limits.h>
|
||||
#if HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
#if $2
|
||||
#define CONDITION ($3)
|
||||
#else
|
||||
#define CONDITION ($4)
|
||||
#endif
|
||||
int test[CONDITION ? 1 : -1];]])],
|
||||
[gl_cv_test_$1=yes],
|
||||
[gl_cv_test_$1=no])])
|
||||
if test $gl_cv_test_$1 = yes; then
|
||||
$1=1;
|
||||
else
|
||||
$1=0;
|
||||
fi
|
||||
AC_SUBST([$1])
|
||||
])
|
||||
|
||||
# gl_INTTYPES_MODULE_INDICATOR([modulename])
|
||||
# sets the shell variable that indicates the presence of the given module
|
||||
# to a C preprocessor expression that will evaluate to 1.
|
||||
# This macro invocation must not occur in macros that are AC_REQUIREd.
|
||||
AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Ensure to expand the default settings once only.
|
||||
gl_INTTYPES_H_REQUIRE_DEFAULTS
|
||||
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
||||
])
|
||||
|
||||
# Initializes the default values for AC_SUBSTed shell variables.
|
||||
# This macro must not be AC_REQUIREd. It must only be invoked, and only
|
||||
# outside of macros or in macros that are not AC_REQUIREd.
|
||||
AC_DEFUN([gl_INTTYPES_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXABS])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXDIV])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOIMAX])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUMAX])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
|
||||
[
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS])
|
||||
HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV])
|
||||
HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
|
||||
HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
|
||||
HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T])
|
||||
REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX])
|
||||
REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX])
|
||||
INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
|
||||
INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX])
|
||||
PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX])
|
||||
UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX])
|
||||
UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
|
||||
])
|
|
@ -1,5 +1,5 @@
|
|||
# inttypes_h.m4 serial 10
|
||||
dnl Copyright (C) 1997-2004, 2006, 2008-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 1997-2004, 2006, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# langinfo_h.m4 serial 7
|
||||
dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
|
||||
# langinfo_h.m4 serial 12
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_LANGINFO_H],
|
||||
AC_DEFUN_ONCE([gl_LANGINFO_H],
|
||||
[
|
||||
AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
|
||||
|
||||
|
@ -17,13 +17,17 @@ AC_DEFUN([gl_LANGINFO_H],
|
|||
dnl Determine whether <langinfo.h> exists. It is missing on mingw and BeOS.
|
||||
HAVE_LANGINFO_CODESET=0
|
||||
HAVE_LANGINFO_T_FMT_AMPM=0
|
||||
HAVE_LANGINFO_ALTMON=0
|
||||
HAVE_LANGINFO_ERA=0
|
||||
HAVE_LANGINFO_YESEXPR=0
|
||||
AC_CHECK_HEADERS_ONCE([langinfo.h])
|
||||
if test $ac_cv_header_langinfo_h = yes; then
|
||||
HAVE_LANGINFO_H=1
|
||||
dnl Determine what <langinfo.h> defines. CODESET and ERA etc. are missing
|
||||
dnl on OpenBSD 3.8. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3.
|
||||
dnl Determine what <langinfo.h> defines.
|
||||
dnl CODESET is missing on OpenBSD 3.8.
|
||||
dnl ERA etc. are missing on OpenBSD 6.7.
|
||||
dnl T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3.
|
||||
dnl ALTMON_* are missing on glibc 2.26 and many other systems.
|
||||
AC_CACHE_CHECK([whether langinfo.h defines CODESET],
|
||||
[gl_cv_header_langinfo_codeset],
|
||||
[AC_COMPILE_IFELSE(
|
||||
|
@ -48,6 +52,18 @@ int a = T_FMT_AMPM;
|
|||
if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
|
||||
HAVE_LANGINFO_T_FMT_AMPM=1
|
||||
fi
|
||||
AC_CACHE_CHECK([whether langinfo.h defines ALTMON_1],
|
||||
[gl_cv_header_langinfo_altmon],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <langinfo.h>
|
||||
int a = ALTMON_1;
|
||||
]])],
|
||||
[gl_cv_header_langinfo_altmon=yes],
|
||||
[gl_cv_header_langinfo_altmon=no])
|
||||
])
|
||||
if test $gl_cv_header_langinfo_altmon = yes; then
|
||||
HAVE_LANGINFO_ALTMON=1
|
||||
fi
|
||||
AC_CACHE_CHECK([whether langinfo.h defines ERA],
|
||||
[gl_cv_header_langinfo_era],
|
||||
[AC_COMPILE_IFELSE(
|
||||
|
@ -78,6 +94,7 @@ int a = YESEXPR;
|
|||
AC_SUBST([HAVE_LANGINFO_H])
|
||||
AC_SUBST([HAVE_LANGINFO_CODESET])
|
||||
AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM])
|
||||
AC_SUBST([HAVE_LANGINFO_ALTMON])
|
||||
AC_SUBST([HAVE_LANGINFO_ERA])
|
||||
AC_SUBST([HAVE_LANGINFO_YESEXPR])
|
||||
|
||||
|
@ -87,18 +104,33 @@ int a = YESEXPR;
|
|||
]], [nl_langinfo])
|
||||
])
|
||||
|
||||
# gl_LANGINFO_MODULE_INDICATOR([modulename])
|
||||
# sets the shell variable that indicates the presence of the given module
|
||||
# to a C preprocessor expression that will evaluate to 1.
|
||||
# This macro invocation must not occur in macros that are AC_REQUIREd.
|
||||
AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
|
||||
AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
|
||||
dnl Ensure to expand the default settings once only.
|
||||
gl_LANGINFO_H_REQUIRE_DEFAULTS
|
||||
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
||||
dnl Define it also as a C macro, for the benefit of the unit tests.
|
||||
gl_MODULE_INDICATOR_FOR_TESTS([$1])
|
||||
])
|
||||
|
||||
# Initializes the default values for AC_SUBSTed shell variables.
|
||||
# This macro must not be AC_REQUIREd. It must only be invoked, and only
|
||||
# outside of macros or in macros that are not AC_REQUIREd.
|
||||
AC_DEFUN([gl_LANGINFO_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NL_LANGINFO])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_LANGINFO_H_DEFAULTS],
|
||||
[
|
||||
GNULIB_NL_LANGINFO=0; AC_SUBST([GNULIB_NL_LANGINFO])
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO])
|
||||
REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO])
|
||||
|
|
|
@ -1,104 +1,319 @@
|
|||
# Enable large files on systems where this is not the default.
|
||||
# Enable support for files on Linux file systems with 64-bit inode numbers.
|
||||
|
||||
# Copyright 1992-1996, 1998-2013 Free Software Foundation, Inc.
|
||||
# Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# The following implementation works around a problem in autoconf <= 2.69;
|
||||
# The following macro works around a problem in Autoconf's AC_FUNC_FSEEKO:
|
||||
# It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this
|
||||
# setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko
|
||||
# and ftello in C++ mode as well.
|
||||
# Fixed in Autoconf 2.72, which has AC_SYS_YEAR2038.
|
||||
AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
|
||||
m4_ifndef([AC_SYS_YEAR2038], [[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_FUNC_FSEEKO
|
||||
case "$host_os" in
|
||||
hpux*)
|
||||
AC_DEFINE([_LARGEFILE_SOURCE], [1],
|
||||
[Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).])
|
||||
;;
|
||||
esac
|
||||
]])
|
||||
)
|
||||
|
||||
# Work around a problem in autoconf <= 2.69:
|
||||
# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
|
||||
# or configures them incorrectly in some cases.
|
||||
m4_version_prereq([2.70], [] ,[
|
||||
m4_version_prereq([2.70], [], [
|
||||
|
||||
# _AC_SYS_LARGEFILE_TEST_INCLUDES
|
||||
# -------------------------------
|
||||
m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
|
||||
[#include <sys/types.h>
|
||||
/* Check that off_t can represent 2**63 - 1 correctly.
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
|
||||
int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1]];[]dnl
|
||||
])
|
||||
])# m4_version_prereq 2.70
|
||||
|
||||
# Support AC_SYS_YEAR2038, even if Autoconf 2.71 or earlier.
|
||||
# This code is taken from Autoconf master.
|
||||
m4_ifndef([AC_SYS_YEAR2038], [
|
||||
|
||||
# _AC_SYS_YEAR2038_TEST_CODE
|
||||
# --------------------------
|
||||
# C code used to probe for time_t that can represent time points more
|
||||
# than 2**31 - 1 seconds after the epoch. With the usual Unix epoch,
|
||||
# these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian),
|
||||
# hence the name.
|
||||
AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE],
|
||||
[[
|
||||
#include <time.h>
|
||||
/* Check that time_t can represent 2**32 - 1 correctly. */
|
||||
#define LARGE_TIME_T \\
|
||||
((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
|
||||
int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
|
||||
&& LARGE_TIME_T % 65537 == 0)
|
||||
? 1 : -1];
|
||||
]])
|
||||
|
||||
# _AC_SYS_YEAR2038_OPTIONS
|
||||
# ------------------------
|
||||
# List of known ways to enable support for large time_t. If you change
|
||||
# this list you probably also need to change the AS_CASE at the end of
|
||||
# _AC_SYS_YEAR2038_PROBE.
|
||||
m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
|
||||
["none needed"] dnl 64-bit and newer 32-bit Unix
|
||||
["-D_TIME_BITS=64"] dnl glibc 2.34 with some 32-bit ABIs
|
||||
["-D__MINGW_USE_VC2005_COMPAT"] dnl 32-bit MinGW
|
||||
["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"]
|
||||
dnl 32-bit MinGW (misconfiguration)
|
||||
))
|
||||
|
||||
# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED])
|
||||
# -----------------------------------------
|
||||
# Subroutine of AC_SYS_YEAR2038. Probe for time_t that can represent
|
||||
# time points more than 2**31 - 1 seconds after the epoch (dates after
|
||||
# 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
|
||||
# to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to
|
||||
# "support not detected" if none of them worked. Then, set compilation
|
||||
# options and #defines as necessary to enable large time_t support.
|
||||
#
|
||||
# Note that we do not test whether mktime, localtime, etc. handle
|
||||
# large values of time_t correctly, as that would require use of
|
||||
# AC_TRY_RUN. Note also that some systems only support large time_t
|
||||
# together with large off_t.
|
||||
#
|
||||
# If support is not detected, the behavior depends on which of the
|
||||
# top-level AC_SYS_YEAR2038 macros was used (see below).
|
||||
#
|
||||
# If you change this macro you may also need to change
|
||||
# _AC_SYS_YEAR2038_OPTIONS.
|
||||
AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
|
||||
[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038],
|
||||
[ac_cv_sys_year2038_opts],
|
||||
[ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
ac_opt_found=no
|
||||
for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do
|
||||
AS_IF([test x"$ac_opt" != x"none needed"],
|
||||
[CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])],
|
||||
[ac_cv_sys_year2038_opts="$ac_opt"
|
||||
ac_opt_found=yes])
|
||||
test $ac_opt_found = no || break
|
||||
done
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"])
|
||||
|
||||
ac_have_year2038=yes
|
||||
AS_CASE([$ac_cv_sys_year2038_opts],
|
||||
["none needed"], [],
|
||||
["support not detected"],
|
||||
[ac_have_year2038=no
|
||||
AS_CASE([$enable_year2038],
|
||||
[yes],
|
||||
[# If we're not cross compiling and 'touch' works with a large
|
||||
# timestamp, then we can presume the system supports wider time_t
|
||||
# *somehow* and we just weren't able to detect it. One common
|
||||
# case that we deliberately *don't* probe for is a system that
|
||||
# supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
|
||||
# wide time_t. (It would be inappropriate for us to override an
|
||||
# intentional use of -m32.) Error out, demanding use of
|
||||
# --disable-year2038 if this is intentional.
|
||||
AS_IF([test $cross_compiling = no],
|
||||
[AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
|
||||
[AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
|
||||
[*'Feb 7 2106'* | *'Feb 7 17:10'*],
|
||||
[AC_MSG_FAILURE(m4_text_wrap(
|
||||
[this system appears to support timestamps after January 2038,
|
||||
but no mechanism for enabling wide 'time_t' was detected.
|
||||
Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.)
|
||||
To proceed with 32-bit time_t, configure with '--disable-year2038'.],
|
||||
[], [], [55]))])])])])],
|
||||
|
||||
["-D_TIME_BITS=64"],
|
||||
[AC_DEFINE([_TIME_BITS], [64],
|
||||
[Number of bits in time_t, on hosts where this is settable.])],
|
||||
|
||||
["-D__MINGW_USE_VC2005_COMPAT=1"],
|
||||
[AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
|
||||
[Define to 1 on platforms where this makes time_t a 64-bit type.])],
|
||||
|
||||
["-U_USE_32_BIT_TIME_T"*],
|
||||
[AC_MSG_FAILURE(m4_text_wrap(
|
||||
[the 'time_t' type is currently forced to be 32-bit.
|
||||
It will stop working after January 2038.
|
||||
Remove _USE_32BIT_TIME_T from the compiler flags.],
|
||||
[], [], [55]))],
|
||||
|
||||
[AC_MSG_ERROR(
|
||||
[internal error: bad value for \$ac_cv_sys_year2038_opts])])
|
||||
])
|
||||
|
||||
# _AC_SYS_YEAR2038_ENABLE
|
||||
# -----------------------
|
||||
# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN.
|
||||
# Depending on which of the YEAR2038 macros was used, add either an
|
||||
# --enable-year2038, or a --disable-year2038, or no option at all to
|
||||
# the configure script. Note that this is expanded very late and
|
||||
# therefore there cannot be any code in the AC_ARG_ENABLE. The
|
||||
# default value for enable_year2038 is emitted unconditionally
|
||||
# because the generated code always looks at this variable.
|
||||
m4_define([_AC_SYS_YEAR2038_ENABLE],
|
||||
[m4_divert_text([DEFAULTS],
|
||||
m4_provide_if([AC_SYS_YEAR2038],
|
||||
[enable_year2038=yes],
|
||||
[enable_year2038=no]))]dnl
|
||||
[AC_ARG_ENABLE([year2038],
|
||||
m4_provide_if([AC_SYS_YEAR2038],
|
||||
[AS_HELP_STRING([--disable-year2038],
|
||||
[do not support timestamps after 2038])],
|
||||
[AS_HELP_STRING([--enable-year2038],
|
||||
[support timestamps after 2038])]))])
|
||||
|
||||
# _AC_SYS_YEAR2038_OPT_IN
|
||||
# -----------------------
|
||||
# If the --enable-year2038 option is given to configure, attempt to
|
||||
# detect and activate support for large time_t on 32-bit systems.
|
||||
# This macro is automatically invoked by AC_SYS_LARGEFILE when large
|
||||
# *file* support is detected. It does not AC_REQUIRE AC_SYS_LARGEFILE
|
||||
# to avoid a dependency loop, and is therefore unsafe to expose as a
|
||||
# documented macro.
|
||||
AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
|
||||
[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
|
||||
AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
|
||||
AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
|
||||
])])
|
||||
|
||||
# AC_SYS_YEAR2038
|
||||
# ---------------
|
||||
# Attempt to detect and activate support for large time_t.
|
||||
# On systems where time_t is not always 64 bits, this probe can be
|
||||
# skipped by passing the --disable-year2038 option to configure.
|
||||
AC_DEFUN([AC_SYS_YEAR2038],
|
||||
[AC_REQUIRE([AC_SYS_LARGEFILE])]dnl
|
||||
[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
|
||||
AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
|
||||
AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
|
||||
])])
|
||||
|
||||
# _AC_SYS_LARGEFILE_TEST_CODE
|
||||
# ---------------------------
|
||||
# C code used to probe for large file support.
|
||||
m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
|
||||
[@%:@include <sys/types.h>
|
||||
/* Check that off_t can represent 2**63 - 1 correctly.
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
|
||||
int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1]];[]dnl
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1]];[]dnl
|
||||
])
|
||||
|
||||
# _AC_SYS_LARGEFILE_OPTIONS
|
||||
# -------------------------
|
||||
# List of known ways to enable support for large files. If you change
|
||||
# this list you probably also need to change the AS_CASE at the end of
|
||||
# _AC_SYS_LARGEFILE_PROBE.
|
||||
m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
|
||||
["none needed"] dnl Most current systems
|
||||
["-D_FILE_OFFSET_BITS=64"] dnl X/Open LFS spec
|
||||
["-D_LARGE_FILES=1"] dnl AIX (which versions?)
|
||||
["-n32"] dnl Irix 6.2 w/ SGI compiler
|
||||
))
|
||||
|
||||
# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
|
||||
# CACHE-VAR,
|
||||
# DESCRIPTION,
|
||||
# PROLOGUE, [FUNCTION-BODY])
|
||||
# --------------------------------------------------------
|
||||
m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
|
||||
[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
|
||||
[while :; do
|
||||
m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
|
||||
[AC_LANG_PROGRAM([$5], [$6])],
|
||||
[$3=no; break])
|
||||
m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
|
||||
[AC_LANG_PROGRAM([@%:@define $1 $2
|
||||
$5], [$6])],
|
||||
[$3=$2; break])
|
||||
$3=unknown
|
||||
break
|
||||
done])
|
||||
case $$3 in #(
|
||||
no | unknown) ;;
|
||||
*) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
|
||||
esac
|
||||
rm -rf conftest*[]dnl
|
||||
])# _AC_SYS_LARGEFILE_MACRO_VALUE
|
||||
# _AC_SYS_LARGEFILE_PROBE
|
||||
# -----------------------
|
||||
# Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set
|
||||
# the cache variable ac_cv_sys_largefile_opts to one of the values in
|
||||
# the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if
|
||||
# none of the options in that list worked. Then, set compilation
|
||||
# options and #defines as necessary to enable large file support.
|
||||
#
|
||||
# If large file support is not detected, the behavior depends on which of
|
||||
# the top-level AC_SYS_LARGEFILE macros was used (see below).
|
||||
#
|
||||
# If you change this macro you may also need to change
|
||||
# _AC_SYS_LARGEFILE_OPTIONS.
|
||||
AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
|
||||
[AC_CACHE_CHECK([for $CC option to enable large file support],
|
||||
[ac_cv_sys_largefile_opts],
|
||||
[ac_save_CC="$CC"
|
||||
ac_opt_found=no
|
||||
for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
|
||||
AS_IF([test x"$ac_opt" != x"none needed"],
|
||||
[CC="$ac_save_CC $ac_opt"])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
|
||||
[ac_cv_sys_largefile_opts="$ac_opt"
|
||||
ac_opt_found=yes])
|
||||
test $ac_opt_found = no || break
|
||||
done
|
||||
CC="$ac_save_CC"
|
||||
test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
|
||||
|
||||
ac_have_largefile=yes
|
||||
AS_CASE([$ac_cv_sys_largefile_opts],
|
||||
["none needed"], [],
|
||||
["support not detected"],
|
||||
[ac_have_largefile=no],
|
||||
|
||||
["-D_FILE_OFFSET_BITS=64"],
|
||||
[AC_DEFINE([_FILE_OFFSET_BITS], [64],
|
||||
[Number of bits in a file offset, on hosts where this is settable.])],
|
||||
|
||||
["-D_LARGE_FILES=1"],
|
||||
[AC_DEFINE([_LARGE_FILES], [1],
|
||||
[Define to 1 on platforms where this makes off_t a 64-bit type.])],
|
||||
|
||||
["-n32"],
|
||||
[CC="$CC -n32"],
|
||||
|
||||
[AC_MSG_ERROR(
|
||||
[internal error: bad value for \$ac_cv_sys_largefile_opts])])
|
||||
|
||||
_AC_SYS_YEAR2038_OPT_IN
|
||||
])
|
||||
|
||||
# _AC_SYS_LARGEFILE_ENABLE
|
||||
# ------------------------
|
||||
# Subroutine of AC_SYS_LARGEFILE. Note that this
|
||||
# is expanded very late and therefore there cannot be any code in the
|
||||
# AC_ARG_ENABLE. The default value for enable_largefile is emitted
|
||||
# unconditionally because the generated shell code always looks at
|
||||
# this variable.
|
||||
m4_define([_AC_SYS_LARGEFILE_ENABLE],
|
||||
[m4_divert_text([DEFAULTS],
|
||||
enable_largefile=yes)]dnl
|
||||
[AC_ARG_ENABLE([largefile],
|
||||
[AS_HELP_STRING([--disable-largefile], [omit support for large files])])])
|
||||
|
||||
# AC_SYS_LARGEFILE
|
||||
# ----------------
|
||||
# By default, many hosts won't let programs access large files;
|
||||
# one must use special compiler options to get large-file access to work.
|
||||
# For more details about this brain damage please see:
|
||||
# http://www.unix-systems.org/version2/whatsnew/lfs20mar.html
|
||||
# http://www.unix.org/version2/whatsnew/lfs20mar.html
|
||||
# Additionally, on Linux file systems with 64-bit inodes a file that happens
|
||||
# to have a 64-bit inode number cannot be accessed by 32-bit applications on
|
||||
# Linux x86/x86_64. This can occur with file systems such as XFS and NFS.
|
||||
# This macro allows configuration to continue if the system doesn't support
|
||||
# large files.
|
||||
AC_DEFUN([AC_SYS_LARGEFILE],
|
||||
[AC_ARG_ENABLE(largefile,
|
||||
[ --disable-largefile omit support for large files])
|
||||
if test "$enable_largefile" != no; then
|
||||
|
||||
AC_CACHE_CHECK([for special C compiler options needed for large files],
|
||||
ac_cv_sys_largefile_CC,
|
||||
[ac_cv_sys_largefile_CC=no
|
||||
if test "$GCC" != yes; then
|
||||
ac_save_CC=$CC
|
||||
while :; do
|
||||
# IRIX 6.2 and later do not support large files by default,
|
||||
# so use the C compiler's -n32 option if that helps.
|
||||
AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
|
||||
AC_COMPILE_IFELSE([], [break])
|
||||
CC="$CC -n32"
|
||||
AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
|
||||
break
|
||||
done
|
||||
CC=$ac_save_CC
|
||||
rm -f conftest.$ac_ext
|
||||
fi])
|
||||
if test "$ac_cv_sys_largefile_CC" != no; then
|
||||
CC=$CC$ac_cv_sys_largefile_CC
|
||||
fi
|
||||
|
||||
_AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
|
||||
ac_cv_sys_file_offset_bits,
|
||||
[Number of bits in a file offset, on hosts where this is settable.],
|
||||
[_AC_SYS_LARGEFILE_TEST_INCLUDES])
|
||||
if test $ac_cv_sys_file_offset_bits = unknown; then
|
||||
_AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
|
||||
ac_cv_sys_large_files,
|
||||
[Define for large files, on AIX-style hosts.],
|
||||
[_AC_SYS_LARGEFILE_TEST_INCLUDES])
|
||||
fi
|
||||
|
||||
AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1],
|
||||
[Enable large inode numbers on Mac OS X 10.5.])
|
||||
fi
|
||||
])# AC_SYS_LARGEFILE
|
||||
])# m4_version_prereq 2.70
|
||||
[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
|
||||
AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE])
|
||||
AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
|
||||
])])
|
||||
])# m4_ifndef AC_SYS_YEAR2038
|
||||
|
||||
# Enable large files on systems where this is implemented by Gnulib, not by the
|
||||
# system headers.
|
||||
|
@ -126,9 +341,24 @@ AC_DEFUN([gl_LARGEFILE],
|
|||
else
|
||||
WINDOWS_64_BIT_OFF_T=0
|
||||
fi
|
||||
dnl But all native Windows platforms (including mingw64) have a 32-bit
|
||||
dnl st_size member in 'struct stat'.
|
||||
WINDOWS_64_BIT_ST_SIZE=1
|
||||
dnl Some mingw versions define, if _FILE_OFFSET_BITS=64, 'struct stat'
|
||||
dnl to 'struct _stat32i64' or 'struct _stat64' (depending on
|
||||
dnl _USE_32BIT_TIME_T), which has a 32-bit st_size member.
|
||||
AC_CACHE_CHECK([for 64-bit st_size], [gl_cv_member_st_size_64],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <sys/types.h>
|
||||
struct stat buf;
|
||||
int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1];
|
||||
]],
|
||||
[[]])],
|
||||
[gl_cv_member_st_size_64=yes], [gl_cv_member_st_size_64=no])
|
||||
])
|
||||
if test $gl_cv_member_st_size_64 = no; then
|
||||
WINDOWS_64_BIT_ST_SIZE=1
|
||||
else
|
||||
WINDOWS_64_BIT_ST_SIZE=0
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
dnl Nothing to do on gnulib's side.
|
||||
|
|
119
gl/m4/lib-ld.m4
119
gl/m4/lib-ld.m4
|
@ -1,119 +0,0 @@
|
|||
# lib-ld.m4 serial 6
|
||||
dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl Subroutines of libtool.m4,
|
||||
dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
|
||||
dnl collision with libtool.m4.
|
||||
|
||||
dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
|
||||
AC_DEFUN([AC_LIB_PROG_LD_GNU],
|
||||
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
|
||||
[# I'd rather use --version here, but apparently some GNU lds only accept -v.
|
||||
case `$LD -v 2>&1 </dev/null` in
|
||||
*GNU* | *'with BFD'*)
|
||||
acl_cv_prog_gnu_ld=yes
|
||||
;;
|
||||
*)
|
||||
acl_cv_prog_gnu_ld=no
|
||||
;;
|
||||
esac])
|
||||
with_gnu_ld=$acl_cv_prog_gnu_ld
|
||||
])
|
||||
|
||||
dnl From libtool-2.4. Sets the variable LD.
|
||||
AC_DEFUN([AC_LIB_PROG_LD],
|
||||
[AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
|
||||
AC_ARG_WITH([gnu-ld],
|
||||
[AS_HELP_STRING([--with-gnu-ld],
|
||||
[assume the C compiler uses GNU ld [default=no]])],
|
||||
[test "$withval" = no || with_gnu_ld=yes],
|
||||
[with_gnu_ld=no])dnl
|
||||
|
||||
# Prepare PATH_SEPARATOR.
|
||||
# The user is always right.
|
||||
if test "${PATH_SEPARATOR+set}" != set; then
|
||||
# Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
|
||||
# contains only /bin. Note that ksh looks also at the FPATH variable,
|
||||
# so we have to set that as well for the test.
|
||||
PATH_SEPARATOR=:
|
||||
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
|
||||
&& { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
|
||||
|| PATH_SEPARATOR=';'
|
||||
}
|
||||
fi
|
||||
|
||||
ac_prog=ld
|
||||
if test "$GCC" = yes; then
|
||||
# Check if gcc -print-prog-name=ld gives a path.
|
||||
AC_MSG_CHECKING([for ld used by $CC])
|
||||
case $host in
|
||||
*-*-mingw*)
|
||||
# gcc leaves a trailing carriage return which upsets mingw
|
||||
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
|
||||
*)
|
||||
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
|
||||
esac
|
||||
case $ac_prog in
|
||||
# Accept absolute paths.
|
||||
[[\\/]]* | ?:[[\\/]]*)
|
||||
re_direlt='/[[^/]][[^/]]*/\.\./'
|
||||
# Canonicalize the pathname of ld
|
||||
ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
|
||||
while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
|
||||
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
|
||||
done
|
||||
test -z "$LD" && LD="$ac_prog"
|
||||
;;
|
||||
"")
|
||||
# If it fails, then pretend we aren't using GCC.
|
||||
ac_prog=ld
|
||||
;;
|
||||
*)
|
||||
# If it is relative, then search for the first ld in PATH.
|
||||
with_gnu_ld=unknown
|
||||
;;
|
||||
esac
|
||||
elif test "$with_gnu_ld" = yes; then
|
||||
AC_MSG_CHECKING([for GNU ld])
|
||||
else
|
||||
AC_MSG_CHECKING([for non-GNU ld])
|
||||
fi
|
||||
AC_CACHE_VAL([acl_cv_path_LD],
|
||||
[if test -z "$LD"; then
|
||||
acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
|
||||
for ac_dir in $PATH; do
|
||||
IFS="$acl_save_ifs"
|
||||
test -z "$ac_dir" && ac_dir=.
|
||||
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
|
||||
acl_cv_path_LD="$ac_dir/$ac_prog"
|
||||
# Check to see if the program is GNU ld. I'd rather use --version,
|
||||
# but apparently some variants of GNU ld only accept -v.
|
||||
# Break only if it was the GNU/non-GNU ld that we prefer.
|
||||
case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
|
||||
*GNU* | *'with BFD'*)
|
||||
test "$with_gnu_ld" != no && break
|
||||
;;
|
||||
*)
|
||||
test "$with_gnu_ld" != yes && break
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
IFS="$acl_save_ifs"
|
||||
else
|
||||
acl_cv_path_LD="$LD" # Let the user override the test with a path.
|
||||
fi])
|
||||
LD="$acl_cv_path_LD"
|
||||
if test -n "$LD"; then
|
||||
AC_MSG_RESULT([$LD])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
|
||||
AC_LIB_PROG_LD_GNU
|
||||
])
|
|
@ -1,777 +0,0 @@
|
|||
# lib-link.m4 serial 26 (gettext-0.18.2)
|
||||
dnl Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
AC_PREREQ([2.54])
|
||||
|
||||
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
|
||||
dnl the libraries corresponding to explicit and implicit dependencies.
|
||||
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
|
||||
dnl augments the CPPFLAGS variable.
|
||||
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
|
||||
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
|
||||
AC_DEFUN([AC_LIB_LINKFLAGS],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
pushdef([Name],[m4_translit([$1],[./+-], [____])])
|
||||
pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
|
||||
AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
||||
ac_cv_lib[]Name[]_libs="$LIB[]NAME"
|
||||
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
|
||||
ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
|
||||
ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
|
||||
])
|
||||
LIB[]NAME="$ac_cv_lib[]Name[]_libs"
|
||||
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
|
||||
INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
|
||||
LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
||||
AC_SUBST([LIB]NAME)
|
||||
AC_SUBST([LTLIB]NAME)
|
||||
AC_SUBST([LIB]NAME[_PREFIX])
|
||||
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
|
||||
dnl results of this search when this library appears as a dependency.
|
||||
HAVE_LIB[]NAME=yes
|
||||
popdef([NAME])
|
||||
popdef([Name])
|
||||
])
|
||||
|
||||
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
|
||||
dnl searches for libname and the libraries corresponding to explicit and
|
||||
dnl implicit dependencies, together with the specified include files and
|
||||
dnl the ability to compile and link the specified testcode. The missing-message
|
||||
dnl defaults to 'no' and may contain additional hints for the user.
|
||||
dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
|
||||
dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
|
||||
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
|
||||
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
|
||||
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
|
||||
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
|
||||
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
pushdef([Name],[m4_translit([$1],[./+-], [____])])
|
||||
pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
|
||||
dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
|
||||
dnl accordingly.
|
||||
AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
||||
|
||||
dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
|
||||
dnl because if the user has installed lib[]Name and not disabled its use
|
||||
dnl via --without-lib[]Name-prefix, he wants to use it.
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
||||
|
||||
AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
|
||||
ac_save_LIBS="$LIBS"
|
||||
dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
|
||||
dnl because these -l options might require -L options that are present in
|
||||
dnl LIBS. -l options benefit only from the -L options listed before it.
|
||||
dnl Otherwise, add it to the front of LIBS, because it may be a static
|
||||
dnl library that depends on another static library that is present in LIBS.
|
||||
dnl Static libraries benefit only from the static libraries listed after
|
||||
dnl it.
|
||||
case " $LIB[]NAME" in
|
||||
*" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
|
||||
*) LIBS="$LIB[]NAME $LIBS" ;;
|
||||
esac
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[$3]], [[$4]])],
|
||||
[ac_cv_lib[]Name=yes],
|
||||
[ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
|
||||
LIBS="$ac_save_LIBS"
|
||||
])
|
||||
if test "$ac_cv_lib[]Name" = yes; then
|
||||
HAVE_LIB[]NAME=yes
|
||||
AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
|
||||
AC_MSG_CHECKING([how to link with lib[]$1])
|
||||
AC_MSG_RESULT([$LIB[]NAME])
|
||||
else
|
||||
HAVE_LIB[]NAME=no
|
||||
dnl If $LIB[]NAME didn't lead to a usable library, we don't need
|
||||
dnl $INC[]NAME either.
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
LIB[]NAME=
|
||||
LTLIB[]NAME=
|
||||
LIB[]NAME[]_PREFIX=
|
||||
fi
|
||||
AC_SUBST([HAVE_LIB]NAME)
|
||||
AC_SUBST([LIB]NAME)
|
||||
AC_SUBST([LTLIB]NAME)
|
||||
AC_SUBST([LIB]NAME[_PREFIX])
|
||||
popdef([NAME])
|
||||
popdef([Name])
|
||||
])
|
||||
|
||||
dnl Determine the platform dependent parameters needed to use rpath:
|
||||
dnl acl_libext,
|
||||
dnl acl_shlibext,
|
||||
dnl acl_libname_spec,
|
||||
dnl acl_library_names_spec,
|
||||
dnl acl_hardcode_libdir_flag_spec,
|
||||
dnl acl_hardcode_libdir_separator,
|
||||
dnl acl_hardcode_direct,
|
||||
dnl acl_hardcode_minus_L.
|
||||
AC_DEFUN([AC_LIB_RPATH],
|
||||
[
|
||||
dnl Tell automake >= 1.10 to complain if config.rpath is missing.
|
||||
m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
|
||||
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
|
||||
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
|
||||
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
|
||||
AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
|
||||
CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
|
||||
${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
|
||||
. ./conftest.sh
|
||||
rm -f ./conftest.sh
|
||||
acl_cv_rpath=done
|
||||
])
|
||||
wl="$acl_cv_wl"
|
||||
acl_libext="$acl_cv_libext"
|
||||
acl_shlibext="$acl_cv_shlibext"
|
||||
acl_libname_spec="$acl_cv_libname_spec"
|
||||
acl_library_names_spec="$acl_cv_library_names_spec"
|
||||
acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
|
||||
acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
|
||||
acl_hardcode_direct="$acl_cv_hardcode_direct"
|
||||
acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
|
||||
dnl Determine whether the user wants rpath handling at all.
|
||||
AC_ARG_ENABLE([rpath],
|
||||
[ --disable-rpath do not hardcode runtime library paths],
|
||||
:, enable_rpath=yes)
|
||||
])
|
||||
|
||||
dnl AC_LIB_FROMPACKAGE(name, package)
|
||||
dnl declares that libname comes from the given package. The configure file
|
||||
dnl will then not have a --with-libname-prefix option but a
|
||||
dnl --with-package-prefix option. Several libraries can come from the same
|
||||
dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
|
||||
dnl macro call that searches for libname.
|
||||
AC_DEFUN([AC_LIB_FROMPACKAGE],
|
||||
[
|
||||
pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
define([acl_frompackage_]NAME, [$2])
|
||||
popdef([NAME])
|
||||
pushdef([PACK],[$2])
|
||||
pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
define([acl_libsinpackage_]PACKUP,
|
||||
m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
|
||||
popdef([PACKUP])
|
||||
popdef([PACK])
|
||||
])
|
||||
|
||||
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
|
||||
dnl the libraries corresponding to explicit and implicit dependencies.
|
||||
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
|
||||
dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
|
||||
dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
|
||||
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
|
||||
pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
|
||||
pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
|
||||
pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
|
||||
dnl Autoconf >= 2.61 supports dots in --with options.
|
||||
pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
|
||||
dnl By default, look in $includedir and $libdir.
|
||||
use_additional=yes
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
AC_ARG_WITH(P_A_C_K[-prefix],
|
||||
[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
|
||||
--without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
|
||||
[
|
||||
if test "X$withval" = "Xno"; then
|
||||
use_additional=no
|
||||
else
|
||||
if test "X$withval" = "X"; then
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
else
|
||||
additional_includedir="$withval/include"
|
||||
additional_libdir="$withval/$acl_libdirstem"
|
||||
if test "$acl_libdirstem2" != "$acl_libdirstem" \
|
||||
&& ! test -d "$withval/$acl_libdirstem"; then
|
||||
additional_libdir="$withval/$acl_libdirstem2"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
])
|
||||
dnl Search the library and its dependencies in $additional_libdir and
|
||||
dnl $LDFLAGS. Using breadth-first-seach.
|
||||
LIB[]NAME=
|
||||
LTLIB[]NAME=
|
||||
INC[]NAME=
|
||||
LIB[]NAME[]_PREFIX=
|
||||
dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
|
||||
dnl computed. So it has to be reset here.
|
||||
HAVE_LIB[]NAME=
|
||||
rpathdirs=
|
||||
ltrpathdirs=
|
||||
names_already_handled=
|
||||
names_next_round='$1 $2'
|
||||
while test -n "$names_next_round"; do
|
||||
names_this_round="$names_next_round"
|
||||
names_next_round=
|
||||
for name in $names_this_round; do
|
||||
already_handled=
|
||||
for n in $names_already_handled; do
|
||||
if test "$n" = "$name"; then
|
||||
already_handled=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$already_handled"; then
|
||||
names_already_handled="$names_already_handled $name"
|
||||
dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
|
||||
dnl or AC_LIB_HAVE_LINKFLAGS call.
|
||||
uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
|
||||
eval value=\"\$HAVE_LIB$uppername\"
|
||||
if test -n "$value"; then
|
||||
if test "$value" = yes; then
|
||||
eval value=\"\$LIB$uppername\"
|
||||
test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
|
||||
eval value=\"\$LTLIB$uppername\"
|
||||
test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
|
||||
else
|
||||
dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
|
||||
dnl that this library doesn't exist. So just drop it.
|
||||
:
|
||||
fi
|
||||
else
|
||||
dnl Search the library lib$name in $additional_libdir and $LDFLAGS
|
||||
dnl and the already constructed $LIBNAME/$LTLIBNAME.
|
||||
found_dir=
|
||||
found_la=
|
||||
found_so=
|
||||
found_a=
|
||||
eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
|
||||
if test -n "$acl_shlibext"; then
|
||||
shrext=".$acl_shlibext" # typically: shrext=.so
|
||||
else
|
||||
shrext=
|
||||
fi
|
||||
if test $use_additional = yes; then
|
||||
dir="$additional_libdir"
|
||||
dnl The same code as in the loop below:
|
||||
dnl First look for a shared library.
|
||||
if test -n "$acl_shlibext"; then
|
||||
if test -f "$dir/$libname$shrext"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$libname$shrext"
|
||||
else
|
||||
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
|
||||
ver=`(cd "$dir" && \
|
||||
for f in "$libname$shrext".*; do echo "$f"; done \
|
||||
| sed -e "s,^$libname$shrext\\\\.,," \
|
||||
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
|
||||
| sed 1q ) 2>/dev/null`
|
||||
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$libname$shrext.$ver"
|
||||
fi
|
||||
else
|
||||
eval library_names=\"$acl_library_names_spec\"
|
||||
for f in $library_names; do
|
||||
if test -f "$dir/$f"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$f"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Then look for a static library.
|
||||
if test "X$found_dir" = "X"; then
|
||||
if test -f "$dir/$libname.$acl_libext"; then
|
||||
found_dir="$dir"
|
||||
found_a="$dir/$libname.$acl_libext"
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
if test -f "$dir/$libname.la"; then
|
||||
found_la="$dir/$libname.la"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" = "X"; then
|
||||
for x in $LDFLAGS $LTLIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
case "$x" in
|
||||
-L*)
|
||||
dir=`echo "X$x" | sed -e 's/^X-L//'`
|
||||
dnl First look for a shared library.
|
||||
if test -n "$acl_shlibext"; then
|
||||
if test -f "$dir/$libname$shrext"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$libname$shrext"
|
||||
else
|
||||
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
|
||||
ver=`(cd "$dir" && \
|
||||
for f in "$libname$shrext".*; do echo "$f"; done \
|
||||
| sed -e "s,^$libname$shrext\\\\.,," \
|
||||
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
|
||||
| sed 1q ) 2>/dev/null`
|
||||
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$libname$shrext.$ver"
|
||||
fi
|
||||
else
|
||||
eval library_names=\"$acl_library_names_spec\"
|
||||
for f in $library_names; do
|
||||
if test -f "$dir/$f"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$f"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Then look for a static library.
|
||||
if test "X$found_dir" = "X"; then
|
||||
if test -f "$dir/$libname.$acl_libext"; then
|
||||
found_dir="$dir"
|
||||
found_a="$dir/$libname.$acl_libext"
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
if test -f "$dir/$libname.la"; then
|
||||
found_la="$dir/$libname.la"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "X$found_dir" != "X"; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
dnl Found the library.
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
|
||||
if test "X$found_so" != "X"; then
|
||||
dnl Linking with a shared library. We attempt to hardcode its
|
||||
dnl directory into the executable's runpath, unless it's the
|
||||
dnl standard /usr/lib.
|
||||
if test "$enable_rpath" = no \
|
||||
|| test "X$found_dir" = "X/usr/$acl_libdirstem" \
|
||||
|| test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
|
||||
dnl No hardcoding is needed.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
dnl Use an explicit option to hardcode DIR into the resulting
|
||||
dnl binary.
|
||||
dnl Potentially add DIR to ltrpathdirs.
|
||||
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
|
||||
haveit=
|
||||
for x in $ltrpathdirs; do
|
||||
if test "X$x" = "X$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
ltrpathdirs="$ltrpathdirs $found_dir"
|
||||
fi
|
||||
dnl The hardcoding into $LIBNAME is system dependent.
|
||||
if test "$acl_hardcode_direct" = yes; then
|
||||
dnl Using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
dnl resulting binary.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
|
||||
dnl Use an explicit option to hardcode DIR into the resulting
|
||||
dnl binary.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
dnl Potentially add DIR to rpathdirs.
|
||||
dnl The rpathdirs will be appended to $LIBNAME at the end.
|
||||
haveit=
|
||||
for x in $rpathdirs; do
|
||||
if test "X$x" = "X$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
rpathdirs="$rpathdirs $found_dir"
|
||||
fi
|
||||
else
|
||||
dnl Rely on "-L$found_dir".
|
||||
dnl But don't add it if it's already contained in the LDFLAGS
|
||||
dnl or the already constructed $LIBNAME
|
||||
haveit=
|
||||
for x in $LDFLAGS $LIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
|
||||
fi
|
||||
if test "$acl_hardcode_minus_L" != no; then
|
||||
dnl FIXME: Not sure whether we should use
|
||||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
||||
dnl here.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
|
||||
dnl here, because this doesn't fit in flags passed to the
|
||||
dnl compiler. So give up. No hardcoding. This affects only
|
||||
dnl very old systems.
|
||||
dnl FIXME: Not sure whether we should use
|
||||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
||||
dnl here.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if test "X$found_a" != "X"; then
|
||||
dnl Linking with a static library.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
|
||||
else
|
||||
dnl We shouldn't come here, but anyway it's good to have a
|
||||
dnl fallback.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
|
||||
fi
|
||||
fi
|
||||
dnl Assume the include files are nearby.
|
||||
additional_includedir=
|
||||
case "$found_dir" in
|
||||
*/$acl_libdirstem | */$acl_libdirstem/)
|
||||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
|
||||
if test "$name" = '$1'; then
|
||||
LIB[]NAME[]_PREFIX="$basedir"
|
||||
fi
|
||||
additional_includedir="$basedir/include"
|
||||
;;
|
||||
*/$acl_libdirstem2 | */$acl_libdirstem2/)
|
||||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
|
||||
if test "$name" = '$1'; then
|
||||
LIB[]NAME[]_PREFIX="$basedir"
|
||||
fi
|
||||
additional_includedir="$basedir/include"
|
||||
;;
|
||||
esac
|
||||
if test "X$additional_includedir" != "X"; then
|
||||
dnl Potentially add $additional_includedir to $INCNAME.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/include,
|
||||
dnl 2. if it's /usr/local/include and we are using GCC on Linux,
|
||||
dnl 3. if it's already present in $CPPFLAGS or the already
|
||||
dnl constructed $INCNAME,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_includedir" != "X/usr/include"; then
|
||||
haveit=
|
||||
if test "X$additional_includedir" = "X/usr/local/include"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
for x in $CPPFLAGS $INC[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-I$additional_includedir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_includedir"; then
|
||||
dnl Really add $additional_includedir to $INCNAME.
|
||||
INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Look for dependencies.
|
||||
if test -n "$found_la"; then
|
||||
dnl Read the .la file. It defines the variables
|
||||
dnl dlname, library_names, old_library, dependency_libs, current,
|
||||
dnl age, revision, installed, dlopen, dlpreopen, libdir.
|
||||
save_libdir="$libdir"
|
||||
case "$found_la" in
|
||||
*/* | *\\*) . "$found_la" ;;
|
||||
*) . "./$found_la" ;;
|
||||
esac
|
||||
libdir="$save_libdir"
|
||||
dnl We use only dependency_libs.
|
||||
for dep in $dependency_libs; do
|
||||
case "$dep" in
|
||||
-L*)
|
||||
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
|
||||
dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/lib,
|
||||
dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
|
||||
dnl 3. if it's already present in $LDFLAGS or the already
|
||||
dnl constructed $LIBNAME,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
|
||||
&& test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
|
||||
haveit=
|
||||
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
|
||||
|| test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
haveit=
|
||||
for x in $LDFLAGS $LIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LIBNAME.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
haveit=
|
||||
for x in $LDFLAGS $LTLIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LTLIBNAME.
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
-R*)
|
||||
dir=`echo "X$dep" | sed -e 's/^X-R//'`
|
||||
if test "$enable_rpath" != no; then
|
||||
dnl Potentially add DIR to rpathdirs.
|
||||
dnl The rpathdirs will be appended to $LIBNAME at the end.
|
||||
haveit=
|
||||
for x in $rpathdirs; do
|
||||
if test "X$x" = "X$dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
rpathdirs="$rpathdirs $dir"
|
||||
fi
|
||||
dnl Potentially add DIR to ltrpathdirs.
|
||||
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
|
||||
haveit=
|
||||
for x in $ltrpathdirs; do
|
||||
if test "X$x" = "X$dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
ltrpathdirs="$ltrpathdirs $dir"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
-l*)
|
||||
dnl Handle this in the next round.
|
||||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
|
||||
;;
|
||||
*.la)
|
||||
dnl Handle this in the next round. Throw away the .la's
|
||||
dnl directory; it is already contained in a preceding -L
|
||||
dnl option.
|
||||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
|
||||
;;
|
||||
*)
|
||||
dnl Most likely an immediate library name.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
else
|
||||
dnl Didn't find the library; assume it is in the system directories
|
||||
dnl known to the linker and runtime loader. (All the system
|
||||
dnl directories known to the linker should also be known to the
|
||||
dnl runtime loader, otherwise the system is severely misconfigured.)
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
if test "X$rpathdirs" != "X"; then
|
||||
if test -n "$acl_hardcode_libdir_separator"; then
|
||||
dnl Weird platform: only the last -rpath option counts, the user must
|
||||
dnl pass all path elements in one option. We can arrange that for a
|
||||
dnl single library, but not when more than one $LIBNAMEs are used.
|
||||
alldirs=
|
||||
for found_dir in $rpathdirs; do
|
||||
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
|
||||
done
|
||||
dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$alldirs"
|
||||
eval flag=\"$acl_hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
||||
else
|
||||
dnl The -rpath options are cumulative.
|
||||
for found_dir in $rpathdirs; do
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$found_dir"
|
||||
eval flag=\"$acl_hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if test "X$ltrpathdirs" != "X"; then
|
||||
dnl When using libtool, the option that works for both libraries and
|
||||
dnl executables is -R. The -R options are cumulative.
|
||||
for found_dir in $ltrpathdirs; do
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
|
||||
done
|
||||
fi
|
||||
popdef([P_A_C_K])
|
||||
popdef([PACKLIBS])
|
||||
popdef([PACKUP])
|
||||
popdef([PACK])
|
||||
popdef([NAME])
|
||||
])
|
||||
|
||||
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
|
||||
dnl unless already present in VAR.
|
||||
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
|
||||
dnl contains two or three consecutive elements that belong together.
|
||||
AC_DEFUN([AC_LIB_APPENDTOVAR],
|
||||
[
|
||||
for element in [$2]; do
|
||||
haveit=
|
||||
for x in $[$1]; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X$element"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
[$1]="${[$1]}${[$1]:+ }$element"
|
||||
fi
|
||||
done
|
||||
])
|
||||
|
||||
dnl For those cases where a variable contains several -L and -l options
|
||||
dnl referring to unknown libraries and directories, this macro determines the
|
||||
dnl necessary additional linker options for the runtime path.
|
||||
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
|
||||
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
|
||||
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
|
||||
dnl otherwise linking without libtool is assumed.
|
||||
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
|
||||
$1=
|
||||
if test "$enable_rpath" != no; then
|
||||
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
|
||||
dnl Use an explicit option to hardcode directories into the resulting
|
||||
dnl binary.
|
||||
rpathdirs=
|
||||
next=
|
||||
for opt in $2; do
|
||||
if test -n "$next"; then
|
||||
dir="$next"
|
||||
dnl No need to hardcode the standard /usr/lib.
|
||||
if test "X$dir" != "X/usr/$acl_libdirstem" \
|
||||
&& test "X$dir" != "X/usr/$acl_libdirstem2"; then
|
||||
rpathdirs="$rpathdirs $dir"
|
||||
fi
|
||||
next=
|
||||
else
|
||||
case $opt in
|
||||
-L) next=yes ;;
|
||||
-L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
|
||||
dnl No need to hardcode the standard /usr/lib.
|
||||
if test "X$dir" != "X/usr/$acl_libdirstem" \
|
||||
&& test "X$dir" != "X/usr/$acl_libdirstem2"; then
|
||||
rpathdirs="$rpathdirs $dir"
|
||||
fi
|
||||
next= ;;
|
||||
*) next= ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
if test "X$rpathdirs" != "X"; then
|
||||
if test -n ""$3""; then
|
||||
dnl libtool is used for linking. Use -R options.
|
||||
for dir in $rpathdirs; do
|
||||
$1="${$1}${$1:+ }-R$dir"
|
||||
done
|
||||
else
|
||||
dnl The linker is used for linking directly.
|
||||
if test -n "$acl_hardcode_libdir_separator"; then
|
||||
dnl Weird platform: only the last -rpath option counts, the user
|
||||
dnl must pass all path elements in one option.
|
||||
alldirs=
|
||||
for dir in $rpathdirs; do
|
||||
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
|
||||
done
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$alldirs"
|
||||
eval flag=\"$acl_hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
$1="$flag"
|
||||
else
|
||||
dnl The -rpath options are cumulative.
|
||||
for dir in $rpathdirs; do
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$dir"
|
||||
eval flag=\"$acl_hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
$1="${$1}${$1:+ }$flag"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([$1])
|
||||
])
|
|
@ -1,224 +0,0 @@
|
|||
# lib-prefix.m4 serial 7 (gettext-0.18)
|
||||
dnl Copyright (C) 2001-2005, 2008-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
|
||||
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
|
||||
dnl require excessive bracketing.
|
||||
ifdef([AC_HELP_STRING],
|
||||
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
|
||||
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
|
||||
|
||||
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
|
||||
dnl to access previously installed libraries. The basic assumption is that
|
||||
dnl a user will want packages to use other packages he previously installed
|
||||
dnl with the same --prefix option.
|
||||
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
|
||||
dnl libraries, but is otherwise very convenient.
|
||||
AC_DEFUN([AC_LIB_PREFIX],
|
||||
[
|
||||
AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
dnl By default, look in $includedir and $libdir.
|
||||
use_additional=yes
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
AC_LIB_ARG_WITH([lib-prefix],
|
||||
[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
|
||||
--without-lib-prefix don't search for libraries in includedir and libdir],
|
||||
[
|
||||
if test "X$withval" = "Xno"; then
|
||||
use_additional=no
|
||||
else
|
||||
if test "X$withval" = "X"; then
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
else
|
||||
additional_includedir="$withval/include"
|
||||
additional_libdir="$withval/$acl_libdirstem"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
if test $use_additional = yes; then
|
||||
dnl Potentially add $additional_includedir to $CPPFLAGS.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/include,
|
||||
dnl 2. if it's already present in $CPPFLAGS,
|
||||
dnl 3. if it's /usr/local/include and we are using GCC on Linux,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_includedir" != "X/usr/include"; then
|
||||
haveit=
|
||||
for x in $CPPFLAGS; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-I$additional_includedir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test "X$additional_includedir" = "X/usr/local/include"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_includedir"; then
|
||||
dnl Really add $additional_includedir to $CPPFLAGS.
|
||||
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Potentially add $additional_libdir to $LDFLAGS.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/lib,
|
||||
dnl 2. if it's already present in $LDFLAGS,
|
||||
dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
|
||||
haveit=
|
||||
for x in $LDFLAGS; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LDFLAGS.
|
||||
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
|
||||
dnl acl_final_exec_prefix, containing the values to which $prefix and
|
||||
dnl $exec_prefix will expand at the end of the configure script.
|
||||
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
|
||||
[
|
||||
dnl Unfortunately, prefix and exec_prefix get only finally determined
|
||||
dnl at the end of configure.
|
||||
if test "X$prefix" = "XNONE"; then
|
||||
acl_final_prefix="$ac_default_prefix"
|
||||
else
|
||||
acl_final_prefix="$prefix"
|
||||
fi
|
||||
if test "X$exec_prefix" = "XNONE"; then
|
||||
acl_final_exec_prefix='${prefix}'
|
||||
else
|
||||
acl_final_exec_prefix="$exec_prefix"
|
||||
fi
|
||||
acl_save_prefix="$prefix"
|
||||
prefix="$acl_final_prefix"
|
||||
eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
|
||||
prefix="$acl_save_prefix"
|
||||
])
|
||||
|
||||
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
|
||||
dnl variables prefix and exec_prefix bound to the values they will have
|
||||
dnl at the end of the configure script.
|
||||
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
|
||||
[
|
||||
acl_save_prefix="$prefix"
|
||||
prefix="$acl_final_prefix"
|
||||
acl_save_exec_prefix="$exec_prefix"
|
||||
exec_prefix="$acl_final_exec_prefix"
|
||||
$1
|
||||
exec_prefix="$acl_save_exec_prefix"
|
||||
prefix="$acl_save_prefix"
|
||||
])
|
||||
|
||||
dnl AC_LIB_PREPARE_MULTILIB creates
|
||||
dnl - a variable acl_libdirstem, containing the basename of the libdir, either
|
||||
dnl "lib" or "lib64" or "lib/64",
|
||||
dnl - a variable acl_libdirstem2, as a secondary possible value for
|
||||
dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
|
||||
dnl "lib/amd64".
|
||||
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
|
||||
[
|
||||
dnl There is no formal standard regarding lib and lib64.
|
||||
dnl On glibc systems, the current practice is that on a system supporting
|
||||
dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
|
||||
dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
|
||||
dnl the compiler's default mode by looking at the compiler's library search
|
||||
dnl path. If at least one of its elements ends in /lib64 or points to a
|
||||
dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
|
||||
dnl Otherwise we use the default, namely "lib".
|
||||
dnl On Solaris systems, the current practice is that on a system supporting
|
||||
dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
|
||||
dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
|
||||
dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
acl_libdirstem=lib
|
||||
acl_libdirstem2=
|
||||
case "$host_os" in
|
||||
solaris*)
|
||||
dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
|
||||
dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
|
||||
dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
|
||||
dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
|
||||
dnl symlink is missing, so we set acl_libdirstem2 too.
|
||||
AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
|
||||
[AC_EGREP_CPP([sixtyfour bits], [
|
||||
#ifdef _LP64
|
||||
sixtyfour bits
|
||||
#endif
|
||||
], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
|
||||
])
|
||||
if test $gl_cv_solaris_64bit = yes; then
|
||||
acl_libdirstem=lib/64
|
||||
case "$host_cpu" in
|
||||
sparc*) acl_libdirstem2=lib/sparcv9 ;;
|
||||
i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
|
||||
if test -n "$searchpath"; then
|
||||
acl_save_IFS="${IFS= }"; IFS=":"
|
||||
for searchdir in $searchpath; do
|
||||
if test -d "$searchdir"; then
|
||||
case "$searchdir" in
|
||||
*/lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
|
||||
*/../ | */.. )
|
||||
# Better ignore directories of this form. They are misleading.
|
||||
;;
|
||||
*) searchdir=`cd "$searchdir" && pwd`
|
||||
case "$searchdir" in
|
||||
*/lib64 ) acl_libdirstem=lib64 ;;
|
||||
esac ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
IFS="$acl_save_IFS"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
|
||||
])
|
41
gl/m4/limits-h.m4
Normal file
41
gl/m4/limits-h.m4
Normal file
|
@ -0,0 +1,41 @@
|
|||
dnl Check whether limits.h has needed features.
|
||||
|
||||
dnl Copyright 2016-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Paul Eggert.
|
||||
|
||||
AC_DEFUN_ONCE([gl_LIMITS_H],
|
||||
[
|
||||
gl_CHECK_NEXT_HEADERS([limits.h])
|
||||
|
||||
AC_CACHE_CHECK([whether limits.h has WORD_BIT, BOOL_WIDTH etc.],
|
||||
[gl_cv_header_limits_width],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
#define __STDC_WANT_IEC_60559_BFP_EXT__ 1
|
||||
#endif
|
||||
#include <limits.h>
|
||||
long long llm = LLONG_MAX;
|
||||
int wb = WORD_BIT;
|
||||
int ullw = ULLONG_WIDTH;
|
||||
int bw = BOOL_WIDTH;
|
||||
]])],
|
||||
[gl_cv_header_limits_width=yes],
|
||||
[gl_cv_header_limits_width=no])])
|
||||
if test "$gl_cv_header_limits_width" = yes; then
|
||||
GL_GENERATE_LIMITS_H=false
|
||||
else
|
||||
GL_GENERATE_LIMITS_H=true
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Unconditionally enables the replacement of <limits.h>.
|
||||
AC_DEFUN([gl_REPLACE_LIMITS_H],
|
||||
[
|
||||
AC_REQUIRE([gl_LIMITS_H])
|
||||
GL_GENERATE_LIMITS_H=true
|
||||
])
|
|
@ -1,5 +1,5 @@
|
|||
# localcharset.m4 serial 7
|
||||
dnl Copyright (C) 2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc.
|
||||
# localcharset.m4 serial 8
|
||||
dnl Copyright (C) 2002, 2004, 2006, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -8,10 +8,4 @@ AC_DEFUN([gl_LOCALCHARSET],
|
|||
[
|
||||
dnl Prerequisites of lib/localcharset.c.
|
||||
AC_REQUIRE([AM_LANGINFO_CODESET])
|
||||
AC_REQUIRE([gl_FCNTL_O_FLAGS])
|
||||
AC_CHECK_DECLS_ONCE([getc_unlocked])
|
||||
|
||||
dnl Prerequisites of the lib/Makefile.am snippet.
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([gl_GLIBC21])
|
||||
])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# locale-fr.m4 serial 17
|
||||
dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
|
||||
# locale-fr.m4 serial 20
|
||||
dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -12,8 +12,7 @@ AC_DEFUN([gt_LOCALE_FR],
|
|||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AM_LANGINFO_CODESET])
|
||||
AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([
|
||||
changequote(,)dnl
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <time.h>
|
||||
#if HAVE_LANGINFO_CODESET
|
||||
|
@ -24,8 +23,14 @@ changequote(,)dnl
|
|||
struct tm t;
|
||||
char buf[16];
|
||||
int main () {
|
||||
/* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
|
||||
imitates locale dependent behaviour by looking at the environment
|
||||
variables, and all locales use the UTF-8 encoding. */
|
||||
#if defined __BEOS__ || defined __HAIKU__
|
||||
return 1;
|
||||
#else
|
||||
/* Check whether the given locale name is recognized by the system. */
|
||||
#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
|
||||
# if defined _WIN32 && !defined __CYGWIN__
|
||||
/* On native Windows, setlocale(category, "") looks at the system settings,
|
||||
not at the environment variables. Also, when an encoding suffix such
|
||||
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
|
||||
|
@ -33,9 +38,9 @@ int main () {
|
|||
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|
||||
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
|
||||
return 1;
|
||||
#else
|
||||
# else
|
||||
if (setlocale (LC_ALL, "") == NULL) return 1;
|
||||
#endif
|
||||
# endif
|
||||
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
|
||||
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
|
||||
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
|
||||
|
@ -44,35 +49,35 @@ int main () {
|
|||
some unit tests fail.
|
||||
On MirBSD 10, when an unsupported locale is specified, setlocale()
|
||||
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
|
||||
#if HAVE_LANGINFO_CODESET
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
{
|
||||
const char *cs = nl_langinfo (CODESET);
|
||||
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|
||||
|| strcmp (cs, "UTF-8") == 0)
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
#ifdef __CYGWIN__
|
||||
# endif
|
||||
# ifdef __CYGWIN__
|
||||
/* On Cygwin, avoid locale names without encoding suffix, because the
|
||||
locale_charset() function relies on the encoding suffix. Note that
|
||||
LC_ALL is set on the command line. */
|
||||
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
|
||||
#endif
|
||||
# endif
|
||||
/* Check whether in the abbreviation of the second month, the second
|
||||
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
|
||||
one byte long. This excludes the UTF-8 encoding. */
|
||||
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
|
||||
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
|
||||
#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
|
||||
# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
|
||||
/* Check whether the decimal separator is a comma.
|
||||
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
|
||||
are nl_langinfo(RADIXCHAR) are both ".". */
|
||||
if (localeconv () ->decimal_point[0] != ',') return 1;
|
||||
#endif
|
||||
# endif
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
changequote([,])dnl
|
||||
])])
|
||||
]])])
|
||||
if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
|
||||
case "$host_os" in
|
||||
# Handle native Windows specially, because there setlocale() interprets
|
||||
|
@ -136,8 +141,7 @@ AC_DEFUN([gt_LOCALE_FR_UTF8],
|
|||
[
|
||||
AC_REQUIRE([AM_LANGINFO_CODESET])
|
||||
AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([
|
||||
changequote(,)dnl
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <time.h>
|
||||
#if HAVE_LANGINFO_CODESET
|
||||
|
@ -153,7 +157,7 @@ int main () {
|
|||
variables, and all locales use the UTF-8 encoding. */
|
||||
#if !(defined __BEOS__ || defined __HAIKU__)
|
||||
/* Check whether the given locale name is recognized by the system. */
|
||||
# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
|
||||
# if defined _WIN32 && !defined __CYGWIN__
|
||||
/* On native Windows, setlocale(category, "") looks at the system settings,
|
||||
not at the environment variables. Also, when an encoding suffix such
|
||||
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
|
||||
|
@ -199,8 +203,7 @@ int main () {
|
|||
#endif
|
||||
return 0;
|
||||
}
|
||||
changequote([,])dnl
|
||||
])])
|
||||
]])])
|
||||
if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
|
||||
case "$host_os" in
|
||||
# Handle native Windows specially, because there setlocale() interprets
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# locale-ja.m4 serial 12
|
||||
dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
|
||||
# locale-ja.m4 serial 15
|
||||
dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -12,8 +12,7 @@ AC_DEFUN([gt_LOCALE_JA],
|
|||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AM_LANGINFO_CODESET])
|
||||
AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([
|
||||
changequote(,)dnl
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <time.h>
|
||||
#if HAVE_LANGINFO_CODESET
|
||||
|
@ -25,9 +24,14 @@ struct tm t;
|
|||
char buf[16];
|
||||
int main ()
|
||||
{
|
||||
const char *p;
|
||||
/* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
|
||||
imitates locale dependent behaviour by looking at the environment
|
||||
variables, and all locales use the UTF-8 encoding. */
|
||||
#if defined __BEOS__ || defined __HAIKU__
|
||||
return 1;
|
||||
#else
|
||||
/* Check whether the given locale name is recognized by the system. */
|
||||
#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
|
||||
# if defined _WIN32 && !defined __CYGWIN__
|
||||
/* On native Windows, setlocale(category, "") looks at the system settings,
|
||||
not at the environment variables. Also, when an encoding suffix such
|
||||
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
|
||||
|
@ -35,9 +39,9 @@ int main ()
|
|||
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|
||||
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
|
||||
return 1;
|
||||
#else
|
||||
# else
|
||||
if (setlocale (LC_ALL, "") == NULL) return 1;
|
||||
#endif
|
||||
# endif
|
||||
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
|
||||
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
|
||||
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
|
||||
|
@ -46,35 +50,38 @@ int main ()
|
|||
some unit tests fail.
|
||||
On MirBSD 10, when an unsupported locale is specified, setlocale()
|
||||
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
|
||||
#if HAVE_LANGINFO_CODESET
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
{
|
||||
const char *cs = nl_langinfo (CODESET);
|
||||
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|
||||
|| strcmp (cs, "UTF-8") == 0)
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
#ifdef __CYGWIN__
|
||||
# endif
|
||||
# ifdef __CYGWIN__
|
||||
/* On Cygwin, avoid locale names without encoding suffix, because the
|
||||
locale_charset() function relies on the encoding suffix. Note that
|
||||
LC_ALL is set on the command line. */
|
||||
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
|
||||
#endif
|
||||
# endif
|
||||
/* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales
|
||||
on Cygwin 1.5.x. */
|
||||
if (MB_CUR_MAX == 1)
|
||||
return 1;
|
||||
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
|
||||
This excludes the UTF-8 encoding (except on MirBSD). */
|
||||
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
|
||||
if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
|
||||
for (p = buf; *p != '\0'; p++)
|
||||
if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
|
||||
return 1;
|
||||
{
|
||||
const char *p;
|
||||
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
|
||||
if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
|
||||
for (p = buf; *p != '\0'; p++)
|
||||
if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
changequote([,])dnl
|
||||
])])
|
||||
]])])
|
||||
if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
|
||||
case "$host_os" in
|
||||
# Handle native Windows specially, because there setlocale() interprets
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# locale-zh.m4 serial 12
|
||||
dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
|
||||
# locale-zh.m4 serial 15
|
||||
dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -12,8 +12,7 @@ AC_DEFUN([gt_LOCALE_ZH_CN],
|
|||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AM_LANGINFO_CODESET])
|
||||
AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([
|
||||
changequote(,)dnl
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
@ -26,9 +25,14 @@ struct tm t;
|
|||
char buf[16];
|
||||
int main ()
|
||||
{
|
||||
const char *p;
|
||||
/* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
|
||||
imitates locale dependent behaviour by looking at the environment
|
||||
variables, and all locales use the UTF-8 encoding. */
|
||||
#if defined __BEOS__ || defined __HAIKU__
|
||||
return 1;
|
||||
#else
|
||||
/* Check whether the given locale name is recognized by the system. */
|
||||
#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
|
||||
# if defined _WIN32 && !defined __CYGWIN__
|
||||
/* On native Windows, setlocale(category, "") looks at the system settings,
|
||||
not at the environment variables. Also, when an encoding suffix such
|
||||
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
|
||||
|
@ -36,9 +40,9 @@ int main ()
|
|||
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|
||||
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
|
||||
return 1;
|
||||
#else
|
||||
# else
|
||||
if (setlocale (LC_ALL, "") == NULL) return 1;
|
||||
#endif
|
||||
# endif
|
||||
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
|
||||
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
|
||||
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
|
||||
|
@ -47,35 +51,38 @@ int main ()
|
|||
some unit tests fail.
|
||||
On MirBSD 10, when an unsupported locale is specified, setlocale()
|
||||
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
|
||||
#if HAVE_LANGINFO_CODESET
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
{
|
||||
const char *cs = nl_langinfo (CODESET);
|
||||
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|
||||
|| strcmp (cs, "UTF-8") == 0)
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
#ifdef __CYGWIN__
|
||||
# endif
|
||||
# ifdef __CYGWIN__
|
||||
/* On Cygwin, avoid locale names without encoding suffix, because the
|
||||
locale_charset() function relies on the encoding suffix. Note that
|
||||
LC_ALL is set on the command line. */
|
||||
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
|
||||
#endif
|
||||
# endif
|
||||
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
|
||||
This excludes the UTF-8 encoding (except on MirBSD). */
|
||||
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
|
||||
if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
|
||||
for (p = buf; *p != '\0'; p++)
|
||||
if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
|
||||
return 1;
|
||||
{
|
||||
const char *p;
|
||||
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
|
||||
if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
|
||||
for (p = buf; *p != '\0'; p++)
|
||||
if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
|
||||
return 1;
|
||||
}
|
||||
/* Check whether a typical GB18030 multibyte sequence is recognized as a
|
||||
single wide character. This excludes the GB2312 and GBK encodings. */
|
||||
if (mblen ("\203\062\332\066", 5) != 4)
|
||||
return 1;
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
changequote([,])dnl
|
||||
])])
|
||||
]])])
|
||||
if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
|
||||
case "$host_os" in
|
||||
# Handle native Windows specially, because there setlocale() interprets
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# locale_h.m4 serial 19
|
||||
dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
|
||||
# locale_h.m4 serial 28
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_LOCALE_H],
|
||||
AC_DEFUN_ONCE([gl_LOCALE_H],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default behavior below is expanded
|
||||
dnl once only, before all statements that occur in other macros.
|
||||
dnl Ensure to expand the default settings once only, before all statements
|
||||
dnl that occur in other macros.
|
||||
AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
|
||||
|
||||
dnl Persuade glibc <locale.h> to define locale_t and the int_p_*, int_n_*
|
||||
|
@ -17,7 +17,9 @@ AC_DEFUN([gl_LOCALE_H],
|
|||
dnl If <stddef.h> is replaced, then <locale.h> must also be replaced.
|
||||
AC_REQUIRE([gl_STDDEF_H])
|
||||
|
||||
dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv'
|
||||
AC_REQUIRE([gl_LOCALE_T])
|
||||
|
||||
dnl Solaris 11.0 defines the int_p_*, int_n_* members of 'struct lconv'
|
||||
dnl only if _LCONV_C99 is defined.
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
case "$host_os" in
|
||||
|
@ -37,34 +39,6 @@ AC_DEFUN([gl_LOCALE_H],
|
|||
[gl_cv_header_locale_h_posix2001=yes],
|
||||
[gl_cv_header_locale_h_posix2001=no])])
|
||||
|
||||
dnl Check for <xlocale.h>.
|
||||
AC_CHECK_HEADERS_ONCE([xlocale.h])
|
||||
if test $ac_cv_header_xlocale_h = yes; then
|
||||
HAVE_XLOCALE_H=1
|
||||
dnl Check whether use of locale_t requires inclusion of <xlocale.h>,
|
||||
dnl e.g. on Mac OS X 10.5. If <locale.h> does not define locale_t by
|
||||
dnl itself, we assume that <xlocale.h> will do so.
|
||||
AC_CACHE_CHECK([whether locale.h defines locale_t],
|
||||
[gl_cv_header_locale_has_locale_t],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <locale.h>
|
||||
locale_t x;]],
|
||||
[[]])],
|
||||
[gl_cv_header_locale_has_locale_t=yes],
|
||||
[gl_cv_header_locale_has_locale_t=no])
|
||||
])
|
||||
if test $gl_cv_header_locale_has_locale_t = yes; then
|
||||
gl_cv_header_locale_h_needs_xlocale_h=no
|
||||
else
|
||||
gl_cv_header_locale_h_needs_xlocale_h=yes
|
||||
fi
|
||||
else
|
||||
HAVE_XLOCALE_H=0
|
||||
gl_cv_header_locale_h_needs_xlocale_h=no
|
||||
fi
|
||||
AC_SUBST([HAVE_XLOCALE_H])
|
||||
|
||||
dnl Check whether 'struct lconv' is complete.
|
||||
dnl Bionic libc's 'struct lconv' is just a dummy.
|
||||
dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x,
|
||||
|
@ -82,7 +56,20 @@ AC_DEFUN([gl_LOCALE_H],
|
|||
[gl_cv_sys_struct_lconv_ok=no])
|
||||
])
|
||||
if test $gl_cv_sys_struct_lconv_ok = no; then
|
||||
REPLACE_STRUCT_LCONV=1
|
||||
dnl On native Windows with MSVC, merely define these member names as macros.
|
||||
dnl This avoids trouble in C++ mode.
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
AC_EGREP_CPP([Special], [
|
||||
#ifdef _MSC_VER
|
||||
Special
|
||||
#endif
|
||||
],
|
||||
[],
|
||||
[REPLACE_STRUCT_LCONV=1])
|
||||
;;
|
||||
*) REPLACE_STRUCT_LCONV=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK.
|
||||
|
@ -96,27 +83,92 @@ AC_DEFUN([gl_LOCALE_H],
|
|||
# include <xlocale.h>
|
||||
#endif
|
||||
]],
|
||||
[setlocale duplocale])
|
||||
[setlocale newlocale duplocale freelocale])
|
||||
])
|
||||
|
||||
dnl Checks to determine whether the system has the locale_t type,
|
||||
dnl and how to obtain it.
|
||||
AC_DEFUN([gl_LOCALE_T],
|
||||
[
|
||||
dnl Persuade glibc and Solaris <locale.h> to define locale_t.
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
|
||||
dnl Check whether use of locale_t requires inclusion of <xlocale.h>,
|
||||
dnl e.g. on Mac OS X 10.5. If <locale.h> does not define locale_t by
|
||||
dnl itself, we assume that <xlocale.h> will do so.
|
||||
AC_CACHE_CHECK([whether locale.h defines locale_t],
|
||||
[gl_cv_header_locale_has_locale_t],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <locale.h>
|
||||
locale_t x;]],
|
||||
[[]])],
|
||||
[gl_cv_header_locale_has_locale_t=yes],
|
||||
[gl_cv_header_locale_has_locale_t=no])
|
||||
])
|
||||
|
||||
dnl Check for <xlocale.h>.
|
||||
AC_CHECK_HEADERS_ONCE([xlocale.h])
|
||||
if test $ac_cv_header_xlocale_h = yes; then
|
||||
HAVE_XLOCALE_H=1
|
||||
if test $gl_cv_header_locale_has_locale_t = yes; then
|
||||
gl_cv_header_locale_h_needs_xlocale_h=no
|
||||
else
|
||||
gl_cv_header_locale_h_needs_xlocale_h=yes
|
||||
fi
|
||||
HAVE_LOCALE_T=1
|
||||
else
|
||||
HAVE_XLOCALE_H=0
|
||||
gl_cv_header_locale_h_needs_xlocale_h=no
|
||||
if test $gl_cv_header_locale_has_locale_t = yes; then
|
||||
HAVE_LOCALE_T=1
|
||||
else
|
||||
HAVE_LOCALE_T=0
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([HAVE_XLOCALE_H])
|
||||
])
|
||||
|
||||
# gl_LOCALE_MODULE_INDICATOR([modulename])
|
||||
# sets the shell variable that indicates the presence of the given module
|
||||
# to a C preprocessor expression that will evaluate to 1.
|
||||
# This macro invocation must not occur in macros that are AC_REQUIREd.
|
||||
AC_DEFUN([gl_LOCALE_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
|
||||
AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
|
||||
dnl Ensure to expand the default settings once only.
|
||||
gl_LOCALE_H_REQUIRE_DEFAULTS
|
||||
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
||||
dnl Define it also as a C macro, for the benefit of the unit tests.
|
||||
gl_MODULE_INDICATOR_FOR_TESTS([$1])
|
||||
])
|
||||
|
||||
# Initializes the default values for AC_SUBSTed shell variables.
|
||||
# This macro must not be AC_REQUIREd. It must only be invoked, and only
|
||||
# outside of macros or in macros that are not AC_REQUIREd.
|
||||
AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALECONV])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE_NULL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUPLOCALE])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALENAME])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_LOCALE_H_DEFAULTS],
|
||||
[
|
||||
GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV])
|
||||
GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE])
|
||||
GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE])
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE])
|
||||
HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE])
|
||||
HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE])
|
||||
REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV])
|
||||
REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE])
|
||||
REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE])
|
||||
REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE])
|
||||
REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE])
|
||||
REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV])
|
||||
LOCALENAME_ENHANCE_LOCALE_FUNCS=0; AC_SUBST([LOCALENAME_ENHANCE_LOCALE_FUNCS])
|
||||
])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# localeconv.m4 serial 1
|
||||
dnl Copyright (C) 2012-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2012-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# lock.m4 serial 13 (gettext-0.18.2)
|
||||
dnl Copyright (C) 2005-2013 Free Software Foundation, Inc.
|
||||
# lock.m4 serial 14
|
||||
dnl Copyright (C) 2005-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -12,11 +12,16 @@ AC_DEFUN([gl_LOCK],
|
|||
if test "$gl_threads_api" = posix; then
|
||||
# OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
|
||||
# pthread_rwlock_* functions.
|
||||
has_rwlock=false
|
||||
AC_CHECK_TYPE([pthread_rwlock_t],
|
||||
[AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
|
||||
[has_rwlock=true
|
||||
AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
|
||||
[Define if the POSIX multithreading library has read/write locks.])],
|
||||
[],
|
||||
[#include <pthread.h>])
|
||||
if $has_rwlock; then
|
||||
gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER
|
||||
fi
|
||||
# glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM(
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
# longlong.m4 serial 17
|
||||
dnl Copyright (C) 1999-2007, 2009-2013 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Paul Eggert.
|
||||
|
||||
# Define HAVE_LONG_LONG_INT if 'long long int' works.
|
||||
# This fixes a bug in Autoconf 2.61, and can be faster
|
||||
# than what's in Autoconf 2.62 through 2.68.
|
||||
|
||||
# Note: If the type 'long long int' exists but is only 32 bits large
|
||||
# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
|
||||
# defined. In this case you can treat 'long long int' like 'long int'.
|
||||
|
||||
AC_DEFUN([AC_TYPE_LONG_LONG_INT],
|
||||
[
|
||||
AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
|
||||
AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
|
||||
[ac_cv_type_long_long_int=yes
|
||||
if test "x${ac_cv_prog_cc_c99-no}" = xno; then
|
||||
ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
|
||||
if test $ac_cv_type_long_long_int = yes; then
|
||||
dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
|
||||
dnl If cross compiling, assume the bug is not important, since
|
||||
dnl nobody cross compiles for this platform as far as we know.
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[@%:@include <limits.h>
|
||||
@%:@ifndef LLONG_MAX
|
||||
@%:@ define HALF \
|
||||
(1LL << (sizeof (long long int) * CHAR_BIT - 2))
|
||||
@%:@ define LLONG_MAX (HALF - 1 + HALF)
|
||||
@%:@endif]],
|
||||
[[long long int n = 1;
|
||||
int i;
|
||||
for (i = 0; ; i++)
|
||||
{
|
||||
long long int m = n << i;
|
||||
if (m >> i != n)
|
||||
return 1;
|
||||
if (LLONG_MAX / 2 < m)
|
||||
break;
|
||||
}
|
||||
return 0;]])],
|
||||
[],
|
||||
[ac_cv_type_long_long_int=no],
|
||||
[:])
|
||||
fi
|
||||
fi])
|
||||
if test $ac_cv_type_long_long_int = yes; then
|
||||
AC_DEFINE([HAVE_LONG_LONG_INT], [1],
|
||||
[Define to 1 if the system has the type 'long long int'.])
|
||||
fi
|
||||
])
|
||||
|
||||
# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
|
||||
# This fixes a bug in Autoconf 2.61, and can be faster
|
||||
# than what's in Autoconf 2.62 through 2.68.
|
||||
|
||||
# Note: If the type 'unsigned long long int' exists but is only 32 bits
|
||||
# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
|
||||
# will not be defined. In this case you can treat 'unsigned long long int'
|
||||
# like 'unsigned long int'.
|
||||
|
||||
AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
|
||||
[
|
||||
AC_CACHE_CHECK([for unsigned long long int],
|
||||
[ac_cv_type_unsigned_long_long_int],
|
||||
[ac_cv_type_unsigned_long_long_int=yes
|
||||
if test "x${ac_cv_prog_cc_c99-no}" = xno; then
|
||||
AC_LINK_IFELSE(
|
||||
[_AC_TYPE_LONG_LONG_SNIPPET],
|
||||
[],
|
||||
[ac_cv_type_unsigned_long_long_int=no])
|
||||
fi])
|
||||
if test $ac_cv_type_unsigned_long_long_int = yes; then
|
||||
AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
|
||||
[Define to 1 if the system has the type 'unsigned long long int'.])
|
||||
fi
|
||||
])
|
||||
|
||||
# Expands to a C program that can be used to test for simultaneous support
|
||||
# of 'long long' and 'unsigned long long'. We don't want to say that
|
||||
# 'long long' is available if 'unsigned long long' is not, or vice versa,
|
||||
# because too many programs rely on the symmetry between signed and unsigned
|
||||
# integer types (excluding 'bool').
|
||||
AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[[/* For now, do not test the preprocessor; as of 2007 there are too many
|
||||
implementations with broken preprocessors. Perhaps this can
|
||||
be revisited in 2012. In the meantime, code should not expect
|
||||
#if to work with literals wider than 32 bits. */
|
||||
/* Test literals. */
|
||||
long long int ll = 9223372036854775807ll;
|
||||
long long int nll = -9223372036854775807LL;
|
||||
unsigned long long int ull = 18446744073709551615ULL;
|
||||
/* Test constant expressions. */
|
||||
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
|
||||
? 1 : -1)];
|
||||
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
|
||||
? 1 : -1)];
|
||||
int i = 63;]],
|
||||
[[/* Test availability of runtime routines for shift and division. */
|
||||
long long int llmax = 9223372036854775807ll;
|
||||
unsigned long long int ullmax = 18446744073709551615ull;
|
||||
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
|
||||
| (llmax / ll) | (llmax % ll)
|
||||
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
|
||||
| (ullmax / ull) | (ullmax % ull));]])
|
||||
])
|
|
@ -1,357 +0,0 @@
|
|||
# serial 30
|
||||
# How to list mounted file systems.
|
||||
|
||||
# Copyright (C) 1998-2004, 2006, 2009-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Jim Meyering.
|
||||
dnl
|
||||
dnl This is not pretty. I've just taken the autoconf code and wrapped
|
||||
dnl it in an AC_DEFUN and made some other fixes.
|
||||
dnl
|
||||
|
||||
# Replace Autoconf's AC_FUNC_GETMNTENT to work around a bug in Autoconf
|
||||
# through Autoconf 2.59. We can remove this once we assume Autoconf 2.60
|
||||
# or later.
|
||||
AC_DEFUN([AC_FUNC_GETMNTENT],
|
||||
[# getmntent is in the standard C library on UNICOS, in -lsun on Irix 4,
|
||||
# -lseq on Dynix/PTX, -lgen on Unixware.
|
||||
AC_SEARCH_LIBS([getmntent], [sun seq gen])
|
||||
AC_CHECK_FUNCS([getmntent])
|
||||
])
|
||||
|
||||
# gl_LIST_MOUNTED_FILE_SYSTEMS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||
AC_DEFUN([gl_LIST_MOUNTED_FILE_SYSTEMS],
|
||||
[
|
||||
AC_CHECK_FUNCS([listmntent getmntinfo])
|
||||
AC_CHECK_HEADERS_ONCE([sys/param.h sys/statvfs.h])
|
||||
|
||||
# We must include grp.h before ucred.h on OSF V4.0, since ucred.h uses
|
||||
# NGROUPS (as the array dimension for a struct member) without a definition.
|
||||
AC_CHECK_HEADERS([sys/ucred.h], [], [], [#include <grp.h>])
|
||||
|
||||
AC_CHECK_HEADERS([sys/mount.h], [], [],
|
||||
[AC_INCLUDES_DEFAULT
|
||||
[#if HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif]])
|
||||
|
||||
AC_CHECK_HEADERS([mntent.h sys/fs_types.h])
|
||||
getfsstat_includes="\
|
||||
$ac_includes_default
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
#endif
|
||||
#if HAVE_SYS_UCRED_H
|
||||
# include <grp.h> /* needed for definition of NGROUPS */
|
||||
# include <sys/ucred.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
#endif
|
||||
#if HAVE_SYS_MOUNT_H
|
||||
# include <sys/mount.h>
|
||||
#endif
|
||||
#if HAVE_SYS_FS_TYPES_H
|
||||
# include <sys/fs_types.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
#endif
|
||||
"
|
||||
AC_CHECK_MEMBERS([struct fsstat.f_fstypename],,,[$getfsstat_includes])
|
||||
|
||||
# Determine how to get the list of mounted file systems.
|
||||
ac_list_mounted_fs=
|
||||
|
||||
# If the getmntent function is available but not in the standard library,
|
||||
# make sure LIBS contains the appropriate -l option.
|
||||
AC_FUNC_GETMNTENT
|
||||
|
||||
# This test must precede the ones for getmntent because Unicos-9 is
|
||||
# reported to have the getmntent function, but its support is incompatible
|
||||
# with other getmntent implementations.
|
||||
|
||||
# NOTE: Normally, I wouldn't use a check for system type as I've done for
|
||||
# 'CRAY' below since that goes against the whole autoconf philosophy. But
|
||||
# I think there is too great a chance that some non-Cray system has a
|
||||
# function named listmntent to risk the false positive.
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Cray UNICOS 9
|
||||
AC_MSG_CHECKING([for listmntent of Cray/Unicos-9])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_cray_listmntent],
|
||||
[fu_cv_sys_mounted_cray_listmntent=no
|
||||
AC_EGREP_CPP([yes],
|
||||
[#ifdef _CRAY
|
||||
yes
|
||||
#endif
|
||||
], [test $ac_cv_func_listmntent = yes \
|
||||
&& fu_cv_sys_mounted_cray_listmntent=yes]
|
||||
)
|
||||
]
|
||||
)
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_cray_listmntent])
|
||||
if test $fu_cv_sys_mounted_cray_listmntent = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_LISTMNTENT], [1],
|
||||
[Define if there is a function named listmntent that can be used to
|
||||
list all mounted file systems. (UNICOS)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# AIX.
|
||||
AC_MSG_CHECKING([for mntctl function and struct vmount])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_vmount],
|
||||
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <fshelp.h>]])],
|
||||
[fu_cv_sys_mounted_vmount=yes],
|
||||
[fu_cv_sys_mounted_vmount=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_vmount])
|
||||
if test $fu_cv_sys_mounted_vmount = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_VMOUNT], [1],
|
||||
[Define if there is a function named mntctl that can be used to read
|
||||
the list of mounted file systems, and there is a system header file
|
||||
that declares 'struct vmount'. (AIX)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_cv_func_getmntent = yes; then
|
||||
|
||||
# This system has the getmntent function.
|
||||
# Determine whether it's the one-argument variant or the two-argument one.
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# 4.3BSD, SunOS, HP-UX, Dynix, Irix
|
||||
AC_MSG_CHECKING([for one-argument getmntent function])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_getmntent1],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
/* SunOS 4.1.x /usr/include/mntent.h needs this for FILE */
|
||||
#include <stdio.h>
|
||||
|
||||
#include <mntent.h>
|
||||
#if !defined MOUNTED
|
||||
# if defined _PATH_MOUNTED /* GNU libc */
|
||||
# define MOUNTED _PATH_MOUNTED
|
||||
# endif
|
||||
# if defined MNT_MNTTAB /* HP-UX. */
|
||||
# define MOUNTED MNT_MNTTAB
|
||||
# endif
|
||||
# if defined MNTTABNAME /* Dynix. */
|
||||
# define MOUNTED MNTTABNAME
|
||||
# endif
|
||||
#endif
|
||||
]],
|
||||
[[ struct mntent *mnt = 0; char *table = MOUNTED;
|
||||
if (sizeof mnt && sizeof table) return 0;]])],
|
||||
[fu_cv_sys_mounted_getmntent1=yes],
|
||||
[fu_cv_sys_mounted_getmntent1=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_getmntent1])
|
||||
if test $fu_cv_sys_mounted_getmntent1 = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTENT1], [1],
|
||||
[Define if there is a function named getmntent for reading the list
|
||||
of mounted file systems, and that function takes a single argument.
|
||||
(4.3BSD, SunOS, HP-UX, Dynix, Irix)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# SVR4
|
||||
AC_MSG_CHECKING([for two-argument getmntent function])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_getmntent2],
|
||||
[AC_EGREP_HEADER([getmntent], [sys/mnttab.h],
|
||||
fu_cv_sys_mounted_getmntent2=yes,
|
||||
fu_cv_sys_mounted_getmntent2=no)])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_getmntent2])
|
||||
if test $fu_cv_sys_mounted_getmntent2 = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTENT2], [1],
|
||||
[Define if there is a function named getmntent for reading the list of
|
||||
mounted file systems, and that function takes two arguments. (SVR4)])
|
||||
AC_CHECK_FUNCS([hasmntopt])
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# DEC Alpha running OSF/1, and Apple Darwin 1.3.
|
||||
# powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h
|
||||
|
||||
AC_MSG_CHECKING([for getfsstat function])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_getfsstat],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <sys/types.h>
|
||||
#if HAVE_STRUCT_FSSTAT_F_FSTYPENAME
|
||||
# define FS_TYPE(Ent) ((Ent).f_fstypename)
|
||||
#else
|
||||
# define FS_TYPE(Ent) mnt_names[(Ent).f_type]
|
||||
#endif
|
||||
$getfsstat_includes]]
|
||||
,
|
||||
[[struct statfs *stats;
|
||||
int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT);
|
||||
char *t = FS_TYPE (*stats); ]])],
|
||||
[fu_cv_sys_mounted_getfsstat=yes],
|
||||
[fu_cv_sys_mounted_getfsstat=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_getfsstat])
|
||||
if test $fu_cv_sys_mounted_getfsstat = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETFSSTAT], [1],
|
||||
[Define if there is a function named getfsstat for reading the
|
||||
list of mounted file systems. (DEC Alpha running OSF/1)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# SVR3
|
||||
AC_MSG_CHECKING([for FIXME existence of three headers])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_fread_fstyp],
|
||||
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/statfs.h>
|
||||
#include <sys/fstyp.h>
|
||||
#include <mnttab.h>]])],
|
||||
[fu_cv_sys_mounted_fread_fstyp=yes],
|
||||
[fu_cv_sys_mounted_fread_fstyp=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_fread_fstyp])
|
||||
if test $fu_cv_sys_mounted_fread_fstyp = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_FREAD_FSTYP], [1],
|
||||
[Define if (like SVR2) there is no specific function for reading the
|
||||
list of mounted file systems, and your system has these header files:
|
||||
<sys/fstyp.h> and <sys/statfs.h>. (SVR3)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# 4.4BSD and DEC OSF/1.
|
||||
AC_MSG_CHECKING([for getmntinfo function])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_getmntinfo],
|
||||
[
|
||||
test "$ac_cv_func_getmntinfo" = yes \
|
||||
&& fu_cv_sys_mounted_getmntinfo=yes \
|
||||
|| fu_cv_sys_mounted_getmntinfo=no
|
||||
])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_getmntinfo])
|
||||
if test $fu_cv_sys_mounted_getmntinfo = yes; then
|
||||
AC_MSG_CHECKING([whether getmntinfo returns statvfs structures])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_getmntinfo2],
|
||||
[
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#if HAVE_SYS_MOUNT_H
|
||||
# include <sys/mount.h>
|
||||
#endif
|
||||
#if HAVE_SYS_STATVFS_H
|
||||
# include <sys/statvfs.h>
|
||||
#endif
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
int getmntinfo (struct statfs **, int);
|
||||
]], [])],
|
||||
[fu_cv_sys_mounted_getmntinfo2=no],
|
||||
[fu_cv_sys_mounted_getmntinfo2=yes])
|
||||
])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_getmntinfo2])
|
||||
if test $fu_cv_sys_mounted_getmntinfo2 = no; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTINFO], [1],
|
||||
[Define if there is a function named getmntinfo for reading the
|
||||
list of mounted file systems and it returns an array of
|
||||
'struct statfs'. (4.4BSD, Darwin)])
|
||||
else
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTINFO2], [1],
|
||||
[Define if there is a function named getmntinfo for reading the
|
||||
list of mounted file systems and it returns an array of
|
||||
'struct statvfs'. (NetBSD 3.0)])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Ultrix
|
||||
AC_MSG_CHECKING([for getmnt function])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_getmnt],
|
||||
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/fs_types.h>
|
||||
#include <sys/mount.h>]])],
|
||||
[fu_cv_sys_mounted_getmnt=yes],
|
||||
[fu_cv_sys_mounted_getmnt=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_getmnt])
|
||||
if test $fu_cv_sys_mounted_getmnt = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNT], [1],
|
||||
[Define if there is a function named getmnt for reading the list of
|
||||
mounted file systems. (Ultrix)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# BeOS
|
||||
AC_CHECK_FUNCS([next_dev fs_stat_dev])
|
||||
AC_CHECK_HEADERS([fs_info.h])
|
||||
AC_MSG_CHECKING([for BEOS mounted file system support functions])
|
||||
if test $ac_cv_header_fs_info_h = yes \
|
||||
&& test $ac_cv_func_next_dev = yes \
|
||||
&& test $ac_cv_func_fs_stat_dev = yes; then
|
||||
fu_result=yes
|
||||
else
|
||||
fu_result=no
|
||||
fi
|
||||
AC_MSG_RESULT([$fu_result])
|
||||
if test $fu_result = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_FS_STAT_DEV], [1],
|
||||
[Define if there are functions named next_dev and fs_stat_dev for
|
||||
reading the list of mounted file systems. (BeOS)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# SVR2
|
||||
AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab])
|
||||
AC_CACHE_VAL([fu_cv_sys_mounted_fread],
|
||||
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <mnttab.h>]])],
|
||||
[fu_cv_sys_mounted_fread=yes],
|
||||
[fu_cv_sys_mounted_fread=no])])
|
||||
AC_MSG_RESULT([$fu_cv_sys_mounted_fread])
|
||||
if test $fu_cv_sys_mounted_fread = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_FREAD], [1],
|
||||
[Define if there is no specific function for reading the list of
|
||||
mounted file systems. fread will be used to read /etc/mnttab.
|
||||
(SVR2) ])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Interix / BSD alike statvfs
|
||||
# the code is really interix specific, so make sure, we're on it.
|
||||
case "$host" in
|
||||
*-interix*)
|
||||
AC_CHECK_FUNCS([statvfs])
|
||||
if test $ac_cv_func_statvfs = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_INTERIX_STATVFS], [1],
|
||||
[Define if we are on interix, and ought to use statvfs plus
|
||||
some special knowledge on where mounted file systems can be
|
||||
found. (Interix)])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
AC_MSG_ERROR([could not determine how to read list of mounted file systems])
|
||||
# FIXME -- no need to abort building the whole package
|
||||
# Can't build mountlist.c or anything that needs its functions
|
||||
fi
|
||||
|
||||
AS_IF([test $ac_list_mounted_fs = found], [$1], [$2])
|
||||
|
||||
])
|
78
gl/m4/lseek.m4
Normal file
78
gl/m4/lseek.m4
Normal file
|
@ -0,0 +1,78 @@
|
|||
# lseek.m4 serial 12
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_FUNC_LSEEK],
|
||||
[
|
||||
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
|
||||
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h])
|
||||
AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe],
|
||||
[case "$host_os" in
|
||||
mingw*)
|
||||
dnl Native Windows.
|
||||
dnl The result of lseek (fd, (off_t)0, SEEK_CUR) or
|
||||
dnl SetFilePointer(handle, 0, NULL, FILE_CURRENT)
|
||||
dnl for a pipe depends on the environment: In a Cygwin 1.5
|
||||
dnl environment it succeeds (wrong); in a Cygwin 1.7 environment
|
||||
dnl it fails with a wrong errno value.
|
||||
gl_cv_func_lseek_pipe=no
|
||||
;;
|
||||
*)
|
||||
if test $cross_compiling = no; then
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <sys/types.h> /* for off_t */
|
||||
#include <stdio.h> /* for SEEK_CUR */
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#else /* on Windows with MSVC */
|
||||
# include <io.h>
|
||||
#endif
|
||||
]GL_MDA_DEFINES],
|
||||
[[
|
||||
/* Exit with success only if stdin is seekable. */
|
||||
return lseek (0, (off_t)0, SEEK_CUR) < 0;
|
||||
]])],
|
||||
[if test -s conftest$ac_exeext \
|
||||
&& ./conftest$ac_exeext < conftest.$ac_ext \
|
||||
&& test 1 = "`echo hi \
|
||||
| { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then
|
||||
gl_cv_func_lseek_pipe=yes
|
||||
else
|
||||
gl_cv_func_lseek_pipe=no
|
||||
fi
|
||||
],
|
||||
[gl_cv_func_lseek_pipe=no])
|
||||
else
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#if defined __BEOS__
|
||||
/* BeOS mistakenly return 0 when trying to seek on pipes. */
|
||||
Choke me.
|
||||
#endif]])],
|
||||
[gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
])
|
||||
if test "$gl_cv_func_lseek_pipe" = no; then
|
||||
REPLACE_LSEEK=1
|
||||
AC_DEFINE([LSEEK_PIPE_BROKEN], [1],
|
||||
[Define to 1 if lseek does not detect pipes.])
|
||||
fi
|
||||
|
||||
AC_REQUIRE([gl_SYS_TYPES_H])
|
||||
if test $WINDOWS_64_BIT_OFF_T = 1; then
|
||||
REPLACE_LSEEK=1
|
||||
fi
|
||||
|
||||
dnl macOS SEEK_DATA is incompatible with other platforms.
|
||||
case $host_os in
|
||||
darwin*)
|
||||
REPLACE_LSEEK=1;;
|
||||
esac
|
||||
])
|
173
gl/m4/malloc.m4
173
gl/m4/malloc.m4
|
@ -1,98 +1,175 @@
|
|||
# malloc.m4 serial 14
|
||||
dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
|
||||
# malloc.m4 serial 28
|
||||
dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
m4_version_prereq([2.70], [] ,[
|
||||
|
||||
# This is taken from the following Autoconf patch:
|
||||
# http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9
|
||||
# This is adapted with modifications from upstream Autoconf here:
|
||||
# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949
|
||||
AC_DEFUN([_AC_FUNC_MALLOC_IF],
|
||||
[
|
||||
AC_REQUIRE([AC_HEADER_STDC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
|
||||
AC_CHECK_HEADERS([stdlib.h])
|
||||
AC_CACHE_CHECK([for GNU libc compatible malloc],
|
||||
AC_CACHE_CHECK([whether malloc (0) returns nonnull],
|
||||
[ac_cv_func_malloc_0_nonnull],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#else
|
||||
char *malloc ();
|
||||
#endif
|
||||
[[#include <stdlib.h>
|
||||
]],
|
||||
[[return ! malloc (0);]])
|
||||
[[void *p = malloc (0);
|
||||
int result = !p;
|
||||
free (p);
|
||||
return result;]])
|
||||
],
|
||||
[ac_cv_func_malloc_0_nonnull=yes],
|
||||
[ac_cv_func_malloc_0_nonnull=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on platforms where we know the result.
|
||||
*-gnu* | freebsd* | netbsd* | openbsd* \
|
||||
| hpux* | solaris* | cygwin* | mingw*)
|
||||
ac_cv_func_malloc_0_nonnull=yes ;;
|
||||
# If we don't know, assume the worst.
|
||||
*) ac_cv_func_malloc_0_nonnull=no ;;
|
||||
*-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
|
||||
| gnu* | *-musl* | midnightbsd* \
|
||||
| hpux* | solaris* | cygwin* | mingw* | msys* )
|
||||
ac_cv_func_malloc_0_nonnull="guessing yes" ;;
|
||||
# If we don't know, obey --enable-cross-guesses.
|
||||
*) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2])
|
||||
AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2])
|
||||
])# _AC_FUNC_MALLOC_IF
|
||||
|
||||
])
|
||||
|
||||
# gl_FUNC_MALLOC_GNU
|
||||
# ------------------
|
||||
# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if
|
||||
# it is not.
|
||||
# Replace malloc if it is not compatible with GNU libc.
|
||||
AC_DEFUN([gl_FUNC_MALLOC_GNU],
|
||||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
dnl _AC_FUNC_MALLOC_IF is defined in Autoconf.
|
||||
_AC_FUNC_MALLOC_IF(
|
||||
[AC_DEFINE([HAVE_MALLOC_GNU], [1],
|
||||
[Define to 1 if your system has a GNU libc compatible 'malloc'
|
||||
function, and to 0 otherwise.])],
|
||||
[AC_DEFINE([HAVE_MALLOC_GNU], [0])
|
||||
REPLACE_MALLOC=1
|
||||
AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
|
||||
REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX"
|
||||
if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then
|
||||
_AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC_FOR_MALLOC_GNU=1])
|
||||
fi
|
||||
])
|
||||
|
||||
# gl_FUNC_MALLOC_PTRDIFF
|
||||
# ----------------------
|
||||
# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX,
|
||||
# and replace malloc otherwise.
|
||||
AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF],
|
||||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF])
|
||||
test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1
|
||||
])
|
||||
|
||||
# Test whether malloc, realloc, calloc refuse to create objects
|
||||
# larger than what can be expressed in ptrdiff_t.
|
||||
# Set gl_cv_func_malloc_gnu to yes or no accordingly.
|
||||
AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF],
|
||||
[
|
||||
AC_CACHE_CHECK([whether malloc is ptrdiff_t safe],
|
||||
[gl_cv_malloc_ptrdiff],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <stdint.h>
|
||||
]],
|
||||
[[/* 64-bit ptrdiff_t is so wide that no practical platform
|
||||
can exceed it. */
|
||||
#define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0)
|
||||
|
||||
/* On rare machines where size_t fits in ptrdiff_t there
|
||||
is no problem. */
|
||||
#define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX)
|
||||
|
||||
/* glibc 2.30 and later malloc refuses to exceed ptrdiff_t
|
||||
bounds even on 32-bit platforms. We don't know which
|
||||
non-glibc systems are safe. */
|
||||
#define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__))
|
||||
|
||||
#if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE
|
||||
return 0;
|
||||
#else
|
||||
#error "malloc might not be ptrdiff_t safe"
|
||||
syntax error
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_malloc_ptrdiff=yes],
|
||||
[gl_cv_malloc_ptrdiff=no])
|
||||
])
|
||||
])
|
||||
|
||||
# gl_FUNC_MALLOC_POSIX
|
||||
# --------------------
|
||||
# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
|
||||
# fails), and replace malloc if it is not.
|
||||
# fails, and doesn't mess up with ptrdiff_t overflow), and replace
|
||||
# malloc if it is not.
|
||||
AC_DEFUN([gl_FUNC_MALLOC_POSIX],
|
||||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF])
|
||||
AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
|
||||
if test $gl_cv_func_malloc_posix = yes; then
|
||||
if test "$gl_cv_func_malloc_posix" = yes; then
|
||||
AC_DEFINE([HAVE_MALLOC_POSIX], [1],
|
||||
[Define if the 'malloc' function is POSIX compliant.])
|
||||
[Define if malloc, realloc, and calloc set errno on allocation failure.])
|
||||
else
|
||||
REPLACE_MALLOC=1
|
||||
REPLACE_MALLOC_FOR_MALLOC_POSIX=1
|
||||
fi
|
||||
])
|
||||
|
||||
# Test whether malloc, realloc, calloc are POSIX compliant,
|
||||
# Test whether malloc, realloc, calloc set errno to ENOMEM on failure.
|
||||
# Set gl_cv_func_malloc_posix to yes or no accordingly.
|
||||
AC_DEFUN([gl_CHECK_MALLOC_POSIX],
|
||||
[
|
||||
AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure],
|
||||
[gl_cv_func_malloc_posix],
|
||||
[
|
||||
dnl It is too dangerous to try to allocate a large amount of memory:
|
||||
dnl some systems go to their knees when you do that. So assume that
|
||||
dnl all Unix implementations of the function are POSIX compliant.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[]],
|
||||
[[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
|
||||
choke me
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_func_malloc_posix=yes],
|
||||
[gl_cv_func_malloc_posix=no])
|
||||
dnl all Unix implementations of the function set errno on failure,
|
||||
dnl except on those platforms where we have seen 'test-malloc-gnu',
|
||||
dnl 'test-realloc-gnu', 'test-calloc-gnu' fail.
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
gl_cv_func_malloc_posix=no ;;
|
||||
irix* | solaris*)
|
||||
dnl On IRIX 6.5, the three functions return NULL with errno unset
|
||||
dnl when the argument is larger than PTRDIFF_MAX.
|
||||
dnl On Solaris 11.3, the three functions return NULL with errno set
|
||||
dnl to EAGAIN, not ENOMEM, when the argument is larger than
|
||||
dnl PTRDIFF_MAX.
|
||||
dnl Here is a test program:
|
||||
m4_divert_push([KILL])
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#define ptrdiff_t long
|
||||
#ifndef PTRDIFF_MAX
|
||||
# define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1))
|
||||
#endif
|
||||
|
||||
int main ()
|
||||
{
|
||||
void *p;
|
||||
|
||||
fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX);
|
||||
|
||||
errno = 0;
|
||||
p = malloc ((unsigned long) PTRDIFF_MAX + 1);
|
||||
fprintf (stderr, "p=%p errno=%d\n", p, errno);
|
||||
|
||||
errno = 0;
|
||||
p = calloc (PTRDIFF_MAX / 2 + 1, 2);
|
||||
fprintf (stderr, "p=%p errno=%d\n", p, errno);
|
||||
|
||||
errno = 0;
|
||||
p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1);
|
||||
fprintf (stderr, "p=%p errno=%d\n", p, errno);
|
||||
|
||||
return 0;
|
||||
}
|
||||
m4_divert_pop([KILL])
|
||||
gl_cv_func_malloc_posix=no ;;
|
||||
*)
|
||||
gl_cv_func_malloc_posix=yes ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# malloca.m4 serial 1
|
||||
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation,
|
||||
# malloca.m4 serial 2
|
||||
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -11,5 +11,4 @@ AC_DEFUN([gl_MALLOCA],
|
|||
dnl @ALLOCA@ and @LTALLOCA@.
|
||||
dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies.
|
||||
AC_REQUIRE([gl_EEMALLOC])
|
||||
AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
|
||||
])
|
||||
|
|
560
gl/m4/math_h.m4
560
gl/m4/math_h.m4
|
@ -1,16 +1,16 @@
|
|||
# math_h.m4 serial 114
|
||||
dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
|
||||
# math_h.m4 serial 125
|
||||
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_MATH_H],
|
||||
AC_DEFUN_ONCE([gl_MATH_H],
|
||||
[
|
||||
AC_REQUIRE([gl_MATH_H_DEFAULTS])
|
||||
gl_CHECK_NEXT_HEADERS([math.h])
|
||||
|
||||
AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
|
||||
[[/* Solaris 10 has a broken definition of NAN. Other platforms
|
||||
fail to provide NAN, or provide it only in C99 mode; this
|
||||
test only needs to fail when NAN is provided but wrong. */
|
||||
|
@ -25,7 +25,7 @@ AC_DEFUN([gl_MATH_H],
|
|||
REPLACE_NAN=1
|
||||
fi
|
||||
AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
|
||||
[[/* Solaris 10 has a broken definition of HUGE_VAL. */
|
||||
double d = HUGE_VAL;
|
||||
return d == 0;]])],
|
||||
|
@ -53,272 +53,310 @@ AC_DEFUN([gl_MATH_H],
|
|||
tanf tanl tanhf trunc truncf truncl])
|
||||
])
|
||||
|
||||
# gl_MATH_MODULE_INDICATOR([modulename])
|
||||
# sets the shell variable that indicates the presence of the given module
|
||||
# to a C preprocessor expression that will evaluate to 1.
|
||||
# This macro invocation must not occur in macros that are AC_REQUIREd.
|
||||
AC_DEFUN([gl_MATH_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
|
||||
AC_REQUIRE([gl_MATH_H_DEFAULTS])
|
||||
dnl Ensure to expand the default settings once only.
|
||||
gl_MATH_H_REQUIRE_DEFAULTS
|
||||
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
||||
dnl Define it also as a C macro, for the benefit of the unit tests.
|
||||
gl_MODULE_INDICATOR_FOR_TESTS([$1])
|
||||
])
|
||||
|
||||
# Initializes the default values for AC_SUBSTed shell variables.
|
||||
# This macro must not be AC_REQUIREd. It must only be invoked, and only
|
||||
# outside of macros or in macros that are not AC_REQUIREd.
|
||||
AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_MATH_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACOSF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACOSL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ASINF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ASINL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATANF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATANL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATAN2F])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CBRT])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CBRTF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CBRTL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CEIL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CEILF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CEILL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPYSIGN])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPYSIGNF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPYSIGNL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COSF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COSL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COSHF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXP2])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXP2F])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXP2L])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPM1])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPM1F])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPM1L])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FABSF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FABSL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FLOOR])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FLOORF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FLOORL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMA])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMAF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMAL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMOD])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMODF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMODL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXPF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXP])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXPL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOT])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOTF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOTL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGB])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGBF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGBL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISFINITE])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISINF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNAN])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNANF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNAND])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNANL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LDEXPF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LDEXPL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG10])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG10F])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG10L])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG1P])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG1PF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG1PL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG2])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG2F])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG2L])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGB])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGBF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGBL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODFF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODFL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POWF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMAINDER])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMAINDERF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMAINDERL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RINT])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RINTF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RINTL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUND])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUNDF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUNDL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNBIT])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINHF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SQRTF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SQRTL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TANF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TANL])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TANHF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNC])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCF])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCL])
|
||||
dnl Support Microsoft deprecated alias function names by default.
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_J0], [1])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_J1], [1])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_JN], [1])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_Y0], [1])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_Y1], [1])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_YN], [1])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_MATH_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_MATH_H_DEFAULTS])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_MATH_H_DEFAULTS],
|
||||
[
|
||||
GNULIB_ACOSF=0; AC_SUBST([GNULIB_ACOSF])
|
||||
GNULIB_ACOSL=0; AC_SUBST([GNULIB_ACOSL])
|
||||
GNULIB_ASINF=0; AC_SUBST([GNULIB_ASINF])
|
||||
GNULIB_ASINL=0; AC_SUBST([GNULIB_ASINL])
|
||||
GNULIB_ATANF=0; AC_SUBST([GNULIB_ATANF])
|
||||
GNULIB_ATANL=0; AC_SUBST([GNULIB_ATANL])
|
||||
GNULIB_ATAN2F=0; AC_SUBST([GNULIB_ATAN2F])
|
||||
GNULIB_CBRT=0; AC_SUBST([GNULIB_CBRT])
|
||||
GNULIB_CBRTF=0; AC_SUBST([GNULIB_CBRTF])
|
||||
GNULIB_CBRTL=0; AC_SUBST([GNULIB_CBRTL])
|
||||
GNULIB_CEIL=0; AC_SUBST([GNULIB_CEIL])
|
||||
GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF])
|
||||
GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL])
|
||||
GNULIB_COPYSIGN=0; AC_SUBST([GNULIB_COPYSIGN])
|
||||
GNULIB_COPYSIGNF=0; AC_SUBST([GNULIB_COPYSIGNF])
|
||||
GNULIB_COPYSIGNL=0; AC_SUBST([GNULIB_COPYSIGNL])
|
||||
GNULIB_COSF=0; AC_SUBST([GNULIB_COSF])
|
||||
GNULIB_COSL=0; AC_SUBST([GNULIB_COSL])
|
||||
GNULIB_COSHF=0; AC_SUBST([GNULIB_COSHF])
|
||||
GNULIB_EXPF=0; AC_SUBST([GNULIB_EXPF])
|
||||
GNULIB_EXPL=0; AC_SUBST([GNULIB_EXPL])
|
||||
GNULIB_EXP2=0; AC_SUBST([GNULIB_EXP2])
|
||||
GNULIB_EXP2F=0; AC_SUBST([GNULIB_EXP2F])
|
||||
GNULIB_EXP2L=0; AC_SUBST([GNULIB_EXP2L])
|
||||
GNULIB_EXPM1=0; AC_SUBST([GNULIB_EXPM1])
|
||||
GNULIB_EXPM1F=0; AC_SUBST([GNULIB_EXPM1F])
|
||||
GNULIB_EXPM1L=0; AC_SUBST([GNULIB_EXPM1L])
|
||||
GNULIB_FABSF=0; AC_SUBST([GNULIB_FABSF])
|
||||
GNULIB_FABSL=0; AC_SUBST([GNULIB_FABSL])
|
||||
GNULIB_FLOOR=0; AC_SUBST([GNULIB_FLOOR])
|
||||
GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF])
|
||||
GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL])
|
||||
GNULIB_FMA=0; AC_SUBST([GNULIB_FMA])
|
||||
GNULIB_FMAF=0; AC_SUBST([GNULIB_FMAF])
|
||||
GNULIB_FMAL=0; AC_SUBST([GNULIB_FMAL])
|
||||
GNULIB_FMOD=0; AC_SUBST([GNULIB_FMOD])
|
||||
GNULIB_FMODF=0; AC_SUBST([GNULIB_FMODF])
|
||||
GNULIB_FMODL=0; AC_SUBST([GNULIB_FMODL])
|
||||
GNULIB_FREXPF=0; AC_SUBST([GNULIB_FREXPF])
|
||||
GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP])
|
||||
GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL])
|
||||
GNULIB_HYPOT=0; AC_SUBST([GNULIB_HYPOT])
|
||||
GNULIB_HYPOTF=0; AC_SUBST([GNULIB_HYPOTF])
|
||||
GNULIB_HYPOTL=0; AC_SUBST([GNULIB_HYPOTL])
|
||||
GNULIB_ILOGB=0; AC_SUBST([GNULIB_ILOGB])
|
||||
GNULIB_ILOGBF=0; AC_SUBST([GNULIB_ILOGBF])
|
||||
GNULIB_ILOGBL=0; AC_SUBST([GNULIB_ILOGBL])
|
||||
GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
|
||||
GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF])
|
||||
GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN])
|
||||
GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF])
|
||||
GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND])
|
||||
GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL])
|
||||
GNULIB_LDEXPF=0; AC_SUBST([GNULIB_LDEXPF])
|
||||
GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL])
|
||||
GNULIB_LOG=0; AC_SUBST([GNULIB_LOG])
|
||||
GNULIB_LOGF=0; AC_SUBST([GNULIB_LOGF])
|
||||
GNULIB_LOGL=0; AC_SUBST([GNULIB_LOGL])
|
||||
GNULIB_LOG10=0; AC_SUBST([GNULIB_LOG10])
|
||||
GNULIB_LOG10F=0; AC_SUBST([GNULIB_LOG10F])
|
||||
GNULIB_LOG10L=0; AC_SUBST([GNULIB_LOG10L])
|
||||
GNULIB_LOG1P=0; AC_SUBST([GNULIB_LOG1P])
|
||||
GNULIB_LOG1PF=0; AC_SUBST([GNULIB_LOG1PF])
|
||||
GNULIB_LOG1PL=0; AC_SUBST([GNULIB_LOG1PL])
|
||||
GNULIB_LOG2=0; AC_SUBST([GNULIB_LOG2])
|
||||
GNULIB_LOG2F=0; AC_SUBST([GNULIB_LOG2F])
|
||||
GNULIB_LOG2L=0; AC_SUBST([GNULIB_LOG2L])
|
||||
GNULIB_LOGB=0; AC_SUBST([GNULIB_LOGB])
|
||||
GNULIB_LOGBF=0; AC_SUBST([GNULIB_LOGBF])
|
||||
GNULIB_LOGBL=0; AC_SUBST([GNULIB_LOGBL])
|
||||
GNULIB_MODF=0; AC_SUBST([GNULIB_MODF])
|
||||
GNULIB_MODFF=0; AC_SUBST([GNULIB_MODFF])
|
||||
GNULIB_MODFL=0; AC_SUBST([GNULIB_MODFL])
|
||||
GNULIB_POWF=0; AC_SUBST([GNULIB_POWF])
|
||||
GNULIB_REMAINDER=0; AC_SUBST([GNULIB_REMAINDER])
|
||||
GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF])
|
||||
GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL])
|
||||
GNULIB_RINT=0; AC_SUBST([GNULIB_RINT])
|
||||
GNULIB_RINTF=0; AC_SUBST([GNULIB_RINTF])
|
||||
GNULIB_RINTL=0; AC_SUBST([GNULIB_RINTL])
|
||||
GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND])
|
||||
GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF])
|
||||
GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL])
|
||||
GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT])
|
||||
GNULIB_SINF=0; AC_SUBST([GNULIB_SINF])
|
||||
GNULIB_SINL=0; AC_SUBST([GNULIB_SINL])
|
||||
GNULIB_SINHF=0; AC_SUBST([GNULIB_SINHF])
|
||||
GNULIB_SQRTF=0; AC_SUBST([GNULIB_SQRTF])
|
||||
GNULIB_SQRTL=0; AC_SUBST([GNULIB_SQRTL])
|
||||
GNULIB_TANF=0; AC_SUBST([GNULIB_TANF])
|
||||
GNULIB_TANL=0; AC_SUBST([GNULIB_TANL])
|
||||
GNULIB_TANHF=0; AC_SUBST([GNULIB_TANHF])
|
||||
GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC])
|
||||
GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF])
|
||||
GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL])
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF])
|
||||
HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL])
|
||||
HAVE_ASINF=1; AC_SUBST([HAVE_ASINF])
|
||||
HAVE_ASINL=1; AC_SUBST([HAVE_ASINL])
|
||||
HAVE_ATANF=1; AC_SUBST([HAVE_ATANF])
|
||||
HAVE_ATANL=1; AC_SUBST([HAVE_ATANL])
|
||||
HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F])
|
||||
HAVE_CBRT=1; AC_SUBST([HAVE_CBRT])
|
||||
HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF])
|
||||
HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL])
|
||||
HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN])
|
||||
HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL])
|
||||
HAVE_COSF=1; AC_SUBST([HAVE_COSF])
|
||||
HAVE_COSL=1; AC_SUBST([HAVE_COSL])
|
||||
HAVE_COSHF=1; AC_SUBST([HAVE_COSHF])
|
||||
HAVE_EXPF=1; AC_SUBST([HAVE_EXPF])
|
||||
HAVE_EXPL=1; AC_SUBST([HAVE_EXPL])
|
||||
HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1])
|
||||
HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F])
|
||||
HAVE_FABSF=1; AC_SUBST([HAVE_FABSF])
|
||||
HAVE_FABSL=1; AC_SUBST([HAVE_FABSL])
|
||||
HAVE_FMA=1; AC_SUBST([HAVE_FMA])
|
||||
HAVE_FMAF=1; AC_SUBST([HAVE_FMAF])
|
||||
HAVE_FMAL=1; AC_SUBST([HAVE_FMAL])
|
||||
HAVE_FMODF=1; AC_SUBST([HAVE_FMODF])
|
||||
HAVE_FMODL=1; AC_SUBST([HAVE_FMODL])
|
||||
HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF])
|
||||
HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF])
|
||||
HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL])
|
||||
HAVE_ILOGB=1; AC_SUBST([HAVE_ILOGB])
|
||||
HAVE_ILOGBF=1; AC_SUBST([HAVE_ILOGBF])
|
||||
HAVE_ILOGBL=1; AC_SUBST([HAVE_ILOGBL])
|
||||
HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF])
|
||||
HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND])
|
||||
HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL])
|
||||
HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF])
|
||||
HAVE_LOGF=1; AC_SUBST([HAVE_LOGF])
|
||||
HAVE_LOGL=1; AC_SUBST([HAVE_LOGL])
|
||||
HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F])
|
||||
HAVE_LOG10L=1; AC_SUBST([HAVE_LOG10L])
|
||||
HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P])
|
||||
HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF])
|
||||
HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL])
|
||||
HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF])
|
||||
HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL])
|
||||
HAVE_MODFF=1; AC_SUBST([HAVE_MODFF])
|
||||
HAVE_MODFL=1; AC_SUBST([HAVE_MODFL])
|
||||
HAVE_POWF=1; AC_SUBST([HAVE_POWF])
|
||||
HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER])
|
||||
HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF])
|
||||
HAVE_RINT=1; AC_SUBST([HAVE_RINT])
|
||||
HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
|
||||
HAVE_SINF=1; AC_SUBST([HAVE_SINF])
|
||||
HAVE_SINL=1; AC_SUBST([HAVE_SINL])
|
||||
HAVE_SINHF=1; AC_SUBST([HAVE_SINHF])
|
||||
HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF])
|
||||
HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL])
|
||||
HAVE_TANF=1; AC_SUBST([HAVE_TANF])
|
||||
HAVE_TANL=1; AC_SUBST([HAVE_TANL])
|
||||
HAVE_TANHF=1; AC_SUBST([HAVE_TANHF])
|
||||
HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
|
||||
HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
|
||||
HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
|
||||
HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF])
|
||||
HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL])
|
||||
HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF])
|
||||
HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL])
|
||||
HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF])
|
||||
HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
|
||||
HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
|
||||
HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2])
|
||||
HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F])
|
||||
HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L])
|
||||
HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L])
|
||||
HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF])
|
||||
HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL])
|
||||
HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
|
||||
HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
|
||||
HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
|
||||
HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L])
|
||||
HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2])
|
||||
HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F])
|
||||
HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L])
|
||||
HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB])
|
||||
HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER])
|
||||
HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL])
|
||||
HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF])
|
||||
HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND])
|
||||
HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF])
|
||||
HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL])
|
||||
HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
|
||||
HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
|
||||
HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
|
||||
HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC])
|
||||
HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF])
|
||||
HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL])
|
||||
REPLACE_CBRTF=0; AC_SUBST([REPLACE_CBRTF])
|
||||
REPLACE_CBRTL=0; AC_SUBST([REPLACE_CBRTL])
|
||||
REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL])
|
||||
REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF])
|
||||
REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
|
||||
REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1])
|
||||
REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F])
|
||||
REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2])
|
||||
REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L])
|
||||
REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL])
|
||||
REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR])
|
||||
REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF])
|
||||
REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL])
|
||||
REPLACE_FMA=0; AC_SUBST([REPLACE_FMA])
|
||||
REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF])
|
||||
REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL])
|
||||
REPLACE_FMOD=0; AC_SUBST([REPLACE_FMOD])
|
||||
REPLACE_FMODF=0; AC_SUBST([REPLACE_FMODF])
|
||||
REPLACE_FMODL=0; AC_SUBST([REPLACE_FMODL])
|
||||
REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF])
|
||||
REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
|
||||
REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
|
||||
REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
|
||||
REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT])
|
||||
REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF])
|
||||
REPLACE_HYPOTL=0; AC_SUBST([REPLACE_HYPOTL])
|
||||
REPLACE_ILOGB=0; AC_SUBST([REPLACE_ILOGB])
|
||||
REPLACE_ILOGBF=0; AC_SUBST([REPLACE_ILOGBF])
|
||||
REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE])
|
||||
REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF])
|
||||
REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN])
|
||||
REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL])
|
||||
REPLACE_LOG=0; AC_SUBST([REPLACE_LOG])
|
||||
REPLACE_LOGF=0; AC_SUBST([REPLACE_LOGF])
|
||||
REPLACE_LOGL=0; AC_SUBST([REPLACE_LOGL])
|
||||
REPLACE_LOG10=0; AC_SUBST([REPLACE_LOG10])
|
||||
REPLACE_LOG10F=0; AC_SUBST([REPLACE_LOG10F])
|
||||
REPLACE_LOG10L=0; AC_SUBST([REPLACE_LOG10L])
|
||||
REPLACE_LOG1P=0; AC_SUBST([REPLACE_LOG1P])
|
||||
REPLACE_LOG1PF=0; AC_SUBST([REPLACE_LOG1PF])
|
||||
REPLACE_LOG1PL=0; AC_SUBST([REPLACE_LOG1PL])
|
||||
REPLACE_LOG2=0; AC_SUBST([REPLACE_LOG2])
|
||||
REPLACE_LOG2F=0; AC_SUBST([REPLACE_LOG2F])
|
||||
REPLACE_LOG2L=0; AC_SUBST([REPLACE_LOG2L])
|
||||
REPLACE_LOGB=0; AC_SUBST([REPLACE_LOGB])
|
||||
REPLACE_LOGBF=0; AC_SUBST([REPLACE_LOGBF])
|
||||
REPLACE_LOGBL=0; AC_SUBST([REPLACE_LOGBL])
|
||||
REPLACE_MODF=0; AC_SUBST([REPLACE_MODF])
|
||||
REPLACE_MODFF=0; AC_SUBST([REPLACE_MODFF])
|
||||
REPLACE_MODFL=0; AC_SUBST([REPLACE_MODFL])
|
||||
REPLACE_NAN=0; AC_SUBST([REPLACE_NAN])
|
||||
REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER])
|
||||
REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF])
|
||||
REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL])
|
||||
REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
|
||||
REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
|
||||
REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
|
||||
REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT])
|
||||
REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
|
||||
REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL])
|
||||
REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC])
|
||||
REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF])
|
||||
REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
|
||||
HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF])
|
||||
HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL])
|
||||
HAVE_ASINF=1; AC_SUBST([HAVE_ASINF])
|
||||
HAVE_ASINL=1; AC_SUBST([HAVE_ASINL])
|
||||
HAVE_ATANF=1; AC_SUBST([HAVE_ATANF])
|
||||
HAVE_ATANL=1; AC_SUBST([HAVE_ATANL])
|
||||
HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F])
|
||||
HAVE_CBRT=1; AC_SUBST([HAVE_CBRT])
|
||||
HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF])
|
||||
HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL])
|
||||
HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN])
|
||||
HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL])
|
||||
HAVE_COSF=1; AC_SUBST([HAVE_COSF])
|
||||
HAVE_COSL=1; AC_SUBST([HAVE_COSL])
|
||||
HAVE_COSHF=1; AC_SUBST([HAVE_COSHF])
|
||||
HAVE_EXPF=1; AC_SUBST([HAVE_EXPF])
|
||||
HAVE_EXPL=1; AC_SUBST([HAVE_EXPL])
|
||||
HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1])
|
||||
HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F])
|
||||
HAVE_FABSF=1; AC_SUBST([HAVE_FABSF])
|
||||
HAVE_FABSL=1; AC_SUBST([HAVE_FABSL])
|
||||
HAVE_FMA=1; AC_SUBST([HAVE_FMA])
|
||||
HAVE_FMAF=1; AC_SUBST([HAVE_FMAF])
|
||||
HAVE_FMAL=1; AC_SUBST([HAVE_FMAL])
|
||||
HAVE_FMODF=1; AC_SUBST([HAVE_FMODF])
|
||||
HAVE_FMODL=1; AC_SUBST([HAVE_FMODL])
|
||||
HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF])
|
||||
HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF])
|
||||
HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL])
|
||||
HAVE_ILOGB=1; AC_SUBST([HAVE_ILOGB])
|
||||
HAVE_ILOGBF=1; AC_SUBST([HAVE_ILOGBF])
|
||||
HAVE_ILOGBL=1; AC_SUBST([HAVE_ILOGBL])
|
||||
HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF])
|
||||
HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND])
|
||||
HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL])
|
||||
HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF])
|
||||
HAVE_LOGF=1; AC_SUBST([HAVE_LOGF])
|
||||
HAVE_LOGL=1; AC_SUBST([HAVE_LOGL])
|
||||
HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F])
|
||||
HAVE_LOG10L=1; AC_SUBST([HAVE_LOG10L])
|
||||
HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P])
|
||||
HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF])
|
||||
HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL])
|
||||
HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF])
|
||||
HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL])
|
||||
HAVE_MODFF=1; AC_SUBST([HAVE_MODFF])
|
||||
HAVE_MODFL=1; AC_SUBST([HAVE_MODFL])
|
||||
HAVE_POWF=1; AC_SUBST([HAVE_POWF])
|
||||
HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER])
|
||||
HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF])
|
||||
HAVE_RINT=1; AC_SUBST([HAVE_RINT])
|
||||
HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
|
||||
HAVE_SINF=1; AC_SUBST([HAVE_SINF])
|
||||
HAVE_SINL=1; AC_SUBST([HAVE_SINL])
|
||||
HAVE_SINHF=1; AC_SUBST([HAVE_SINHF])
|
||||
HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF])
|
||||
HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL])
|
||||
HAVE_TANF=1; AC_SUBST([HAVE_TANF])
|
||||
HAVE_TANL=1; AC_SUBST([HAVE_TANL])
|
||||
HAVE_TANHF=1; AC_SUBST([HAVE_TANHF])
|
||||
HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
|
||||
HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
|
||||
HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
|
||||
HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF])
|
||||
HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL])
|
||||
HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF])
|
||||
HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL])
|
||||
HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF])
|
||||
HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
|
||||
HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
|
||||
HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2])
|
||||
HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F])
|
||||
HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L])
|
||||
HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L])
|
||||
HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF])
|
||||
HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL])
|
||||
HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
|
||||
HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
|
||||
HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
|
||||
HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L])
|
||||
HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2])
|
||||
HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F])
|
||||
HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L])
|
||||
HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB])
|
||||
HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER])
|
||||
HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL])
|
||||
HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF])
|
||||
HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND])
|
||||
HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF])
|
||||
HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL])
|
||||
HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
|
||||
HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
|
||||
HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
|
||||
HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC])
|
||||
HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF])
|
||||
HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL])
|
||||
REPLACE_ACOSF=0; AC_SUBST([REPLACE_ACOSF])
|
||||
REPLACE_ASINF=0; AC_SUBST([REPLACE_ASINF])
|
||||
REPLACE_ATANF=0; AC_SUBST([REPLACE_ATANF])
|
||||
REPLACE_ATAN2F=0; AC_SUBST([REPLACE_ATAN2F])
|
||||
REPLACE_CBRTF=0; AC_SUBST([REPLACE_CBRTF])
|
||||
REPLACE_CBRTL=0; AC_SUBST([REPLACE_CBRTL])
|
||||
REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL])
|
||||
REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF])
|
||||
REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
|
||||
REPLACE_COSF=0; AC_SUBST([REPLACE_COSF])
|
||||
REPLACE_COSHF=0; AC_SUBST([REPLACE_COSHF])
|
||||
REPLACE_EXPF=0; AC_SUBST([REPLACE_EXPF])
|
||||
REPLACE_EXPL=0; AC_SUBST([REPLACE_EXPL])
|
||||
REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1])
|
||||
REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F])
|
||||
REPLACE_EXPM1L=0; AC_SUBST([REPLACE_EXPM1L])
|
||||
REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2])
|
||||
REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L])
|
||||
REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL])
|
||||
REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR])
|
||||
REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF])
|
||||
REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL])
|
||||
REPLACE_FMA=0; AC_SUBST([REPLACE_FMA])
|
||||
REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF])
|
||||
REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL])
|
||||
REPLACE_FMOD=0; AC_SUBST([REPLACE_FMOD])
|
||||
REPLACE_FMODF=0; AC_SUBST([REPLACE_FMODF])
|
||||
REPLACE_FMODL=0; AC_SUBST([REPLACE_FMODL])
|
||||
REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF])
|
||||
REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
|
||||
REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
|
||||
REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
|
||||
REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT])
|
||||
REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF])
|
||||
REPLACE_HYPOTL=0; AC_SUBST([REPLACE_HYPOTL])
|
||||
REPLACE_ILOGB=0; AC_SUBST([REPLACE_ILOGB])
|
||||
REPLACE_ILOGBF=0; AC_SUBST([REPLACE_ILOGBF])
|
||||
REPLACE_ILOGBL=0; AC_SUBST([REPLACE_ILOGBL])
|
||||
REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE])
|
||||
REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF])
|
||||
REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN])
|
||||
REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL])
|
||||
REPLACE_LOG=0; AC_SUBST([REPLACE_LOG])
|
||||
REPLACE_LOGF=0; AC_SUBST([REPLACE_LOGF])
|
||||
REPLACE_LOGL=0; AC_SUBST([REPLACE_LOGL])
|
||||
REPLACE_LOG10=0; AC_SUBST([REPLACE_LOG10])
|
||||
REPLACE_LOG10F=0; AC_SUBST([REPLACE_LOG10F])
|
||||
REPLACE_LOG10L=0; AC_SUBST([REPLACE_LOG10L])
|
||||
REPLACE_LOG1P=0; AC_SUBST([REPLACE_LOG1P])
|
||||
REPLACE_LOG1PF=0; AC_SUBST([REPLACE_LOG1PF])
|
||||
REPLACE_LOG1PL=0; AC_SUBST([REPLACE_LOG1PL])
|
||||
REPLACE_LOG2=0; AC_SUBST([REPLACE_LOG2])
|
||||
REPLACE_LOG2F=0; AC_SUBST([REPLACE_LOG2F])
|
||||
REPLACE_LOG2L=0; AC_SUBST([REPLACE_LOG2L])
|
||||
REPLACE_LOGB=0; AC_SUBST([REPLACE_LOGB])
|
||||
REPLACE_LOGBF=0; AC_SUBST([REPLACE_LOGBF])
|
||||
REPLACE_LOGBL=0; AC_SUBST([REPLACE_LOGBL])
|
||||
REPLACE_MODF=0; AC_SUBST([REPLACE_MODF])
|
||||
REPLACE_MODFF=0; AC_SUBST([REPLACE_MODFF])
|
||||
REPLACE_MODFL=0; AC_SUBST([REPLACE_MODFL])
|
||||
REPLACE_NAN=0; AC_SUBST([REPLACE_NAN])
|
||||
REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER])
|
||||
REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF])
|
||||
REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL])
|
||||
REPLACE_RINTL=0; AC_SUBST([REPLACE_RINTL])
|
||||
REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
|
||||
REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
|
||||
REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
|
||||
REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT])
|
||||
REPLACE_SIGNBIT_USING_BUILTINS=0; AC_SUBST([REPLACE_SIGNBIT_USING_BUILTINS])
|
||||
REPLACE_SINF=0; AC_SUBST([REPLACE_SINF])
|
||||
REPLACE_SINHF=0; AC_SUBST([REPLACE_SINHF])
|
||||
REPLACE_SQRTF=0; AC_SUBST([REPLACE_SQRTF])
|
||||
REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL])
|
||||
REPLACE_TANF=0; AC_SUBST([REPLACE_TANF])
|
||||
REPLACE_TANHF=0; AC_SUBST([REPLACE_TANHF])
|
||||
REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC])
|
||||
REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF])
|
||||
REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
|
||||
])
|
||||
|
||||
# gl_LONG_DOUBLE_VS_DOUBLE
|
||||
|
|
358
gl/m4/mbrtowc.m4
358
gl/m4/mbrtowc.m4
|
@ -1,5 +1,5 @@
|
|||
# mbrtowc.m4 serial 25
|
||||
dnl Copyright (C) 2001-2002, 2004-2005, 2008-2013 Free Software Foundation,
|
||||
# mbrtowc.m4 serial 38 -*- coding: utf-8 -*-
|
||||
dnl Copyright (C) 2001-2002, 2004-2005, 2008-2023 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -8,6 +8,8 @@ dnl with or without modifications, as long as this notice is preserved.
|
|||
AC_DEFUN([gl_FUNC_MBRTOWC],
|
||||
[
|
||||
AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_PTHREADLIB])
|
||||
AC_CHECK_HEADERS_ONCE([threads.h])
|
||||
|
||||
AC_REQUIRE([AC_TYPE_MBSTATE_T])
|
||||
gl_MBSTATE_T_BROKEN
|
||||
|
@ -16,15 +18,8 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
|
|||
if test $ac_cv_func_mbrtowc = no; then
|
||||
HAVE_MBRTOWC=0
|
||||
AC_CHECK_DECLS([mbrtowc],,, [[
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
]])
|
||||
#include <wchar.h>
|
||||
]])
|
||||
if test $ac_cv_have_decl_mbrtowc = yes; then
|
||||
dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although
|
||||
dnl it does not have the function. Avoid a collision with gnulib's
|
||||
|
@ -39,6 +34,9 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
|
|||
gl_MBRTOWC_NULL_ARG2
|
||||
gl_MBRTOWC_RETVAL
|
||||
gl_MBRTOWC_NUL_RETVAL
|
||||
gl_MBRTOWC_STORES_INCOMPLETE
|
||||
gl_MBRTOWC_EMPTY_INPUT
|
||||
gl_MBRTOWC_C_LOCALE
|
||||
case "$gl_cv_func_mbrtowc_null_arg1" in
|
||||
*yes) ;;
|
||||
*) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1],
|
||||
|
@ -67,8 +65,47 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
|
|||
REPLACE_MBRTOWC=1
|
||||
;;
|
||||
esac
|
||||
case "$gl_cv_func_mbrtowc_stores_incomplete" in
|
||||
*no) ;;
|
||||
*) AC_DEFINE([MBRTOWC_STORES_INCOMPLETE_BUG], [1],
|
||||
[Define if the mbrtowc function stores a wide character when reporting incomplete input.])
|
||||
REPLACE_MBRTOWC=1
|
||||
;;
|
||||
esac
|
||||
case "$gl_cv_func_mbrtowc_empty_input" in
|
||||
*yes) ;;
|
||||
*) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1],
|
||||
[Define if the mbrtowc function does not return (size_t) -2
|
||||
for empty input.])
|
||||
REPLACE_MBRTOWC=1
|
||||
;;
|
||||
esac
|
||||
case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in
|
||||
*yes) ;;
|
||||
*) AC_DEFINE([MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ], [1],
|
||||
[Define if the mbrtowc function may signal encoding errors in the C locale.])
|
||||
REPLACE_MBRTOWC=1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test $REPLACE_MBSTATE_T = 1; then
|
||||
case "$host_os" in
|
||||
mingw*) LIB_MBRTOWC= ;;
|
||||
*)
|
||||
gl_WEAK_SYMBOLS
|
||||
case "$gl_cv_have_weak" in
|
||||
*yes) LIB_MBRTOWC= ;;
|
||||
*) LIB_MBRTOWC="$LIBPTHREAD" ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
else
|
||||
LIB_MBRTOWC=
|
||||
fi
|
||||
dnl LIB_MBRTOWC is expected to be '-pthread' or '-lpthread' on AIX
|
||||
dnl with gcc or xlc, and empty otherwise.
|
||||
AC_SUBST([LIB_MBRTOWC])
|
||||
])
|
||||
|
||||
dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that
|
||||
|
@ -80,11 +117,19 @@ dnl avoid inconsistencies.
|
|||
AC_DEFUN([gl_MBSTATE_T_BROKEN],
|
||||
[
|
||||
AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
|
||||
AC_REQUIRE([AC_TYPE_MBSTATE_T])
|
||||
AC_CHECK_FUNCS_ONCE([mbsinit])
|
||||
AC_CHECK_FUNCS_ONCE([mbrtowc])
|
||||
if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
|
||||
dnl On native Windows, we know exactly how mbsinit() behaves and don't need
|
||||
dnl to override it, even if - like on MSVC - mbsinit() is only defined as
|
||||
dnl an inline function, not as a global function.
|
||||
if case "$host_os" in
|
||||
mingw*) true ;;
|
||||
*) test $ac_cv_func_mbsinit = yes ;;
|
||||
esac \
|
||||
&& test $ac_cv_func_mbrtowc = yes; then
|
||||
gl_MBRTOWC_INCOMPLETE_STATE
|
||||
gl_MBRTOWC_SANITYCHECK
|
||||
REPLACE_MBSTATE_T=0
|
||||
|
@ -109,6 +154,7 @@ AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE],
|
|||
[
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([gt_LOCALE_JA])
|
||||
AC_REQUIRE([gt_LOCALE_FR_UTF8])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CACHE_CHECK([whether mbrtowc handles incomplete characters],
|
||||
[gl_cv_func_mbrtowc_incomplete_state],
|
||||
|
@ -128,13 +174,6 @@ changequote([,])dnl
|
|||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
@ -147,13 +186,39 @@ int main ()
|
|||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
|
||||
if (mbsinit (&state))
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}]])],
|
||||
[gl_cv_func_mbrtowc_incomplete_state=yes],
|
||||
[gl_cv_func_mbrtowc_incomplete_state=no],
|
||||
[:])
|
||||
else
|
||||
if test $LOCALE_FR_UTF8 != none; then
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
|
||||
{
|
||||
const char input[] = "B\303\274\303\237er"; /* "Büßer" */
|
||||
mbstate_t state;
|
||||
wchar_t wc;
|
||||
|
||||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
|
||||
if (mbsinit (&state))
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}]])],
|
||||
[gl_cv_func_mbrtowc_incomplete_state=yes],
|
||||
[gl_cv_func_mbrtowc_incomplete_state=no],
|
||||
[:])
|
||||
fi
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
@ -185,13 +250,6 @@ changequote([,])dnl
|
|||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
@ -207,7 +265,7 @@ int main ()
|
|||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, input + 3, 6, &state) != 4
|
||||
&& mbtowc (&wc, input + 3, 6) == 4)
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}]])],
|
||||
|
@ -245,13 +303,6 @@ changequote([,])dnl
|
|||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
@ -314,13 +365,6 @@ changequote([,])dnl
|
|||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
@ -335,7 +379,7 @@ int main ()
|
|||
mbrtowc (&wc, NULL, 5, &state);
|
||||
/* Check that wc was not modified. */
|
||||
if (wc != (wchar_t) 0xBADFACE)
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}]])],
|
||||
|
@ -376,13 +420,6 @@ changequote([,])dnl
|
|||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
@ -504,13 +541,6 @@ changequote([,])dnl
|
|||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
|
@ -522,7 +552,7 @@ int main ()
|
|||
|
||||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, "", 1, &state) != 0)
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}]])],
|
||||
|
@ -533,11 +563,206 @@ int main ()
|
|||
])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/mbrtowc.c.
|
||||
dnl Test whether mbrtowc stores a wide character when reporting incomplete
|
||||
dnl input.
|
||||
|
||||
AC_DEFUN([gl_MBRTOWC_STORES_INCOMPLETE],
|
||||
[
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CACHE_CHECK([whether mbrtowc stores incomplete characters],
|
||||
[gl_cv_func_mbrtowc_stores_incomplete],
|
||||
[
|
||||
dnl Initial guess, used when cross-compiling or when no suitable locale
|
||||
dnl is present.
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;;
|
||||
*) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
int result = 0;
|
||||
if (setlocale (LC_ALL, "French_France.65001") != NULL)
|
||||
{
|
||||
wchar_t wc = (wchar_t) 0xBADFACE;
|
||||
mbstate_t state;
|
||||
|
||||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2)
|
||||
&& wc != (wchar_t) 0xBADFACE)
|
||||
result |= 1;
|
||||
}
|
||||
if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
|
||||
{
|
||||
wchar_t wc = (wchar_t) 0xBADFACE;
|
||||
mbstate_t state;
|
||||
|
||||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2)
|
||||
&& wc != (wchar_t) 0xBADFACE)
|
||||
result |= 2;
|
||||
}
|
||||
if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
|
||||
{
|
||||
wchar_t wc = (wchar_t) 0xBADFACE;
|
||||
mbstate_t state;
|
||||
|
||||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2)
|
||||
&& wc != (wchar_t) 0xBADFACE)
|
||||
result |= 4;
|
||||
}
|
||||
if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
|
||||
{
|
||||
wchar_t wc = (wchar_t) 0xBADFACE;
|
||||
mbstate_t state;
|
||||
|
||||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2)
|
||||
&& wc != (wchar_t) 0xBADFACE)
|
||||
result |= 8;
|
||||
}
|
||||
return result;
|
||||
}]])],
|
||||
[gl_cv_func_mbrtowc_stores_incomplete=no],
|
||||
[gl_cv_func_mbrtowc_stores_incomplete=yes],
|
||||
[:])
|
||||
;;
|
||||
*)
|
||||
AC_REQUIRE([gt_LOCALE_FR_UTF8])
|
||||
if test $LOCALE_FR_UTF8 != none; then
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
int main ()
|
||||
{
|
||||
if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
|
||||
{
|
||||
wchar_t wc = (wchar_t) 0xBADFACE;
|
||||
mbstate_t state;
|
||||
|
||||
memset (&state, '\0', sizeof (mbstate_t));
|
||||
if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2)
|
||||
&& wc != (wchar_t) 0xBADFACE)
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}]])],
|
||||
[gl_cv_func_mbrtowc_stores_incomplete=no],
|
||||
[gl_cv_func_mbrtowc_stores_incomplete=yes],
|
||||
[:])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
||||
dnl Test whether mbrtowc returns the correct value on empty input.
|
||||
|
||||
AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT],
|
||||
[
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CACHE_CHECK([whether mbrtowc works on empty input],
|
||||
[gl_cv_func_mbrtowc_empty_input],
|
||||
[
|
||||
dnl Initial guess, used when cross-compiling or when no suitable locale
|
||||
dnl is present.
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess no on AIX and glibc systems.
|
||||
aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
|
||||
*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <wchar.h>
|
||||
static wchar_t wc;
|
||||
static mbstate_t mbs;
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2;
|
||||
}]])],
|
||||
[gl_cv_func_mbrtowc_empty_input=yes],
|
||||
[gl_cv_func_mbrtowc_empty_input=no],
|
||||
[:])
|
||||
])
|
||||
])
|
||||
|
||||
dnl Test whether mbrtowc reports encoding errors in the C locale.
|
||||
dnl Although POSIX was never intended to allow this, the GNU C Library
|
||||
dnl and other implementations do it. See:
|
||||
dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932
|
||||
|
||||
AC_DEFUN([gl_MBRTOWC_C_LOCALE],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CACHE_CHECK([whether the C locale is free of encoding errors],
|
||||
[gl_cv_func_mbrtowc_C_locale_sans_EILSEQ],
|
||||
[
|
||||
dnl Initial guess, used when cross-compiling or when no suitable locale
|
||||
dnl is present.
|
||||
gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal"
|
||||
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <limits.h>
|
||||
#include <locale.h>
|
||||
#include <wchar.h>
|
||||
]], [[
|
||||
int i;
|
||||
char *locale = setlocale (LC_ALL, "C");
|
||||
if (! locale)
|
||||
return 2;
|
||||
for (i = CHAR_MIN; i <= CHAR_MAX; i++)
|
||||
{
|
||||
char c = i;
|
||||
wchar_t wc;
|
||||
mbstate_t mbs = { 0, };
|
||||
size_t ss = mbrtowc (&wc, &c, 1, &mbs);
|
||||
if (1 < ss)
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
]])],
|
||||
[gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes],
|
||||
[gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/mbrtowc.c and lib/lc-charset-dispatch.c.
|
||||
AC_DEFUN([gl_PREREQ_MBRTOWC], [
|
||||
AC_REQUIRE([AC_C_INLINE])
|
||||
:
|
||||
])
|
||||
|
||||
# Prerequisites of lib/mbtowc-lock.c.
|
||||
AC_DEFUN([gl_PREREQ_MBTOWC_LOCK],
|
||||
[
|
||||
gl_VISIBILITY
|
||||
])
|
||||
|
||||
|
||||
dnl From Paul Eggert
|
||||
|
||||
|
@ -547,24 +772,17 @@ AC_DEFUN([AC_FUNC_MBRTOWC],
|
|||
[
|
||||
dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
|
||||
AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
|
||||
gl_cv_func_mbrtowc,
|
||||
[gl_cv_func_mbrtowc],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
|
||||
included before <wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
|
||||
must be included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>]],
|
||||
[[#include <wchar.h>]],
|
||||
[[wchar_t wc;
|
||||
char const s[] = "";
|
||||
size_t n = 1;
|
||||
mbstate_t state;
|
||||
return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
|
||||
gl_cv_func_mbrtowc=yes,
|
||||
gl_cv_func_mbrtowc=no)])
|
||||
[gl_cv_func_mbrtowc=yes],
|
||||
[gl_cv_func_mbrtowc=no])])
|
||||
if test $gl_cv_func_mbrtowc = yes; then
|
||||
AC_DEFINE([HAVE_MBRTOWC], [1],
|
||||
[Define to 1 if mbrtowc and mbstate_t are properly declared.])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# mbsinit.m4 serial 8
|
||||
dnl Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc.
|
||||
# mbsinit.m4 serial 9
|
||||
dnl Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -16,15 +16,8 @@ AC_DEFUN([gl_FUNC_MBSINIT],
|
|||
if test $ac_cv_func_mbsinit = no; then
|
||||
HAVE_MBSINIT=0
|
||||
AC_CHECK_DECLS([mbsinit],,, [[
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>
|
||||
]])
|
||||
#include <wchar.h>
|
||||
]])
|
||||
if test $ac_cv_have_decl_mbsinit = yes; then
|
||||
dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
|
||||
dnl it does not have the function. Avoid a collision with gnulib's
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# mbstate_t.m4 serial 13
|
||||
dnl Copyright (C) 2000-2002, 2008-2013 Free Software Foundation, Inc.
|
||||
# mbstate_t.m4 serial 14
|
||||
dnl Copyright (C) 2000-2002, 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -20,14 +20,7 @@ AC_DEFUN([AC_TYPE_MBSTATE_T],
|
|||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[AC_INCLUDES_DEFAULT[
|
||||
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
|
||||
<wchar.h>.
|
||||
BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
|
||||
included before <wchar.h>. */
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <wchar.h>]],
|
||||
#include <wchar.h>]],
|
||||
[[mbstate_t x; return sizeof x;]])],
|
||||
[ac_cv_type_mbstate_t=yes],
|
||||
[ac_cv_type_mbstate_t=no])])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# mbtowc.m4 serial 2
|
||||
dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
# mbtowc.m4 serial 3
|
||||
dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -8,8 +8,13 @@ AC_DEFUN([gl_FUNC_MBTOWC],
|
|||
[
|
||||
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
||||
|
||||
if false; then
|
||||
REPLACE_MBTOWC=1
|
||||
AC_CHECK_FUNCS([mbtowc])
|
||||
if test $ac_cv_func_mbtowc = no; then
|
||||
HAVE_MBTOWC=0
|
||||
else
|
||||
if false; then
|
||||
REPLACE_MBTOWC=1
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
|
@ -1,35 +1,30 @@
|
|||
# memchr.m4 serial 12
|
||||
dnl Copyright (C) 2002-2004, 2009-2013 Free Software Foundation, Inc.
|
||||
# memchr.m4 serial 18
|
||||
dnl Copyright (C) 2002-2004, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
|
||||
dnl Check for prerequisites for memory fence checks.
|
||||
gl_FUNC_MMAP_ANON
|
||||
AC_CHECK_HEADERS_ONCE([sys/mman.h])
|
||||
AC_CHECK_FUNCS_ONCE([mprotect])
|
||||
|
||||
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
|
||||
m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [
|
||||
dnl These days, we assume memchr is present. But if support for old
|
||||
dnl platforms is desired:
|
||||
AC_CHECK_FUNCS_ONCE([memchr])
|
||||
if test $ac_cv_func_memchr = no; then
|
||||
HAVE_MEMCHR=0
|
||||
fi
|
||||
])
|
||||
if test $HAVE_MEMCHR = 1; then
|
||||
# Detect platform-specific bugs in some versions of glibc:
|
||||
# memchr should not dereference anything with length 0
|
||||
# http://bugzilla.redhat.com/499689
|
||||
# memchr should not dereference overestimated length after a match
|
||||
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
|
||||
# http://sourceware.org/bugzilla/show_bug.cgi?id=10162
|
||||
# Assume that memchr works on platforms that lack mprotect.
|
||||
AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works],
|
||||
[AC_RUN_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_REQUIRE([gl_STRING_H_DEFAULTS])
|
||||
# Detect platform-specific bugs in some versions of glibc:
|
||||
# memchr should not dereference anything with length 0
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=499689
|
||||
# memchr should not dereference overestimated length after a match
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=10162
|
||||
# memchr should cast the second argument to 'unsigned char'.
|
||||
# This bug exists in Android 4.3.
|
||||
# Assume that memchr works on platforms that lack mprotect.
|
||||
AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works],
|
||||
[AC_RUN_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <string.h>
|
||||
#if HAVE_SYS_MMAN_H
|
||||
# include <fcntl.h>
|
||||
|
@ -64,6 +59,7 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
|
|||
#endif
|
||||
if (fence)
|
||||
{
|
||||
/* Test against bugs on glibc systems. */
|
||||
if (memchr (fence, 0, 0))
|
||||
result |= 1;
|
||||
strcpy (fence - 9, "12345678");
|
||||
|
@ -71,15 +67,37 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
|
|||
result |= 2;
|
||||
if (memchr (fence - 1, 0, 3) != fence - 1)
|
||||
result |= 4;
|
||||
/* Test against bug on AIX 7.2. */
|
||||
if (memchr (fence - 4, '6', 16) != fence - 4)
|
||||
result |= 8;
|
||||
}
|
||||
/* Test against bug on Android 4.3. */
|
||||
{
|
||||
char input[3];
|
||||
input[0] = 'a';
|
||||
input[1] = 'b';
|
||||
input[2] = 'c';
|
||||
if (memchr (input, 0x789abc00 | 'b', 3) != input + 1)
|
||||
result |= 16;
|
||||
}
|
||||
return result;
|
||||
]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no],
|
||||
[dnl Be pessimistic for now.
|
||||
gl_cv_func_memchr_works="guessing no"])])
|
||||
if test "$gl_cv_func_memchr_works" != yes; then
|
||||
REPLACE_MEMCHR=1
|
||||
fi
|
||||
fi
|
||||
]])],
|
||||
[gl_cv_func_memchr_works=yes],
|
||||
[gl_cv_func_memchr_works=no],
|
||||
[case "$host_os" in
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_memchr_works="guessing no" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_memchr_works="guessing yes" ;;
|
||||
# If we don't know, obey --enable-cross-guesses.
|
||||
*) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
case "$gl_cv_func_memchr_works" in
|
||||
*yes) ;;
|
||||
*) REPLACE_MEMCHR=1 ;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Prerequisites of lib/memchr.c.
|
||||
|
|
44
gl/m4/minmax.m4
Normal file
44
gl/m4/minmax.m4
Normal file
|
@ -0,0 +1,44 @@
|
|||
# minmax.m4 serial 4
|
||||
dnl Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_PREREQ([2.53])
|
||||
|
||||
AC_DEFUN([gl_MINMAX],
|
||||
[
|
||||
AC_REQUIRE([gl_PREREQ_MINMAX])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/minmax.h.
|
||||
AC_DEFUN([gl_PREREQ_MINMAX],
|
||||
[
|
||||
gl_MINMAX_IN_HEADER([limits.h])
|
||||
gl_MINMAX_IN_HEADER([sys/param.h])
|
||||
])
|
||||
|
||||
dnl gl_MINMAX_IN_HEADER(HEADER)
|
||||
dnl The parameter has to be a literal header name; it cannot be macro,
|
||||
dnl nor a shell variable. (Because autoheader collects only AC_DEFINE
|
||||
dnl invocations with a literal macro name.)
|
||||
AC_DEFUN([gl_MINMAX_IN_HEADER],
|
||||
[
|
||||
m4_pushdef([header], AS_TR_SH([$1]))
|
||||
m4_pushdef([HEADER], AS_TR_CPP([$1]))
|
||||
AC_CACHE_CHECK([whether <$1> defines MIN and MAX],
|
||||
[gl_cv_minmax_in_]header,
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <$1>
|
||||
int x = MIN (42, 17);]],
|
||||
[[]])],
|
||||
[gl_cv_minmax_in_]header[=yes],
|
||||
[gl_cv_minmax_in_]header[=no])])
|
||||
if test $gl_cv_minmax_in_[]header = yes; then
|
||||
AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1,
|
||||
[Define to 1 if <$1> defines the MIN and MAX macros.])
|
||||
fi
|
||||
m4_popdef([HEADER])
|
||||
m4_popdef([header])
|
||||
])
|
148
gl/m4/mktime.m4
148
gl/m4/mktime.m4
|
@ -1,5 +1,5 @@
|
|||
# serial 25
|
||||
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation,
|
||||
# serial 37
|
||||
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -7,24 +7,40 @@ dnl with or without modifications, as long as this notice is preserved.
|
|||
|
||||
dnl From Jim Meyering.
|
||||
|
||||
AC_DEFUN([gl_FUNC_MKTIME],
|
||||
AC_DEFUN([gl_TIME_T_IS_SIGNED],
|
||||
[
|
||||
AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
|
||||
AC_CACHE_CHECK([whether time_t is signed],
|
||||
[gl_cv_time_t_is_signed],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <time.h>
|
||||
char time_t_signed[(time_t) -1 < 0 ? 1 : -1];]])],
|
||||
[gl_cv_time_t_is_signed=yes],
|
||||
[gl_cv_time_t_is_signed=no])])
|
||||
if test $gl_cv_time_t_is_signed = yes; then
|
||||
AC_DEFINE([TIME_T_IS_SIGNED], [1], [Define to 1 if time_t is signed.])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Test whether mktime works. Set gl_cv_func_working_mktime.
|
||||
AC_DEFUN([gl_FUNC_MKTIME_WORKS],
|
||||
[
|
||||
AC_REQUIRE([gl_TIME_T_IS_SIGNED])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
|
||||
dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained
|
||||
dnl in Autoconf and because it invokes AC_LIBOBJ.
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h])
|
||||
AC_CHECK_DECLS_ONCE([alarm])
|
||||
AC_REQUIRE([gl_MULTIARCH])
|
||||
if test $APPLE_UNIVERSAL_BUILD = 1; then
|
||||
# A universal build on Apple Mac OS X platforms.
|
||||
# The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
|
||||
# But we need a configuration result that is valid in both modes.
|
||||
gl_cv_func_working_mktime=no
|
||||
fi
|
||||
AC_CACHE_CHECK([for working mktime], [gl_cv_func_working_mktime],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[if test $APPLE_UNIVERSAL_BUILD = 1; then
|
||||
# A universal build on Apple Mac OS X platforms.
|
||||
# The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
|
||||
# But we need a configuration result that is valid in both modes.
|
||||
gl_cv_func_working_mktime="guessing no"
|
||||
else
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[/* Test program from Paul Eggert and Tony Leneis. */
|
||||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -38,8 +54,11 @@ AC_DEFUN([gl_FUNC_MKTIME],
|
|||
# include <signal.h>
|
||||
#endif
|
||||
|
||||
/* Work around redefinition to rpl_putenv by other config tests. */
|
||||
#undef putenv
|
||||
]GL_MDA_DEFINES[
|
||||
|
||||
#ifndef TIME_T_IS_SIGNED
|
||||
# define TIME_T_IS_SIGNED 0
|
||||
#endif
|
||||
|
||||
static time_t time_t_max;
|
||||
static time_t time_t_min;
|
||||
|
@ -63,7 +82,8 @@ spring_forward_gap ()
|
|||
instead of "TZ=America/Vancouver" in order to detect the bug even
|
||||
on systems that don't support the Olson extension, or don't have the
|
||||
full zoneinfo tables installed. */
|
||||
putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
|
||||
if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0)
|
||||
return -1;
|
||||
|
||||
tm.tm_year = 98;
|
||||
tm.tm_mon = 3;
|
||||
|
@ -151,7 +171,8 @@ year_2050_test ()
|
|||
instead of "TZ=America/Vancouver" in order to detect the bug even
|
||||
on systems that don't support the Olson extension, or don't have the
|
||||
full zoneinfo tables installed. */
|
||||
putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
|
||||
if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0)
|
||||
return -1;
|
||||
|
||||
t = mktime (&tm);
|
||||
|
||||
|
@ -162,6 +183,25 @@ year_2050_test ()
|
|||
|| (0 < t && answer - 120 <= t && t <= answer + 120));
|
||||
}
|
||||
|
||||
static int
|
||||
indiana_test ()
|
||||
{
|
||||
if (putenv ("TZ=America/Indiana/Indianapolis") != 0)
|
||||
return -1;
|
||||
struct tm tm;
|
||||
tm.tm_year = 1986 - 1900; tm.tm_mon = 4 - 1; tm.tm_mday = 28;
|
||||
tm.tm_hour = 16; tm.tm_min = 24; tm.tm_sec = 50; tm.tm_isdst = 0;
|
||||
time_t std = mktime (&tm);
|
||||
if (! (std == 515107490 || std == 515107503))
|
||||
return 1;
|
||||
|
||||
/* This platform supports TZDB, either without or with leap seconds.
|
||||
Return true if GNU Bug#48085 is absent. */
|
||||
tm.tm_isdst = 1;
|
||||
time_t dst = mktime (&tm);
|
||||
return std - dst == 60 * 60;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
@ -169,7 +209,6 @@ main ()
|
|||
time_t t, delta;
|
||||
int i, j;
|
||||
int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
|
||||
int time_t_signed = ! ((time_t) 0 < (time_t) -1);
|
||||
|
||||
#if HAVE_DECL_ALARM
|
||||
/* This test makes some buggy mktime implementations loop.
|
||||
|
@ -179,11 +218,11 @@ main ()
|
|||
alarm (60);
|
||||
#endif
|
||||
|
||||
time_t_max = (! time_t_signed
|
||||
time_t_max = (! TIME_T_IS_SIGNED
|
||||
? (time_t) -1
|
||||
: ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
|
||||
* 2 + 1));
|
||||
time_t_min = (! time_t_signed
|
||||
time_t_min = (! TIME_T_IS_SIGNED
|
||||
? (time_t) 0
|
||||
: time_t_signed_magnitude
|
||||
? ~ (time_t) 0
|
||||
|
@ -218,35 +257,62 @@ main ()
|
|||
result |= 16;
|
||||
if (! spring_forward_gap ())
|
||||
result |= 32;
|
||||
if (! year_2050_test ())
|
||||
if (! year_2050_test () || ! indiana_test ())
|
||||
result |= 64;
|
||||
return result;
|
||||
}]])],
|
||||
[gl_cv_func_working_mktime=yes],
|
||||
[gl_cv_func_working_mktime=no],
|
||||
[gl_cv_func_working_mktime=no])
|
||||
[gl_cv_func_working_mktime=yes],
|
||||
[gl_cv_func_working_mktime=no],
|
||||
[case "$host_os" in
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_working_mktime="guessing no" ;;
|
||||
*) gl_cv_func_working_mktime="$gl_cross_guess_normal" ;;
|
||||
esac
|
||||
])
|
||||
fi
|
||||
])
|
||||
|
||||
if test $gl_cv_func_working_mktime = no; then
|
||||
REPLACE_MKTIME=1
|
||||
else
|
||||
REPLACE_MKTIME=0
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [
|
||||
AC_REQUIRE([gl_FUNC_MKTIME])
|
||||
if test $REPLACE_MKTIME = 0; then
|
||||
dnl BeOS has __mktime_internal in libc, but other platforms don't.
|
||||
AC_CHECK_FUNC([__mktime_internal],
|
||||
[AC_DEFINE([mktime_internal], [__mktime_internal],
|
||||
[Define to the real name of the mktime_internal function.])
|
||||
],
|
||||
[dnl mktime works but it doesn't export __mktime_internal,
|
||||
dnl so we need to substitute our own mktime implementation.
|
||||
REPLACE_MKTIME=1
|
||||
])
|
||||
dnl Main macro of module 'mktime'.
|
||||
AC_DEFUN([gl_FUNC_MKTIME],
|
||||
[
|
||||
AC_REQUIRE([gl_TIME_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([gl_FUNC_MKTIME_WORKS])
|
||||
|
||||
REPLACE_MKTIME=0
|
||||
if test "$gl_cv_func_working_mktime" != yes; then
|
||||
REPLACE_MKTIME=1
|
||||
AC_DEFINE([NEED_MKTIME_WORKING], [1],
|
||||
[Define if the compilation of mktime.c should define 'mktime'
|
||||
with the algorithmic workarounds.])
|
||||
fi
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
REPLACE_MKTIME=1
|
||||
AC_DEFINE([NEED_MKTIME_WINDOWS], [1],
|
||||
[Define if the compilation of mktime.c should define 'mktime'
|
||||
with the native Windows TZ workaround.])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
dnl Main macro of module 'mktime-internal'.
|
||||
AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [
|
||||
AC_REQUIRE([gl_FUNC_MKTIME_WORKS])
|
||||
|
||||
WANT_MKTIME_INTERNAL=0
|
||||
dnl BeOS has __mktime_internal in libc, but other platforms don't.
|
||||
AC_CHECK_FUNC([__mktime_internal],
|
||||
[AC_DEFINE([mktime_internal], [__mktime_internal],
|
||||
[Define to the real name of the mktime_internal function.])
|
||||
],
|
||||
[dnl mktime works but it doesn't export __mktime_internal,
|
||||
dnl so we need to substitute our own mktime implementation.
|
||||
WANT_MKTIME_INTERNAL=1
|
||||
AC_DEFINE([NEED_MKTIME_INTERNAL], [1],
|
||||
[Define if the compilation of mktime.c should define 'mktime_internal'.])
|
||||
])
|
||||
])
|
||||
|
||||
# Prerequisites of lib/mktime.c.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# mmap-anon.m4 serial 10
|
||||
dnl Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
|
||||
# mmap-anon.m4 serial 12
|
||||
dnl Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -9,11 +9,11 @@ dnl with or without modifications, as long as this notice is preserved.
|
|||
# - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS
|
||||
# and MAP_ANON exist and have the same value.
|
||||
# - On HP-UX, only MAP_ANONYMOUS exists.
|
||||
# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists.
|
||||
# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix, only MAP_ANON exists.
|
||||
# - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be
|
||||
# used.
|
||||
|
||||
AC_DEFUN([gl_FUNC_MMAP_ANON],
|
||||
AC_DEFUN_ONCE([gl_FUNC_MMAP_ANON],
|
||||
[
|
||||
dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS.
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
|
|
26
gl/m4/mode_t.m4
Normal file
26
gl/m4/mode_t.m4
Normal file
|
@ -0,0 +1,26 @@
|
|||
# mode_t.m4 serial 2
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# For using mode_t, it's sufficient to use AC_TYPE_MODE_T and
|
||||
# include <sys/types.h>.
|
||||
|
||||
# Define PROMOTED_MODE_T to the type that is the result of "default argument
|
||||
# promotion" (ISO C 6.5.2.2.(6)) of the type mode_t.
|
||||
AC_DEFUN([gl_PROMOTED_TYPE_MODE_T],
|
||||
[
|
||||
AC_REQUIRE([AC_TYPE_MODE_T])
|
||||
AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [
|
||||
dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int',
|
||||
dnl and to itself otherwise. This assumption is not guaranteed by the ISO C
|
||||
dnl standard, but we don't know of any real-world counterexamples.
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]],
|
||||
[[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])],
|
||||
[gl_cv_promoted_mode_t='int'],
|
||||
[gl_cv_promoted_mode_t='mode_t'])
|
||||
])
|
||||
AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t],
|
||||
[Define to the type that is the result of default argument promotions of type mode_t.])
|
||||
])
|
|
@ -1,19 +1,338 @@
|
|||
# serial 11
|
||||
dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
|
||||
# serial 15
|
||||
dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl From Jim Meyering.
|
||||
|
||||
AC_PREREQ([2.60])
|
||||
|
||||
AC_DEFUN([gl_MOUNTLIST],
|
||||
[
|
||||
gl_LIST_MOUNTED_FILE_SYSTEMS([gl_cv_list_mounted_fs=yes],
|
||||
[gl_cv_list_mounted_fs=no])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CHECK_FUNCS([listmntent])
|
||||
AC_CHECK_HEADERS_ONCE([sys/param.h sys/statvfs.h])
|
||||
|
||||
# We must include grp.h before ucred.h on OSF V4.0, since ucred.h uses
|
||||
# NGROUPS (as the array dimension for a struct member) without a definition.
|
||||
AC_CHECK_HEADERS([sys/ucred.h], [], [], [#include <grp.h>])
|
||||
|
||||
AC_CHECK_HEADERS([sys/mount.h], [], [],
|
||||
[AC_INCLUDES_DEFAULT
|
||||
[#if HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
]])
|
||||
|
||||
AC_CHECK_HEADERS([mntent.h sys/fs_types.h])
|
||||
getfsstat_includes="\
|
||||
$ac_includes_default
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
#endif
|
||||
#if HAVE_SYS_UCRED_H
|
||||
# include <grp.h> /* needed for definition of NGROUPS */
|
||||
# include <sys/ucred.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
#endif
|
||||
#if HAVE_SYS_MOUNT_H
|
||||
# include <sys/mount.h>
|
||||
#endif
|
||||
#if HAVE_SYS_FS_TYPES_H
|
||||
# include <sys/fs_types.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
#endif
|
||||
"
|
||||
AC_CHECK_MEMBERS([struct fsstat.f_fstypename],,,[$getfsstat_includes])
|
||||
|
||||
# Determine how to get the list of mounted file systems.
|
||||
ac_list_mounted_fs=
|
||||
|
||||
# If the getmntent function is available but not in the standard library,
|
||||
# make sure LIBS contains the appropriate -l option.
|
||||
AC_FUNC_GETMNTENT
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# AIX.
|
||||
AC_CACHE_CHECK([for mntctl function and struct vmount],
|
||||
[fu_cv_sys_mounted_vmount],
|
||||
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <fshelp.h>]])],
|
||||
[fu_cv_sys_mounted_vmount=yes],
|
||||
[fu_cv_sys_mounted_vmount=no])])
|
||||
if test $fu_cv_sys_mounted_vmount = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_VMOUNT], [1],
|
||||
[Define if there is a function named mntctl that can be used to read
|
||||
the list of mounted file systems, and there is a system header file
|
||||
that declares 'struct vmount'. (AIX)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_cv_func_getmntent = yes; then
|
||||
|
||||
# This system has the getmntent function.
|
||||
# Determine whether it's the one-argument variant or the two-argument one.
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# glibc, HP-UX, IRIX, Cygwin, Android, also (obsolete) 4.3BSD, SunOS.
|
||||
AC_CACHE_CHECK([for one-argument getmntent function],
|
||||
[fu_cv_sys_mounted_getmntent1],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
/* SunOS 4.1.x /usr/include/mntent.h needs this for FILE */
|
||||
#include <stdio.h>
|
||||
|
||||
#include <mntent.h>
|
||||
#if defined __ANDROID__ /* Android */
|
||||
# undef MOUNTED
|
||||
# define MOUNTED "/proc/mounts"
|
||||
#elif !defined MOUNTED
|
||||
# if defined _PATH_MOUNTED /* GNU libc */
|
||||
# define MOUNTED _PATH_MOUNTED
|
||||
# endif
|
||||
# if defined MNT_MNTTAB /* HP-UX. */
|
||||
# define MOUNTED MNT_MNTTAB
|
||||
# endif
|
||||
#endif
|
||||
]],
|
||||
[[struct mntent *mnt = 0; char *table = MOUNTED;
|
||||
if (sizeof mnt && sizeof table) return 0;
|
||||
]])],
|
||||
[fu_cv_sys_mounted_getmntent1=yes],
|
||||
[fu_cv_sys_mounted_getmntent1=no])
|
||||
])
|
||||
if test $fu_cv_sys_mounted_getmntent1 = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTENT1], [1],
|
||||
[Define if there is a function named getmntent for reading the list
|
||||
of mounted file systems, and that function takes a single argument.
|
||||
(4.3BSD, SunOS, HP-UX, Irix)])
|
||||
AC_CHECK_FUNCS([setmntent endmntent hasmntopt])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Solaris >= 8.
|
||||
AC_CACHE_CHECK([for getextmntent function],
|
||||
[fu_cv_sys_mounted_getextmntent],
|
||||
[AC_EGREP_HEADER([getextmntent], [sys/mnttab.h],
|
||||
[fu_cv_sys_mounted_getextmntent=yes],
|
||||
[fu_cv_sys_mounted_getextmntent=no])])
|
||||
if test $fu_cv_sys_mounted_getextmntent = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETEXTMNTENT], [1],
|
||||
[Define if there is a function named getextmntent for reading the list
|
||||
of mounted file systems. (Solaris)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Solaris < 8, also (obsolete) SVR4.
|
||||
# Solaris >= 8 has the two-argument getmntent but is already handled above.
|
||||
AC_CACHE_CHECK([for two-argument getmntent function],
|
||||
[fu_cv_sys_mounted_getmntent2],
|
||||
[AC_EGREP_HEADER([getmntent], [sys/mnttab.h],
|
||||
[fu_cv_sys_mounted_getmntent2=yes],
|
||||
[fu_cv_sys_mounted_getmntent2=no])
|
||||
])
|
||||
if test $fu_cv_sys_mounted_getmntent2 = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTENT2], [1],
|
||||
[Define if there is a function named getmntent for reading the list of
|
||||
mounted file systems, and that function takes two arguments. (SVR4)])
|
||||
AC_CHECK_FUNCS([hasmntopt])
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# OSF/1, also (obsolete) Apple Darwin 1.3.
|
||||
# powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h
|
||||
|
||||
AC_CACHE_CHECK([for getfsstat function],
|
||||
[fu_cv_sys_mounted_getfsstat],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#include <sys/types.h>
|
||||
#if HAVE_STRUCT_FSSTAT_F_FSTYPENAME
|
||||
# define FS_TYPE(Ent) ((Ent).f_fstypename)
|
||||
#else
|
||||
# define FS_TYPE(Ent) mnt_names[(Ent).f_type]
|
||||
#endif
|
||||
$getfsstat_includes
|
||||
]],
|
||||
[[struct statfs *stats;
|
||||
int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT);
|
||||
char *t = FS_TYPE (*stats);
|
||||
]])],
|
||||
[fu_cv_sys_mounted_getfsstat=yes],
|
||||
[fu_cv_sys_mounted_getfsstat=no])
|
||||
])
|
||||
if test $fu_cv_sys_mounted_getfsstat = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETFSSTAT], [1],
|
||||
[Define if there is a function named getfsstat for reading the
|
||||
list of mounted file systems. (DEC Alpha running OSF/1)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# (obsolete) SVR3
|
||||
AC_CACHE_CHECK([for FIXME existence of three headers],
|
||||
[fu_cv_sys_mounted_fread_fstyp],
|
||||
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <sys/statfs.h>
|
||||
#include <sys/fstyp.h>
|
||||
#include <mnttab.h>
|
||||
]])],
|
||||
[fu_cv_sys_mounted_fread_fstyp=yes],
|
||||
[fu_cv_sys_mounted_fread_fstyp=no])
|
||||
])
|
||||
if test $fu_cv_sys_mounted_fread_fstyp = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_FREAD_FSTYP], [1],
|
||||
[Define if (like SVR2) there is no specific function for reading the
|
||||
list of mounted file systems, and your system has these header files:
|
||||
<sys/fstyp.h> and <sys/statfs.h>. (SVR3)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix, also (obsolete) 4.4BSD.
|
||||
# OSF/1 also has getmntinfo but is already handled above.
|
||||
# We cannot use AC_CHECK_FUNCS([getmntinfo]) here, because at the linker
|
||||
# level the function is sometimes called getmntinfo64 or getmntinfo$INODE64
|
||||
# on Mac OS X, __getmntinfo13 on NetBSD and Minix, _F64_getmntinfo on OSF/1.
|
||||
AC_CACHE_CHECK([for getmntinfo function],
|
||||
[fu_cv_sys_mounted_getmntinfo],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#if HAVE_SYS_MOUNT_H
|
||||
# include <sys/mount.h>
|
||||
#endif
|
||||
#if HAVE_SYS_STATVFS_H
|
||||
# include <sys/statvfs.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
]],
|
||||
[[int count = getmntinfo (NULL, MNT_WAIT);
|
||||
]])],
|
||||
[fu_cv_sys_mounted_getmntinfo=yes],
|
||||
[fu_cv_sys_mounted_getmntinfo=no])
|
||||
])
|
||||
if test $fu_cv_sys_mounted_getmntinfo = yes; then
|
||||
AC_CACHE_CHECK([whether getmntinfo returns statvfs structures],
|
||||
[fu_cv_sys_mounted_getmntinfo2],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#if HAVE_SYS_MOUNT_H
|
||||
# include <sys/mount.h>
|
||||
#endif
|
||||
#if HAVE_SYS_STATVFS_H
|
||||
# include <sys/statvfs.h>
|
||||
#endif
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
int getmntinfo (struct statfs **, int);
|
||||
]], [[]])],
|
||||
[fu_cv_sys_mounted_getmntinfo2=no],
|
||||
[fu_cv_sys_mounted_getmntinfo2=yes])
|
||||
])
|
||||
if test $fu_cv_sys_mounted_getmntinfo2 = no; then
|
||||
# Mac OS X, FreeBSD, OpenBSD, also (obsolete) 4.4BSD.
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTINFO], [1],
|
||||
[Define if there is a function named getmntinfo for reading the
|
||||
list of mounted file systems and it returns an array of
|
||||
'struct statfs'. (4.4BSD, Darwin)])
|
||||
else
|
||||
# NetBSD, Minix.
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_GETMNTINFO2], [1],
|
||||
[Define if there is a function named getmntinfo for reading the
|
||||
list of mounted file systems and it returns an array of
|
||||
'struct statvfs'. (NetBSD 3.0)])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Haiku, also (obsolete) BeOS.
|
||||
AC_CHECK_FUNCS([next_dev fs_stat_dev])
|
||||
AC_CHECK_HEADERS([fs_info.h])
|
||||
AC_CACHE_CHECK([for BEOS mounted file system support functions],
|
||||
[fu_cv_sys_mounted_fs_stat_dev],
|
||||
[if test $ac_cv_header_fs_info_h = yes \
|
||||
&& test $ac_cv_func_next_dev = yes \
|
||||
&& test $ac_cv_func_fs_stat_dev = yes; then
|
||||
fu_cv_sys_mounted_fs_stat_dev=yes
|
||||
else
|
||||
fu_cv_sys_mounted_fs_stat_dev=no
|
||||
fi
|
||||
])
|
||||
if test $fu_cv_sys_mounted_fs_stat_dev = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_FS_STAT_DEV], [1],
|
||||
[Define if there are functions named next_dev and fs_stat_dev for
|
||||
reading the list of mounted file systems. (BeOS)])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
# Interix / BSD alike statvfs
|
||||
# the code is really interix specific, so make sure, we're on it.
|
||||
case "$host" in
|
||||
*-interix*)
|
||||
AC_CHECK_FUNCS([statvfs])
|
||||
if test $ac_cv_func_statvfs = yes; then
|
||||
ac_list_mounted_fs=found
|
||||
AC_DEFINE([MOUNTED_INTERIX_STATVFS], [1],
|
||||
[Define if we are on interix, and ought to use statvfs plus
|
||||
some special knowledge on where mounted file systems can be
|
||||
found. (Interix)])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test -z "$ac_list_mounted_fs"; then
|
||||
AC_MSG_ERROR([could not determine how to read list of mounted file systems])
|
||||
# FIXME -- no need to abort building the whole package
|
||||
# Can't build mountlist.c or anything that needs its functions
|
||||
fi
|
||||
|
||||
if test $ac_list_mounted_fs = found; then
|
||||
gl_cv_list_mounted_fs=yes
|
||||
else
|
||||
gl_cv_list_mounted_fs=no
|
||||
fi
|
||||
])
|
||||
|
||||
# Prerequisites of lib/mountlist.c not done by gl_LIST_MOUNTED_FILE_SYSTEMS.
|
||||
# Prerequisites of lib/mountlist.c not done by gl_MOUNTLIST.
|
||||
AC_DEFUN([gl_PREREQ_MOUNTLIST_EXTRA],
|
||||
[
|
||||
dnl Note gl_LIST_MOUNTED_FILE_SYSTEMS checks for mntent.h, not sys/mntent.h.
|
||||
dnl Note gl_MOUNTLIST checks for mntent.h, not sys/mntent.h.
|
||||
AC_CHECK_HEADERS([sys/mntent.h])
|
||||
AC_HEADER_MAJOR()dnl for use of makedev ()
|
||||
gl_FSTYPENAME
|
||||
])
|
||||
|
||||
# Replace Autoconf's AC_FUNC_GETMNTENT to omit checks that are unnecessary
|
||||
# nowadays.
|
||||
AC_DEFUN([AC_FUNC_GETMNTENT],
|
||||
[
|
||||
# getmntent is in the standard C library on most systems, but in -lgen on
|
||||
# Unixware.
|
||||
AC_SEARCH_LIBS([getmntent], [gen])
|
||||
AC_CHECK_FUNCS([getmntent])
|
||||
])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# msvc-inval.m4 serial 1
|
||||
dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# msvc-nothrow.m4 serial 1
|
||||
dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# multiarch.m4 serial 7
|
||||
dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
|
||||
# multiarch.m4 serial 9
|
||||
dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -21,37 +21,40 @@ dnl with or without modifications, as long as this notice is preserved.
|
|||
AC_DEFUN_ONCE([gl_MULTIARCH],
|
||||
[
|
||||
dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN.
|
||||
gl_cv_c_multiarch=no
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifndef __APPLE_CC__
|
||||
not a universal capable compiler
|
||||
#endif
|
||||
typedef int dummy;
|
||||
]])],
|
||||
[
|
||||
dnl Check for potential -arch flags. It is not universal unless
|
||||
dnl there are at least two -arch flags with different values.
|
||||
arch=
|
||||
prev=
|
||||
for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
|
||||
if test -n "$prev"; then
|
||||
case $word in
|
||||
i?86 | x86_64 | ppc | ppc64)
|
||||
if test -z "$arch" || test "$arch" = "$word"; then
|
||||
arch="$word"
|
||||
else
|
||||
gl_cv_c_multiarch=yes
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
prev=
|
||||
else
|
||||
if test "x$word" = "x-arch"; then
|
||||
prev=arch
|
||||
fi
|
||||
fi
|
||||
done
|
||||
AC_CACHE_CHECK([whether the compiler produces multi-arch binaries],
|
||||
[gl_cv_c_multiarch],
|
||||
[gl_cv_c_multiarch=no
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifndef __APPLE_CC__
|
||||
not a universal capable compiler
|
||||
#endif
|
||||
typedef int dummy;
|
||||
]])],
|
||||
[
|
||||
dnl Check for potential -arch flags. It is not universal unless
|
||||
dnl there are at least two -arch flags with different values.
|
||||
arch=
|
||||
prev=
|
||||
for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
|
||||
if test -n "$prev"; then
|
||||
case $word in
|
||||
i?86 | x86_64 | ppc | ppc64 | arm | arm64)
|
||||
if test -z "$arch" || test "$arch" = "$word"; then
|
||||
arch="$word"
|
||||
else
|
||||
gl_cv_c_multiarch=yes
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
prev=
|
||||
else
|
||||
if test "x$word" = "x-arch"; then
|
||||
prev=arch
|
||||
fi
|
||||
fi
|
||||
done
|
||||
])
|
||||
])
|
||||
if test $gl_cv_c_multiarch = yes; then
|
||||
APPLE_UNIVERSAL_BUILD=1
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# netdb_h.m4 serial 11
|
||||
dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
|
||||
# netdb_h.m4 serial 15
|
||||
dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
AC_DEFUN([gl_HEADER_NETDB],
|
||||
AC_DEFUN_ONCE([gl_NETDB_H],
|
||||
[
|
||||
AC_REQUIRE([gl_NETDB_H_DEFAULTS])
|
||||
gl_CHECK_NEXT_HEADERS([netdb.h])
|
||||
|
@ -21,18 +21,33 @@ AC_DEFUN([gl_HEADER_NETDB],
|
|||
[getaddrinfo freeaddrinfo gai_strerror getnameinfo])
|
||||
])
|
||||
|
||||
# gl_NETDB_MODULE_INDICATOR([modulename])
|
||||
# sets the shell variable that indicates the presence of the given module
|
||||
# to a C preprocessor expression that will evaluate to 1.
|
||||
# This macro invocation must not occur in macros that are AC_REQUIREd.
|
||||
AC_DEFUN([gl_NETDB_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
|
||||
AC_REQUIRE([gl_NETDB_H_DEFAULTS])
|
||||
dnl Ensure to expand the default settings once only.
|
||||
gl_NETDB_H_REQUIRE_DEFAULTS
|
||||
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
||||
dnl Define it also as a C macro, for the benefit of the unit tests.
|
||||
gl_MODULE_INDICATOR_FOR_TESTS([$1])
|
||||
])
|
||||
|
||||
# Initializes the default values for AC_SUBSTed shell variables.
|
||||
# This macro must not be AC_REQUIREd. It must only be invoked, and only
|
||||
# outside of macros or in macros that are not AC_REQUIREd.
|
||||
AC_DEFUN([gl_NETDB_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_NETDB_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETADDRINFO])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_NETDB_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_NETDB_H_DEFAULTS])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_NETDB_H_DEFAULTS],
|
||||
[
|
||||
GNULIB_GETADDRINFO=0; AC_SUBST([GNULIB_GETADDRINFO])
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_STRUCT_ADDRINFO=1; AC_SUBST([HAVE_STRUCT_ADDRINFO])
|
||||
HAVE_DECL_FREEADDRINFO=1; AC_SUBST([HAVE_DECL_FREEADDRINFO])
|
||||
|
@ -40,4 +55,5 @@ AC_DEFUN([gl_NETDB_H_DEFAULTS],
|
|||
HAVE_DECL_GETADDRINFO=1; AC_SUBST([HAVE_DECL_GETADDRINFO])
|
||||
HAVE_DECL_GETNAMEINFO=1; AC_SUBST([HAVE_DECL_GETNAMEINFO])
|
||||
REPLACE_GAI_STRERROR=0; AC_SUBST([REPLACE_GAI_STRERROR])
|
||||
REPLACE_GETADDRINFO=0; AC_SUBST([REPLACE_GETADDRINFO])
|
||||
])
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# netinet_in_h.m4 serial 5
|
||||
dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
|
||||
# netinet_in_h.m4 serial 6
|
||||
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
@ -14,9 +14,9 @@ AC_DEFUN([gl_HEADER_NETINET_IN],
|
|||
[gl_cv_header_netinet_in_h_selfcontained=no])
|
||||
])
|
||||
if test $gl_cv_header_netinet_in_h_selfcontained = yes; then
|
||||
NETINET_IN_H=''
|
||||
GL_GENERATE_NETINET_IN_H=false
|
||||
else
|
||||
NETINET_IN_H='netinet/in.h'
|
||||
GL_GENERATE_NETINET_IN_H=true
|
||||
AC_CHECK_HEADERS([netinet/in.h])
|
||||
gl_CHECK_NEXT_HEADERS([netinet/in.h])
|
||||
if test $ac_cv_header_netinet_in_h = yes; then
|
||||
|
@ -26,6 +26,4 @@ AC_DEFUN([gl_HEADER_NETINET_IN],
|
|||
fi
|
||||
AC_SUBST([HAVE_NETINET_IN_H])
|
||||
fi
|
||||
AC_SUBST([NETINET_IN_H])
|
||||
AM_CONDITIONAL([GL_GENERATE_NETINET_IN_H], [test -n "$NETINET_IN_H"])
|
||||
])
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue