update to gnulib d77a23b15925e5554325ea3553c940133734eee3
* configure.ac: Update minimum autoconf version. * lib/config.charset, lib/ref-add.sin, lib/ref-del.sin, m4/closeout.m4, m4/close-stream.m4, m4/configmake.m4, m4/glibc21.m4, m4/hard-locale.m4: Remove. * lib/alloca.c, lib/alloca.in.h, lib/argmatch.c, lib/argmatch.h, lib/arg-nonnull.h, lib/argp-ba.c, lib/argp-eexst.c, lib/argp-fmtstream.c, lib/argp-fmtstream.h, lib/argp-fs-xinl.c, lib/argp.h, lib/argp-help.c, lib/argp-namefrob.h, lib/argp-parse.c, lib/argp-pin.c, lib/argp-pv.c, lib/argp-pvh.c, lib/argp-xinl.c, lib/asnprintf.c, lib/basename-lgpl.c, lib/c-ctype.h, lib/c++defs.h, lib/closeout.c, lib/closeout.h, lib/close-stream.c, lib/c-strcasecmp.c, lib/c-strcaseeq.h, lib/c-strcase.h, lib/c-strncasecmp.c, lib/dirname.h, lib/dirname-lgpl.c, lib/dosname.h, lib/errno.in.h, lib/error.c, lib/error.h, lib/exitfail.c, lib/exitfail.h, lib/fcntl.in.h, lib/filename.h, lib/float.c, lib/float+.h, lib/float.in.h, lib/fpending.c, lib/fpending.h, lib/getopt1.c, lib/getopt.c, lib/getopt-cdefs.in.h, lib/getopt-core.h, lib/getopt-ext.h, lib/getopt.in.h, lib/getopt_int.h, lib/getopt-pfx-core.h, lib/getopt-pfx-ext.h, lib/getprogname.c, lib/getprogname.h, lib/gettext.h, lib/gettimeofday.c, lib/hard-locale.c, lib/hard-locale.h, lib/intprops.h, lib/isatty.c, lib/itold.c, lib/limits.in.h, lib/localcharset.c, lib/localcharset.h, lib/localtime-buffer.c, lib/localtime-buffer.h, lib/lstat.c, lib/Makefile.am, lib/malloca.c, lib/malloca.h, lib/malloc.c, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c, lib/memchr.valgrind, lib/mempcpy.c, lib/minmax.h, lib/mkstemp.c, lib/mkstemps.c, lib/msvc-inval.c, lib/msvc-inval.h, lib/msvc-nothrow.c, lib/msvc-nothrow.h, lib/_Noreturn.h, lib/pathmax.h, lib/printf-args.c, lib/printf-args.h, lib/printf-parse.c, lib/printf-parse.h, lib/progname.c, lib/progname.h, lib/quotearg.c, lib/quotearg.h, lib/quote.h, lib/rawmemchr.c, lib/rawmemchr.valgrind, lib/secure_getenv.c, lib/size_max.h, lib/sleep.c, lib/stat.c, lib/stat-time.h, lib/stat-w32.c, lib/stat-w32.h, lib/stdalign.in.h, lib/stdbool.in.h, lib/stddef.in.h, lib/stdint.in.h, lib/stdio-impl.h, lib/stdio.in.h, lib/stdlib.in.h, lib/stpcpy.c, lib/strcasecmp.c, lib/strchrnul.c, lib/strchrnul.valgrind, lib/streq.h, lib/strerror.c, lib/strerror-override.c, lib/strerror-override.h, lib/string.in.h, lib/strings.in.h, lib/stripslash.c, lib/strncasecmp.c, lib/strndup.c, lib/strnlen.c, lib/strverscmp.c, lib/sysexits.in.h, lib/sys_stat.in.h, lib/sys_time.in.h, lib/sys_types.in.h, lib/sys_wait.in.h, lib/tempname.c, lib/tempname.h, lib/time.in.h, lib/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h, lib/vsnprintf.c, lib/warn-on-use.h, lib/wchar.in.h, lib/wctype.in.h, lib/xalloc-die.c, lib/xalloc.h, lib/xalloc-oversized.h, lib/xmalloc.c, lib/xsize.h, m4/00gnulib.m4, m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4, m4/codeset.m4, m4/dirname.m4, m4/double-slash-root.m4, m4/eealloc.m4, m4/errno_h.m4, m4/error.m4, m4/exponentd.m4, m4/extensions.m4, m4/extern-inline.m4, m4/fcntl_h.m4, m4/fcntl-o.m4, m4/float_h.m4, m4/fpending.m4, m4/getopt.m4, m4/getprogname.m4, m4/gettimeofday.m4, m4/gnulib-cache.m4, m4/gnulib-common.m4, m4/gnulib-comp.m4, m4/gnulib-tool.m4, m4/include_next.m4, m4/intmax_t.m4, m4/inttypes_h.m4, m4/isatty.m4, m4/largefile.m4, m4/limits-h.m4, m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4, m4/localtime-buffer.m4, m4/longlong.m4, m4/lstat.m4, m4/malloca.m4, m4/malloc.m4, m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4, m4/mbstate_t.m4, m4/memchr.m4, m4/mempcpy.m4, m4/minmax.m4, m4/mkstemp.m4, m4/mkstemps.m4, m4/mmap-anon.m4, m4/msvc-inval.m4, m4/msvc-nothrow.m4, m4/multiarch.m4, m4/nocrash.m4, m4/off_t.m4, m4/pathmax.m4, m4/printf.m4, m4/quotearg.m4, m4/quote.m4, m4/rawmemchr.m4, m4/secure_getenv.m4, m4/size_max.m4, m4/sleep.m4, m4/ssize_t.m4, m4/stat.m4, m4/stat-time.m4, m4/stdalign.m4, m4/stdbool.m4, m4/stddef_h.m4, m4/stdint_h.m4, m4/stdint.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/stpcpy.m4, m4/strcase.m4, m4/strchrnul.m4, m4/strerror.m4, m4/string_h.m4, m4/strings_h.m4, m4/strndup.m4, m4/strnlen.m4, m4/strverscmp.m4, m4/sysexits.m4, m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/sys_time_h.m4, m4/sys_types_h.m4, m4/sys_wait_h.m4, m4/tempname.m4, m4/time_h.m4, m4/unistd_h.m4, m4/vasnprintf.m4, m4/vsnprintf.m4, m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4, m4/wctype_h.m4, m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4: Update. * lib/cdefs.h, lib/glthread/lock.c, lib/glthread/lock.h, lib/glthread/threadlib.c, lib/libc-config.h, lib/mkdir.c, lib/windows-initguard.h, lib/windows-mutex.c, lib/windows-mutex.h, lib/windows-once.c, lib/windows-once.h, lib/windows-recmutex.c, lib/windows-recmutex.h, lib/windows-rwlock.c, lib/windows-rwlock.h, m4/host-cpu-c-abi.m4, m4/__inline.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4, m4/lock.m4, m4/mkdir.m4, m4/pthread_rwlock_rdlock.m4, m4/std-gnu11.m4, m4/threadlib.m4, tools/config.rpath: New files.
This commit is contained in:
parent
25eb9d4979
commit
8868bc67ba
281 changed files with 10229 additions and 2357 deletions
|
|
@ -1,5 +1,5 @@
|
|||
# 00gnulib.m4 serial 3
|
||||
dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2009-2019 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.
|
||||
|
|
|
|||
22
m4/__inline.m4
Normal file
22
m4/__inline.m4
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Test for __inline keyword
|
||||
dnl Copyright 2017-2019 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
|
||||
])
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
# absolute-header.m4 serial 16
|
||||
dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2006-2019 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.
|
||||
|
|
|
|||
11
m4/alloca.m4
11
m4/alloca.m4
|
|
@ -1,5 +1,5 @@
|
|||
# alloca.m4 serial 14
|
||||
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2018 Free Software Foundation,
|
||||
# alloca.m4 serial 15
|
||||
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2019 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,
|
||||
|
|
@ -37,6 +37,13 @@ AC_DEFUN([gl_FUNC_ALLOCA],
|
|||
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.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# argp.m4 serial 15
|
||||
dnl Copyright (C) 2003-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003-2019 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,11 +0,0 @@
|
|||
#serial 4
|
||||
dnl Copyright (C) 2006-2007, 2009-2018 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 Prerequisites of lib/close-stream.c.
|
||||
AC_DEFUN([gl_CLOSE_STREAM],
|
||||
[
|
||||
:
|
||||
])
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
# closeout.m4 serial 6
|
||||
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2018 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.
|
||||
|
||||
dnl Prerequisites of lib/closeout.c.
|
||||
AC_DEFUN([gl_CLOSEOUT],
|
||||
[
|
||||
:
|
||||
])
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# codeset.m4 serial 5 (gettext-0.18.2)
|
||||
dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019 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,55 +0,0 @@
|
|||
# configmake.m4 serial 2
|
||||
dnl Copyright (C) 2010-2018 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, and runstatedir
|
||||
# in 2.70) or automake 1.9.6 (pkglibexecdir wasn't supported until 1.10b,
|
||||
# and runstatedir in 1.14.1).
|
||||
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 Added in autoconf 2.70
|
||||
if test "x$runstatedir" = x; then
|
||||
AC_SUBST([runstatedir], ['${localstatedir}/run'])
|
||||
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,5 +1,5 @@
|
|||
#serial 10 -*- autoconf -*-
|
||||
dnl Copyright (C) 2002-2006, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002-2006, 2009-2019 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 @@
|
|||
# double-slash-root.m4 serial 4 -*- Autoconf -*-
|
||||
dnl Copyright (C) 2006, 2008-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2006, 2008-2019 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 @@
|
|||
# eealloc.m4 serial 3
|
||||
dnl Copyright (C) 2003, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003, 2009-2019 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,9 +1,11 @@
|
|||
# errno_h.m4 serial 12
|
||||
dnl Copyright (C) 2004, 2006, 2008-2018 Free Software Foundation, Inc.
|
||||
# errno_h.m4 serial 13
|
||||
dnl Copyright (C) 2004, 2006, 2008-2019 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])
|
||||
|
|
@ -129,9 +131,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
|
||||
|
||||
# Copyright (C) 1996-1998, 2001-2004, 2009-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-1998, 2001-2004, 2009-2019 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# exponentd.m4 serial 3
|
||||
dnl Copyright (C) 2007-2008, 2010-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2007-2008, 2010-2019 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,7 +1,7 @@
|
|||
# serial 18 -*- Autoconf -*-
|
||||
# Enable extensions on systems that normally disable them.
|
||||
|
||||
# Copyright (C) 2003, 2006-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003, 2006-2019 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.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
dnl 'extern inline' a la ISO C99.
|
||||
|
||||
dnl Copyright 2012-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright 2012-2019 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.
|
||||
|
|
@ -25,7 +25,8 @@ AC_DEFUN([gl_EXTERN_INLINE],
|
|||
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. This bug is known to occur on:
|
||||
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
|
||||
|
|
@ -38,7 +39,18 @@ AC_DEFUN([gl_EXTERN_INLINE],
|
|||
|
||||
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. */
|
||||
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 __header_inline \
|
||||
|
|
|
|||
|
|
@ -1,22 +1,20 @@
|
|||
# fcntl-o.m4 serial 5
|
||||
dnl Copyright (C) 2006, 2009-2018 Free Software Foundation, Inc.
|
||||
# fcntl-o.m4 serial 6
|
||||
dnl Copyright (C) 2006, 2009-2019 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])
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# serial 15
|
||||
# Configure fcntl.h.
|
||||
dnl Copyright (C) 2006-2007, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2006-2007, 2009-2019 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 @@
|
|||
# float_h.m4 serial 12
|
||||
dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2007, 2009-2019 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,6 +1,6 @@
|
|||
# serial 22
|
||||
|
||||
# Copyright (C) 2000-2001, 2004-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2000-2001, 2004-2019 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.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# getopt.m4 serial 46
|
||||
dnl Copyright (C) 2002-2006, 2008-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002-2006, 2008-2019 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,6 +1,6 @@
|
|||
# getprogname.m4 - check for getprogname or replacements for it
|
||||
|
||||
# Copyright (C) 2016-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2016-2019 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.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# serial 25
|
||||
# serial 26
|
||||
|
||||
# Copyright (C) 2001-2003, 2005, 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2003, 2005, 2007, 2009-2019 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.
|
||||
|
|
@ -105,6 +105,8 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
|
|||
case "$host_os" in
|
||||
# Guess all is fine on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
|
||||
# Guess all is fine on musl systems.
|
||||
*-musl*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
# glibc21.m4 serial 5
|
||||
dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2018 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,4 +1,4 @@
|
|||
# Copyright (C) 2002-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2019 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
|
||||
|
|
@ -27,7 +27,29 @@
|
|||
|
||||
|
||||
# Specification in the form of a command-line invocation:
|
||||
# gnulib-tool --import --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files argmatch argp closeout error isatty mkstemp mkstemps progname secure_getenv stpcpy strverscmp sys_wait
|
||||
# gnulib-tool --import \
|
||||
# --lib=libgnu \
|
||||
# --source-base=lib \
|
||||
# --m4-base=m4 \
|
||||
# --doc-base=doc \
|
||||
# --tests-base=tests \
|
||||
# --aux-dir=tools \
|
||||
# --no-conditional-dependencies \
|
||||
# --libtool \
|
||||
# --macro-prefix=gl \
|
||||
# --no-vc-files \
|
||||
# argmatch \
|
||||
# argp \
|
||||
# closeout \
|
||||
# error \
|
||||
# isatty \
|
||||
# mkstemp \
|
||||
# mkstemps \
|
||||
# progname \
|
||||
# secure_getenv \
|
||||
# stpcpy \
|
||||
# strverscmp \
|
||||
# sys_wait
|
||||
|
||||
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
||||
gl_LOCAL_DIR([])
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
# gnulib-common.m4 serial 39
|
||||
dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
|
||||
# gnulib-common.m4 serial 44
|
||||
dnl Copyright (C) 2007-2019 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.62])
|
||||
|
||||
# gl_COMMON
|
||||
# is expanded unconditionally through gnulib-tool magic.
|
||||
AC_DEFUN([gl_COMMON], [
|
||||
|
|
@ -14,12 +16,18 @@ AC_DEFUN([gl_COMMON], [
|
|||
AC_DEFUN([gl_COMMON_BODY], [
|
||||
AH_VERBATIM([_Noreturn],
|
||||
[/* The _Noreturn keyword of C11. */
|
||||
#if ! (defined _Noreturn \
|
||||
|| (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
|
||||
# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
|
||||
|| 0x5110 <= __SUNPRO_C)
|
||||
#ifndef _Noreturn
|
||||
# if (defined __cplusplus \
|
||||
&& ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
|
||||
|| (defined _MSC_VER && 1900 <= _MSC_VER)))
|
||||
# define _Noreturn [[noreturn]]
|
||||
# elif ((!defined __cplusplus || defined __clang__) \
|
||||
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|
||||
|| 4 < __GNUC__ + (7 <= __GNUC_MINOR__)))
|
||||
/* _Noreturn works as-is. */
|
||||
# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
|
||||
# define _Noreturn __attribute__ ((__noreturn__))
|
||||
# elif defined _MSC_VER && 1200 <= _MSC_VER
|
||||
# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
|
||||
# define _Noreturn __declspec (noreturn)
|
||||
# else
|
||||
# define _Noreturn
|
||||
|
|
@ -79,6 +87,33 @@ AC_DEFUN([gl_COMMON_BODY], [
|
|||
#else
|
||||
# define _GL_ATTRIBUTE_MALLOC /* empty */
|
||||
#endif
|
||||
])
|
||||
AH_VERBATIM([async_safe],
|
||||
[/* The _GL_ASYNC_SAFE marker should be attached to functions that are
|
||||
signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
|
||||
invoked from such signal handlers. Such functions have some restrictions:
|
||||
* All functions that it calls should be marked _GL_ASYNC_SAFE as well,
|
||||
or should be listed as async-signal-safe in POSIX
|
||||
<http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
|
||||
section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
|
||||
particular, are NOT async-signal-safe.
|
||||
* All memory locations (variables and struct fields) that these functions
|
||||
access must be marked 'volatile'. This holds for both read and write
|
||||
accesses. Otherwise the compiler might optimize away stores to and
|
||||
reads from such locations that occur in the program, depending on its
|
||||
data flow analysis. For example, when the program contains a loop
|
||||
that is intended to inspect a variable set from within a signal handler
|
||||
while (!signal_occurred)
|
||||
;
|
||||
the compiler is allowed to transform this into an endless loop if the
|
||||
variable 'signal_occurred' is not declared 'volatile'.
|
||||
Additionally, recall that:
|
||||
* A signal handler should not modify errno (except if it is a handler
|
||||
for a fatal signal and ends by raising the same signal again, thus
|
||||
provoking the termination of the process). If it invokes a function
|
||||
that may clobber errno, it needs to save and restore the value of
|
||||
errno. */
|
||||
#define _GL_ASYNC_SAFE
|
||||
])
|
||||
dnl Preparation for running test programs:
|
||||
dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
|
||||
|
|
@ -214,13 +249,6 @@ AC_DEFUN([gl_FEATURES_H],
|
|||
AC_SUBST([HAVE_FEATURES_H])
|
||||
])
|
||||
|
||||
# m4_foreach_w
|
||||
# is a backport of autoconf-2.59c's m4_foreach_w.
|
||||
# Remove this macro when we can assume autoconf >= 2.60.
|
||||
m4_ifndef([m4_foreach_w],
|
||||
[m4_define([m4_foreach_w],
|
||||
[m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
|
||||
|
||||
# AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH])
|
||||
# ----------------------------------------------------
|
||||
# Backport of autoconf-2.63b's macro.
|
||||
|
|
@ -233,7 +261,6 @@ m4_ifndef([AS_VAR_IF],
|
|||
# Modifies the value of the shell variable CC in an attempt to make $CC
|
||||
# understand ISO C99 source code.
|
||||
# This is like AC_PROG_CC_C99, except that
|
||||
# - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60,
|
||||
# - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC
|
||||
# <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00367.html>,
|
||||
# but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99
|
||||
|
|
@ -322,25 +349,6 @@ Amsterdam
|
|||
AC_SUBST([RANLIB])
|
||||
])
|
||||
|
||||
# AC_PROG_MKDIR_P
|
||||
# is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix
|
||||
# for interoperability with automake-1.9.6 from autoconf-2.62.
|
||||
# Remove this macro when we can assume autoconf >= 2.62 or
|
||||
# autoconf >= 2.60 && automake >= 1.10.
|
||||
# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],[
|
||||
m4_ifdef([AC_PROG_MKDIR_P], [
|
||||
dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed.
|
||||
m4_define([AC_PROG_MKDIR_P],
|
||||
m4_defn([AC_PROG_MKDIR_P])[
|
||||
AC_SUBST([MKDIR_P])])], [
|
||||
dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P.
|
||||
AC_DEFUN_ONCE([AC_PROG_MKDIR_P],
|
||||
[AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
|
||||
MKDIR_P='$(mkdir_p)'
|
||||
AC_SUBST([MKDIR_P])])])
|
||||
])
|
||||
|
||||
# AC_C_RESTRICT
|
||||
# This definition is copied from post-2.69 Autoconf and overrides the
|
||||
# AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed
|
||||
|
|
@ -354,16 +362,16 @@ AC_DEFUN([AC_C_RESTRICT],
|
|||
for ac_kw in __restrict __restrict__ _Restrict restrict; do
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[typedef int *int_ptr;
|
||||
int foo (int_ptr $ac_kw ip) { return ip[0]; }
|
||||
int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
|
||||
int bar (int ip[$ac_kw]) { return ip[0]; }
|
||||
]],
|
||||
[[int s[1];
|
||||
int *$ac_kw t = s;
|
||||
t[0] = 0;
|
||||
return foo (t) + bar (t);
|
||||
]])],
|
||||
[[typedef int *int_ptr;
|
||||
int foo (int_ptr $ac_kw ip) { return ip[0]; }
|
||||
int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
|
||||
int bar (int ip[$ac_kw]) { return ip[0]; }
|
||||
]],
|
||||
[[int s[1];
|
||||
int *$ac_kw t = s;
|
||||
t[0] = 0;
|
||||
return foo (t) + bar (t);
|
||||
]])],
|
||||
[ac_cv_c_restrict=$ac_kw])
|
||||
test "$ac_cv_c_restrict" != no && break
|
||||
done
|
||||
|
|
@ -414,61 +422,3 @@ AC_DEFUN([gl_CACHE_VAL_SILENT],
|
|||
# AS_VAR_COPY was added in autoconf 2.63b
|
||||
m4_define_default([AS_VAR_COPY],
|
||||
[AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])
|
||||
|
||||
# AC_PROG_SED was added in autoconf 2.59b
|
||||
m4_ifndef([AC_PROG_SED],
|
||||
[AC_DEFUN([AC_PROG_SED],
|
||||
[AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED,
|
||||
[dnl ac_script should not contain more than 99 commands (for HP-UX sed),
|
||||
dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed.
|
||||
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
|
||||
for ac_i in 1 2 3 4 5 6 7; do
|
||||
ac_script="$ac_script$as_nl$ac_script"
|
||||
done
|
||||
echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
|
||||
AS_UNSET([ac_script])
|
||||
if test -z "$SED"; then
|
||||
ac_path_SED_found=false
|
||||
_AS_PATH_WALK([], [
|
||||
for ac_prog in sed gsed; do
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
|
||||
AS_EXECUTABLE_P(["$ac_path_SED"]) || continue
|
||||
case `"$ac_path_SED" --version 2>&1` in
|
||||
*GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;;
|
||||
*)
|
||||
ac_count=0
|
||||
_AS_ECHO_N([0123456789]) >conftest.in
|
||||
while :
|
||||
do
|
||||
cat conftest.in conftest.in >conftest.tmp
|
||||
mv conftest.tmp conftest.in
|
||||
cp conftest.in conftest.nl
|
||||
echo >> conftest.nl
|
||||
"$ac_path_SED" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
|
||||
diff conftest.out conftest.nl >/dev/null 2>&1 || break
|
||||
ac_count=`expr $ac_count + 1`
|
||||
if test $ac_count -gt ${ac_path_SED_max-0}; then
|
||||
# Best so far, but keep looking for better
|
||||
ac_cv_path_SED=$ac_path_SED
|
||||
ac_path_SED_max=$ac_count
|
||||
fi
|
||||
test $ac_count -gt 10 && break
|
||||
done
|
||||
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||
esac
|
||||
$ac_path_SED_found && break 3
|
||||
done
|
||||
done])
|
||||
if test -z "$ac_cv_path_SED"; then
|
||||
AC_ERROR([no acceptable sed could be found in \$PATH])
|
||||
fi
|
||||
else
|
||||
ac_cv_path_SED=$SED
|
||||
fi
|
||||
])
|
||||
SED="$ac_cv_path_SED"
|
||||
AC_SUBST([SED])dnl
|
||||
rm -f conftest.sed
|
||||
])
|
||||
])
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# DO NOT EDIT! GENERATED AUTOMATICALLY!
|
||||
# Copyright (C) 2002-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2019 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
|
||||
|
|
@ -42,6 +42,7 @@ AC_DEFUN([gl_EARLY],
|
|||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
AC_REQUIRE([gl_PROG_AR_RANLIB])
|
||||
|
||||
AC_REQUIRE([AM_PROG_CC_C_O])
|
||||
# Code from module absolute-header:
|
||||
# Code from module alloca:
|
||||
# Code from module alloca-opt:
|
||||
|
|
@ -50,9 +51,9 @@ AC_DEFUN([gl_EARLY],
|
|||
# Code from module c-ctype:
|
||||
# Code from module c-strcase:
|
||||
# Code from module c-strcaseeq:
|
||||
# Code from module c99:
|
||||
# Code from module close-stream:
|
||||
# Code from module closeout:
|
||||
# Code from module configmake:
|
||||
# Code from module dirname-lgpl:
|
||||
# Code from module dosname:
|
||||
# Code from module double-slash-root:
|
||||
|
|
@ -71,14 +72,17 @@ AC_DEFUN([gl_EARLY],
|
|||
# Code from module gettext-h:
|
||||
# Code from module gettimeofday:
|
||||
# Code from module hard-locale:
|
||||
# Code from module havelib:
|
||||
# Code from module include_next:
|
||||
# Code from module intprops:
|
||||
# Code from module isatty:
|
||||
# Code from module largefile:
|
||||
AC_REQUIRE([AC_SYS_LARGEFILE])
|
||||
# Code from module libc-config:
|
||||
# Code from module limits-h:
|
||||
# Code from module localcharset:
|
||||
# Code from module localtime-buffer:
|
||||
# Code from module lock:
|
||||
# Code from module lstat:
|
||||
# Code from module malloc-gnu:
|
||||
# Code from module malloc-posix:
|
||||
|
|
@ -88,6 +92,7 @@ AC_DEFUN([gl_EARLY],
|
|||
# Code from module memchr:
|
||||
# Code from module mempcpy:
|
||||
# Code from module minmax:
|
||||
# Code from module mkdir:
|
||||
# Code from module mkstemp:
|
||||
# Code from module mkstemps:
|
||||
# Code from module msvc-inval:
|
||||
|
|
@ -110,6 +115,7 @@ AC_DEFUN([gl_EARLY],
|
|||
# Code from module ssize_t:
|
||||
# Code from module stat:
|
||||
# Code from module stat-time:
|
||||
# Code from module std-gnu11:
|
||||
# Code from module stdalign:
|
||||
# Code from module stdbool:
|
||||
# Code from module stddef:
|
||||
|
|
@ -133,6 +139,8 @@ AC_DEFUN([gl_EARLY],
|
|||
# Code from module sys_wait:
|
||||
# Code from module sysexits:
|
||||
# Code from module tempname:
|
||||
# Code from module threadlib:
|
||||
gl_THREADLIB_EARLY
|
||||
# Code from module time:
|
||||
# Code from module unistd:
|
||||
# Code from module vasnprintf:
|
||||
|
|
@ -140,6 +148,10 @@ AC_DEFUN([gl_EARLY],
|
|||
# Code from module vsnprintf:
|
||||
# Code from module wchar:
|
||||
# Code from module wctype-h:
|
||||
# Code from module windows-mutex:
|
||||
# Code from module windows-once:
|
||||
# Code from module windows-recmutex:
|
||||
# Code from module windows-rwlock:
|
||||
# Code from module xalloc:
|
||||
# Code from module xalloc-die:
|
||||
# Code from module xalloc-oversized:
|
||||
|
|
@ -169,10 +181,7 @@ AC_SUBST([LTALLOCA])
|
|||
m4_ifdef([AM_XGETTEXT_OPTION],
|
||||
[AM_][XGETTEXT_OPTION([--flag=argp_error:2:c-format])
|
||||
AM_][XGETTEXT_OPTION([--flag=argp_failure:4:c-format])])
|
||||
gl_CLOSE_STREAM
|
||||
gl_MODULE_INDICATOR([close-stream])
|
||||
gl_CLOSEOUT
|
||||
gl_CONFIGMAKE_PREP
|
||||
gl_DIRNAME_LGPL
|
||||
gl_DOUBLE_SLASH_ROOT
|
||||
gl_HEADER_ERRNO_H
|
||||
|
|
@ -218,7 +227,6 @@ AC_SUBST([LTALLOCA])
|
|||
gl_PREREQ_GETTIMEOFDAY
|
||||
fi
|
||||
gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
|
||||
gl_HARD_LOCALE
|
||||
gl_FUNC_ISATTY
|
||||
if test $REPLACE_ISATTY = 1; then
|
||||
AC_LIBOBJ([isatty])
|
||||
|
|
@ -226,12 +234,16 @@ AC_SUBST([LTALLOCA])
|
|||
fi
|
||||
gl_UNISTD_MODULE_INDICATOR([isatty])
|
||||
AC_REQUIRE([gl_LARGEFILE])
|
||||
gl___INLINE
|
||||
gl_LIMITS_H
|
||||
gl_LOCALCHARSET
|
||||
LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
|
||||
dnl For backward compatibility. Some packages still use this.
|
||||
LOCALCHARSET_TESTS_ENVIRONMENT=
|
||||
AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
|
||||
AC_REQUIRE([gl_LOCALTIME_BUFFER_DEFAULTS])
|
||||
AC_LIBOBJ([localtime-buffer])
|
||||
gl_LOCK
|
||||
gl_MODULE_INDICATOR([lock])
|
||||
gl_FUNC_LSTAT
|
||||
if test $REPLACE_LSTAT = 1; then
|
||||
AC_LIBOBJ([lstat])
|
||||
|
|
@ -274,6 +286,10 @@ AC_SUBST([LTALLOCA])
|
|||
fi
|
||||
gl_STRING_MODULE_INDICATOR([mempcpy])
|
||||
gl_MINMAX
|
||||
gl_FUNC_MKDIR
|
||||
if test $REPLACE_MKDIR = 1; then
|
||||
AC_LIBOBJ([mkdir])
|
||||
fi
|
||||
gl_FUNC_MKSTEMP
|
||||
if test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1; then
|
||||
AC_LIBOBJ([mkstemp])
|
||||
|
|
@ -401,6 +417,7 @@ AC_SUBST([LTALLOCA])
|
|||
AC_PROG_MKDIR_P
|
||||
gl_SYSEXITS
|
||||
gl_FUNC_GEN_TEMPNAME
|
||||
AC_REQUIRE([gl_THREADLIB])
|
||||
gl_HEADER_TIME_H
|
||||
gl_UNISTD_H
|
||||
gl_FUNC_VASNPRINTF
|
||||
|
|
@ -408,6 +425,30 @@ AC_SUBST([LTALLOCA])
|
|||
gl_STDIO_MODULE_INDICATOR([vsnprintf])
|
||||
gl_WCHAR_H
|
||||
gl_WCTYPE_H
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
AC_LIBOBJ([windows-mutex])
|
||||
;;
|
||||
esac
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
AC_LIBOBJ([windows-once])
|
||||
;;
|
||||
esac
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
AC_LIBOBJ([windows-recmutex])
|
||||
;;
|
||||
esac
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
AC_LIBOBJ([windows-rwlock])
|
||||
;;
|
||||
esac
|
||||
gl_XALLOC
|
||||
gl_XSIZE
|
||||
# End of code from modules
|
||||
|
|
@ -546,6 +587,7 @@ AC_DEFUN([gltests_LIBSOURCES], [
|
|||
# This macro records the list of files which have been installed by
|
||||
# gnulib-tool and may be removed by future gnulib-tool invocations.
|
||||
AC_DEFUN([gl_FILE_LIST], [
|
||||
build-aux/config.rpath
|
||||
lib/_Noreturn.h
|
||||
lib/alloca.c
|
||||
lib/alloca.in.h
|
||||
|
|
@ -574,11 +616,11 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
lib/c-strcasecmp.c
|
||||
lib/c-strcaseeq.h
|
||||
lib/c-strncasecmp.c
|
||||
lib/cdefs.h
|
||||
lib/close-stream.c
|
||||
lib/close-stream.h
|
||||
lib/closeout.c
|
||||
lib/closeout.h
|
||||
lib/config.charset
|
||||
lib/dirname-lgpl.c
|
||||
lib/dirname.h
|
||||
lib/dosname.h
|
||||
|
|
@ -607,11 +649,15 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
lib/getprogname.h
|
||||
lib/gettext.h
|
||||
lib/gettimeofday.c
|
||||
lib/glthread/lock.c
|
||||
lib/glthread/lock.h
|
||||
lib/glthread/threadlib.c
|
||||
lib/hard-locale.c
|
||||
lib/hard-locale.h
|
||||
lib/intprops.h
|
||||
lib/isatty.c
|
||||
lib/itold.c
|
||||
lib/libc-config.h
|
||||
lib/limits.in.h
|
||||
lib/localcharset.c
|
||||
lib/localcharset.h
|
||||
|
|
@ -627,6 +673,7 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
lib/memchr.valgrind
|
||||
lib/mempcpy.c
|
||||
lib/minmax.h
|
||||
lib/mkdir.c
|
||||
lib/mkstemp.c
|
||||
lib/mkstemps.c
|
||||
lib/msvc-inval.c
|
||||
|
|
@ -645,8 +692,6 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
lib/quotearg.h
|
||||
lib/rawmemchr.c
|
||||
lib/rawmemchr.valgrind
|
||||
lib/ref-add.sin
|
||||
lib/ref-del.sin
|
||||
lib/secure_getenv.c
|
||||
lib/size_max.h
|
||||
lib/sleep.c
|
||||
|
|
@ -695,6 +740,15 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
lib/wchar.in.h
|
||||
lib/wctype-h.c
|
||||
lib/wctype.in.h
|
||||
lib/windows-initguard.h
|
||||
lib/windows-mutex.c
|
||||
lib/windows-mutex.h
|
||||
lib/windows-once.c
|
||||
lib/windows-once.h
|
||||
lib/windows-recmutex.c
|
||||
lib/windows-recmutex.h
|
||||
lib/windows-rwlock.c
|
||||
lib/windows-rwlock.h
|
||||
lib/xalloc-die.c
|
||||
lib/xalloc-oversized.h
|
||||
lib/xalloc.h
|
||||
|
|
@ -702,13 +756,11 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
lib/xsize.c
|
||||
lib/xsize.h
|
||||
m4/00gnulib.m4
|
||||
m4/__inline.m4
|
||||
m4/absolute-header.m4
|
||||
m4/alloca.m4
|
||||
m4/argp.m4
|
||||
m4/close-stream.m4
|
||||
m4/closeout.m4
|
||||
m4/codeset.m4
|
||||
m4/configmake.m4
|
||||
m4/dirname.m4
|
||||
m4/double-slash-root.m4
|
||||
m4/eealloc.m4
|
||||
|
|
@ -724,20 +776,23 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
m4/getopt.m4
|
||||
m4/getprogname.m4
|
||||
m4/gettimeofday.m4
|
||||
m4/glibc21.m4
|
||||
m4/gnulib-common.m4
|
||||
m4/hard-locale.m4
|
||||
m4/host-cpu-c-abi.m4
|
||||
m4/include_next.m4
|
||||
m4/intmax_t.m4
|
||||
m4/inttypes_h.m4
|
||||
m4/isatty.m4
|
||||
m4/largefile.m4
|
||||
m4/lib-ld.m4
|
||||
m4/lib-link.m4
|
||||
m4/lib-prefix.m4
|
||||
m4/limits-h.m4
|
||||
m4/localcharset.m4
|
||||
m4/locale-fr.m4
|
||||
m4/locale-ja.m4
|
||||
m4/locale-zh.m4
|
||||
m4/localtime-buffer.m4
|
||||
m4/lock.m4
|
||||
m4/longlong.m4
|
||||
m4/lstat.m4
|
||||
m4/malloc.m4
|
||||
|
|
@ -749,6 +804,7 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
m4/memchr.m4
|
||||
m4/mempcpy.m4
|
||||
m4/minmax.m4
|
||||
m4/mkdir.m4
|
||||
m4/mkstemp.m4
|
||||
m4/mkstemps.m4
|
||||
m4/mmap-anon.m4
|
||||
|
|
@ -759,6 +815,7 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
m4/off_t.m4
|
||||
m4/pathmax.m4
|
||||
m4/printf.m4
|
||||
m4/pthread_rwlock_rdlock.m4
|
||||
m4/quote.m4
|
||||
m4/quotearg.m4
|
||||
m4/rawmemchr.m4
|
||||
|
|
@ -768,6 +825,7 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
m4/ssize_t.m4
|
||||
m4/stat-time.m4
|
||||
m4/stat.m4
|
||||
m4/std-gnu11.m4
|
||||
m4/stdalign.m4
|
||||
m4/stdbool.m4
|
||||
m4/stddef_h.m4
|
||||
|
|
@ -791,6 +849,7 @@ AC_DEFUN([gl_FILE_LIST], [
|
|||
m4/sys_wait_h.m4
|
||||
m4/sysexits.m4
|
||||
m4/tempname.m4
|
||||
m4/threadlib.m4
|
||||
m4/time_h.m4
|
||||
m4/unistd_h.m4
|
||||
m4/vasnprintf.m4
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# gnulib-tool.m4 serial 2
|
||||
dnl Copyright (C) 2004-2005, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2004-2005, 2009-2019 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,11 +0,0 @@
|
|||
# hard-locale.m4 serial 8
|
||||
dnl Copyright (C) 2002-2006, 2009-2018 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 No prerequisites of lib/hard-locale.c.
|
||||
AC_DEFUN([gl_HARD_LOCALE],
|
||||
[
|
||||
:
|
||||
])
|
||||
644
m4/host-cpu-c-abi.m4
Normal file
644
m4/host-cpu-c-abi.m4
Normal file
|
|
@ -0,0 +1,644 @@
|
|||
# host-cpu-c-abi.m4 serial 11
|
||||
dnl Copyright (C) 2002-2019 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 and Sam Steingold.
|
||||
|
||||
dnl Sets the HOST_CPU variable to the canonical name of the CPU.
|
||||
dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
|
||||
dnl C language ABI (application binary interface).
|
||||
dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
|
||||
dnl config.h.
|
||||
dnl
|
||||
dnl This canonical name can be used to select a particular assembly language
|
||||
dnl source file that will interoperate with C code on the given host.
|
||||
dnl
|
||||
dnl For example:
|
||||
dnl * 'i386' and 'sparc' are different canonical names, because code for i386
|
||||
dnl will not run on SPARC CPUs and vice versa. They have different
|
||||
dnl instruction sets.
|
||||
dnl * 'sparc' and 'sparc64' are different canonical names, because code for
|
||||
dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
|
||||
dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
|
||||
dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
|
||||
dnl mode, but not both.
|
||||
dnl * 'mips' and 'mipsn32' are different canonical names, because they use
|
||||
dnl different argument passing and return conventions for C functions, and
|
||||
dnl although the instruction set of 'mips' is a large subset of the
|
||||
dnl instruction set of 'mipsn32'.
|
||||
dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
|
||||
dnl different sizes for the C types like 'int' and 'void *', and although
|
||||
dnl the instruction sets of 'mipsn32' and 'mips64' are the same.
|
||||
dnl * The same canonical name is used for different endiannesses. You can
|
||||
dnl determine the endianness through preprocessor symbols:
|
||||
dnl - 'arm': test __ARMEL__.
|
||||
dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
|
||||
dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
|
||||
dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
|
||||
dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
|
||||
dnl - Instructions that do not exist on all of these CPUs (cmpxchg,
|
||||
dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
|
||||
dnl assembly language source files use such instructions, you will
|
||||
dnl need to make the distinction.
|
||||
dnl - Speed of execution of the common instruction set is reasonable across
|
||||
dnl the entire family of CPUs. If you have assembly language source files
|
||||
dnl that are optimized for particular CPU types (like GNU gmp has), you
|
||||
dnl will need to make the distinction.
|
||||
dnl See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
|
||||
AC_DEFUN([gl_HOST_CPU_C_ABI],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([gl_C_ASM])
|
||||
AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
|
||||
[case "$host_cpu" in
|
||||
|
||||
changequote(,)dnl
|
||||
i[4567]86 )
|
||||
changequote([,])dnl
|
||||
gl_cv_host_cpu_c_abi=i386
|
||||
;;
|
||||
|
||||
x86_64 )
|
||||
# On x86_64 systems, the C compiler may be generating code in one of
|
||||
# these ABIs:
|
||||
# - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
|
||||
# - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
|
||||
# with native Windows (mingw, MSVC).
|
||||
# - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
|
||||
# - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if (defined __x86_64__ || defined __amd64__ \
|
||||
|| defined _M_X64 || defined _M_AMD64)
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __ILP32__ || defined _ILP32
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=x86_64-x32],
|
||||
[gl_cv_host_cpu_c_abi=x86_64])],
|
||||
[gl_cv_host_cpu_c_abi=i386])
|
||||
;;
|
||||
|
||||
changequote(,)dnl
|
||||
alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
|
||||
changequote([,])dnl
|
||||
gl_cv_host_cpu_c_abi=alpha
|
||||
;;
|
||||
|
||||
arm* | aarch64 )
|
||||
# Assume arm with EABI.
|
||||
# On arm64 systems, the C compiler may be generating code in one of
|
||||
# these ABIs:
|
||||
# - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
|
||||
# - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
|
||||
# - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifdef __aarch64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __ILP32__ || defined _ILP32
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=arm64-ilp32],
|
||||
[gl_cv_host_cpu_c_abi=arm64])],
|
||||
[# Don't distinguish little-endian and big-endian arm, since they
|
||||
# don't require different machine code for simple operations and
|
||||
# since the user can distinguish them through the preprocessor
|
||||
# defines __ARMEL__ vs. __ARMEB__.
|
||||
# But distinguish arm which passes floating-point arguments and
|
||||
# return values in integer registers (r0, r1, ...) - this is
|
||||
# gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
|
||||
# passes them in float registers (s0, s1, ...) and double registers
|
||||
# (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
|
||||
# sets the preprocessor defines __ARM_PCS (for the first case) and
|
||||
# __ARM_PCS_VFP (for the second case), but older GCC does not.
|
||||
echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
|
||||
# Look for a reference to the register d0 in the .s file.
|
||||
AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
|
||||
if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
|
||||
gl_cv_host_cpu_c_abi=armhf
|
||||
else
|
||||
gl_cv_host_cpu_c_abi=arm
|
||||
fi
|
||||
rm -f conftest*
|
||||
])
|
||||
;;
|
||||
|
||||
hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
|
||||
# On hppa, the C compiler may be generating 32-bit code or 64-bit
|
||||
# code. In the latter case, it defines _LP64 and __LP64__.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifdef __LP64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=hppa64],
|
||||
[gl_cv_host_cpu_c_abi=hppa])
|
||||
;;
|
||||
|
||||
ia64* )
|
||||
# On ia64 on HP-UX, the C compiler may be generating 64-bit code or
|
||||
# 32-bit code. In the latter case, it defines _ILP32.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifdef _ILP32
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=ia64-ilp32],
|
||||
[gl_cv_host_cpu_c_abi=ia64])
|
||||
;;
|
||||
|
||||
mips* )
|
||||
# We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
|
||||
# at 32.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=mips64],
|
||||
[# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
|
||||
# may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
|
||||
# In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
|
||||
# may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if (_MIPS_SIM == _ABIN32)
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=mipsn32],
|
||||
[gl_cv_host_cpu_c_abi=mips])])
|
||||
;;
|
||||
|
||||
powerpc* )
|
||||
# Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
|
||||
# No need to distinguish them here; the caller may distinguish
|
||||
# them based on the OS.
|
||||
# On powerpc64 systems, the C compiler may still be generating
|
||||
# 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
|
||||
# be generating 64-bit code.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __powerpc64__ || defined _ARCH_PPC64
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[# On powerpc64, there are two ABIs on Linux: The AIX compatible
|
||||
# one and the ELFv2 one. The latter defines _CALL_ELF=2.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined _CALL_ELF && _CALL_ELF == 2
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=powerpc64-elfv2],
|
||||
[gl_cv_host_cpu_c_abi=powerpc64])
|
||||
],
|
||||
[gl_cv_host_cpu_c_abi=powerpc])
|
||||
;;
|
||||
|
||||
rs6000 )
|
||||
gl_cv_host_cpu_c_abi=powerpc
|
||||
;;
|
||||
|
||||
riscv32 | riscv64 )
|
||||
# There are 2 architectures (with variants): rv32* and rv64*.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if __riscv_xlen == 64
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[cpu=riscv64],
|
||||
[cpu=riscv32])
|
||||
# There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
|
||||
# Size of 'long' and 'void *':
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __LP64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[main_abi=lp64],
|
||||
[main_abi=ilp32])
|
||||
# Float ABIs:
|
||||
# __riscv_float_abi_double:
|
||||
# 'float' and 'double' are passed in floating-point registers.
|
||||
# __riscv_float_abi_single:
|
||||
# 'float' are passed in floating-point registers.
|
||||
# __riscv_float_abi_soft:
|
||||
# No values are passed in floating-point registers.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __riscv_float_abi_double
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[float_abi=d],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __riscv_float_abi_single
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[float_abi=f],
|
||||
[float_abi=''])
|
||||
])
|
||||
gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
|
||||
;;
|
||||
|
||||
s390* )
|
||||
# On s390x, the C compiler may be generating 64-bit (= s390x) code
|
||||
# or 31-bit (= s390) code.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __LP64__ || defined __s390x__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=s390x],
|
||||
[gl_cv_host_cpu_c_abi=s390])
|
||||
;;
|
||||
|
||||
sparc | sparc64 )
|
||||
# UltraSPARCs running Linux have `uname -m` = "sparc64", but the
|
||||
# C compiler still generates 32-bit code.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __sparcv9 || defined __arch64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi=sparc64],
|
||||
[gl_cv_host_cpu_c_abi=sparc])
|
||||
;;
|
||||
|
||||
*)
|
||||
gl_cv_host_cpu_c_abi="$host_cpu"
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
|
||||
HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
|
||||
HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
|
||||
AC_SUBST([HOST_CPU])
|
||||
AC_SUBST([HOST_CPU_C_ABI])
|
||||
|
||||
# This was
|
||||
# AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
|
||||
# AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
|
||||
# earlier, but KAI C++ 3.2d doesn't like this.
|
||||
sed -e 's/-/_/g' >> confdefs.h <<EOF
|
||||
#ifndef __${HOST_CPU}__
|
||||
#define __${HOST_CPU}__ 1
|
||||
#endif
|
||||
#ifndef __${HOST_CPU_C_ABI}__
|
||||
#define __${HOST_CPU_C_ABI}__ 1
|
||||
#endif
|
||||
EOF
|
||||
AH_TOP([/* CPU and C ABI indicator */
|
||||
#ifndef __i386__
|
||||
#undef __i386__
|
||||
#endif
|
||||
#ifndef __x86_64_x32__
|
||||
#undef __x86_64_x32__
|
||||
#endif
|
||||
#ifndef __x86_64__
|
||||
#undef __x86_64__
|
||||
#endif
|
||||
#ifndef __alpha__
|
||||
#undef __alpha__
|
||||
#endif
|
||||
#ifndef __arm__
|
||||
#undef __arm__
|
||||
#endif
|
||||
#ifndef __armhf__
|
||||
#undef __armhf__
|
||||
#endif
|
||||
#ifndef __arm64_ilp32__
|
||||
#undef __arm64_ilp32__
|
||||
#endif
|
||||
#ifndef __arm64__
|
||||
#undef __arm64__
|
||||
#endif
|
||||
#ifndef __hppa__
|
||||
#undef __hppa__
|
||||
#endif
|
||||
#ifndef __hppa64__
|
||||
#undef __hppa64__
|
||||
#endif
|
||||
#ifndef __ia64_ilp32__
|
||||
#undef __ia64_ilp32__
|
||||
#endif
|
||||
#ifndef __ia64__
|
||||
#undef __ia64__
|
||||
#endif
|
||||
#ifndef __m68k__
|
||||
#undef __m68k__
|
||||
#endif
|
||||
#ifndef __mips__
|
||||
#undef __mips__
|
||||
#endif
|
||||
#ifndef __mipsn32__
|
||||
#undef __mipsn32__
|
||||
#endif
|
||||
#ifndef __mips64__
|
||||
#undef __mips64__
|
||||
#endif
|
||||
#ifndef __powerpc__
|
||||
#undef __powerpc__
|
||||
#endif
|
||||
#ifndef __powerpc64__
|
||||
#undef __powerpc64__
|
||||
#endif
|
||||
#ifndef __powerpc64_elfv2__
|
||||
#undef __powerpc64_elfv2__
|
||||
#endif
|
||||
#ifndef __riscv32__
|
||||
#undef __riscv32__
|
||||
#endif
|
||||
#ifndef __riscv64__
|
||||
#undef __riscv64__
|
||||
#endif
|
||||
#ifndef __riscv32_ilp32__
|
||||
#undef __riscv32_ilp32__
|
||||
#endif
|
||||
#ifndef __riscv32_ilp32f__
|
||||
#undef __riscv32_ilp32f__
|
||||
#endif
|
||||
#ifndef __riscv32_ilp32d__
|
||||
#undef __riscv32_ilp32d__
|
||||
#endif
|
||||
#ifndef __riscv64_ilp32__
|
||||
#undef __riscv64_ilp32__
|
||||
#endif
|
||||
#ifndef __riscv64_ilp32f__
|
||||
#undef __riscv64_ilp32f__
|
||||
#endif
|
||||
#ifndef __riscv64_ilp32d__
|
||||
#undef __riscv64_ilp32d__
|
||||
#endif
|
||||
#ifndef __riscv64_lp64__
|
||||
#undef __riscv64_lp64__
|
||||
#endif
|
||||
#ifndef __riscv64_lp64f__
|
||||
#undef __riscv64_lp64f__
|
||||
#endif
|
||||
#ifndef __riscv64_lp64d__
|
||||
#undef __riscv64_lp64d__
|
||||
#endif
|
||||
#ifndef __s390__
|
||||
#undef __s390__
|
||||
#endif
|
||||
#ifndef __s390x__
|
||||
#undef __s390x__
|
||||
#endif
|
||||
#ifndef __sh__
|
||||
#undef __sh__
|
||||
#endif
|
||||
#ifndef __sparc__
|
||||
#undef __sparc__
|
||||
#endif
|
||||
#ifndef __sparc64__
|
||||
#undef __sparc64__
|
||||
#endif
|
||||
])
|
||||
|
||||
])
|
||||
|
||||
|
||||
dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
|
||||
dnl (application binary interface) is a 32-bit one, or to 'no' otherwise.
|
||||
dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
|
||||
AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
|
||||
[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
|
||||
[if test -n "$gl_cv_host_cpu_c_abi"; then
|
||||
case "$gl_cv_host_cpu_c_abi" in
|
||||
i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
|
||||
gl_cv_host_cpu_c_abi_32bit=yes ;;
|
||||
*)
|
||||
gl_cv_host_cpu_c_abi_32bit=no ;;
|
||||
esac
|
||||
else
|
||||
case "$host_cpu" in
|
||||
|
||||
changequote(,)dnl
|
||||
i[4567]86 )
|
||||
changequote([,])dnl
|
||||
gl_cv_host_cpu_c_abi_32bit=yes
|
||||
;;
|
||||
|
||||
x86_64 )
|
||||
# On x86_64 systems, the C compiler may be generating code in one of
|
||||
# these ABIs:
|
||||
# - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
|
||||
# - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
|
||||
# with native Windows (mingw, MSVC).
|
||||
# - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
|
||||
# - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if (defined __x86_64__ || defined __amd64__ \
|
||||
|| defined _M_X64 || defined _M_AMD64) \
|
||||
&& !(defined __ILP32__ || defined _ILP32)
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
arm* | aarch64 )
|
||||
# Assume arm with EABI.
|
||||
# On arm64 systems, the C compiler may be generating code in one of
|
||||
# these ABIs:
|
||||
# - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
|
||||
# - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
|
||||
# - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
|
||||
# On hppa, the C compiler may be generating 32-bit code or 64-bit
|
||||
# code. In the latter case, it defines _LP64 and __LP64__.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifdef __LP64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
ia64* )
|
||||
# On ia64 on HP-UX, the C compiler may be generating 64-bit code or
|
||||
# 32-bit code. In the latter case, it defines _ILP32.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifdef _ILP32
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no])
|
||||
;;
|
||||
|
||||
mips* )
|
||||
# We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
|
||||
# at 32.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
powerpc* )
|
||||
# Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
|
||||
# No need to distinguish them here; the caller may distinguish
|
||||
# them based on the OS.
|
||||
# On powerpc64 systems, the C compiler may still be generating
|
||||
# 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
|
||||
# be generating 64-bit code.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __powerpc64__ || defined _ARCH_PPC64
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
rs6000 )
|
||||
gl_cv_host_cpu_c_abi_32bit=yes
|
||||
;;
|
||||
|
||||
riscv32 | riscv64 )
|
||||
# There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
|
||||
# Size of 'long' and 'void *':
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __LP64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
s390* )
|
||||
# On s390x, the C compiler may be generating 64-bit (= s390x) code
|
||||
# or 31-bit (= s390) code.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __LP64__ || defined __s390x__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
sparc | sparc64 )
|
||||
# UltraSPARCs running Linux have `uname -m` = "sparc64", but the
|
||||
# C compiler still generates 32-bit code.
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __sparcv9 || defined __arch64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_host_cpu_c_abi_32bit=no],
|
||||
[gl_cv_host_cpu_c_abi_32bit=yes])
|
||||
;;
|
||||
|
||||
*)
|
||||
gl_cv_host_cpu_c_abi_32bit=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
|
||||
HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
|
||||
])
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
# include_next.m4 serial 24
|
||||
dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2006-2019 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 @@
|
|||
# intmax_t.m4 serial 8
|
||||
dnl Copyright (C) 1997-2004, 2006-2007, 2009-2018 Free Software Foundation,
|
||||
dnl Copyright (C) 1997-2004, 2006-2007, 2009-2019 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,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# inttypes_h.m4 serial 10
|
||||
dnl Copyright (C) 1997-2004, 2006, 2008-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 1997-2004, 2006, 2008-2019 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 @@
|
|||
# isatty.m4 serial 3
|
||||
dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2012-2019 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,6 +1,6 @@
|
|||
# Enable large files on systems where this is not the default.
|
||||
|
||||
# Copyright 1992-1996, 1998-2018 Free Software Foundation, Inc.
|
||||
# Copyright 1992-1996, 1998-2019 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.
|
||||
|
|
|
|||
168
m4/lib-ld.m4
Normal file
168
m4/lib-ld.m4
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
# lib-ld.m4 serial 9
|
||||
dnl Copyright (C) 1996-2003, 2009-2019 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
|
||||
|
||||
if test -n "$LD"; then
|
||||
AC_MSG_CHECKING([for ld])
|
||||
elif test "$GCC" = yes; then
|
||||
AC_MSG_CHECKING([for ld used by $CC])
|
||||
elif test "$with_gnu_ld" = yes; then
|
||||
AC_MSG_CHECKING([for GNU ld])
|
||||
else
|
||||
AC_MSG_CHECKING([for non-GNU ld])
|
||||
fi
|
||||
if test -n "$LD"; then
|
||||
# Let the user override the test with a path.
|
||||
:
|
||||
else
|
||||
AC_CACHE_VAL([acl_cv_path_LD],
|
||||
[
|
||||
acl_cv_path_LD= # Final result of this test
|
||||
ac_prog=ld # Program to search in $PATH
|
||||
if test "$GCC" = yes; then
|
||||
# Check if gcc -print-prog-name=ld gives a path.
|
||||
case $host in
|
||||
*-*-mingw*)
|
||||
# gcc leaves a trailing carriage return which upsets mingw
|
||||
acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
|
||||
*)
|
||||
acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
|
||||
esac
|
||||
case $acl_output in
|
||||
# Accept absolute paths.
|
||||
[[\\/]]* | ?:[[\\/]]*)
|
||||
re_direlt='/[[^/]][[^/]]*/\.\./'
|
||||
# Canonicalize the pathname of ld
|
||||
acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
|
||||
while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
|
||||
acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
|
||||
done
|
||||
# Got the pathname. No search in PATH is needed.
|
||||
acl_cv_path_LD="$acl_output"
|
||||
ac_prog=
|
||||
;;
|
||||
"")
|
||||
# If it fails, then pretend we aren't using GCC.
|
||||
;;
|
||||
*)
|
||||
# If it is relative, then search for the first ld in PATH.
|
||||
with_gnu_ld=unknown
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test -n "$ac_prog"; then
|
||||
# Search for $ac_prog in $PATH.
|
||||
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"
|
||||
fi
|
||||
case $host in
|
||||
*-*-aix*)
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __powerpc64__ || defined _ARCH_PPC64
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[# The compiler produces 64-bit code. Add option '-b64' so that the
|
||||
# linker groks 64-bit object files.
|
||||
case "$acl_cv_path_LD " in
|
||||
*" -b64 "*) ;;
|
||||
*) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
|
||||
esac
|
||||
], [])
|
||||
;;
|
||||
sparc64-*-netbsd*)
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#if defined __sparcv9 || defined __arch64__
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[],
|
||||
[# The compiler produces 32-bit code. Add option '-m elf32_sparc'
|
||||
# so that the linker groks 32-bit object files.
|
||||
case "$acl_cv_path_LD " in
|
||||
*" -m elf32_sparc "*) ;;
|
||||
*) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
|
||||
esac
|
||||
])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
LD="$acl_cv_path_LD"
|
||||
fi
|
||||
if test -n "$LD"; then
|
||||
AC_MSG_RESULT([$LD])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([no acceptable ld found in \$PATH])
|
||||
fi
|
||||
AC_LIB_PROG_LD_GNU
|
||||
])
|
||||
774
m4/lib-link.m4
Normal file
774
m4/lib-link.m4
Normal file
|
|
@ -0,0 +1,774 @@
|
|||
# lib-link.m4 serial 28
|
||||
dnl Copyright (C) 2001-2019 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.61])
|
||||
|
||||
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 Complain if config.rpath is missing.
|
||||
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 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(PACK[-prefix],
|
||||
[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
|
||||
--without-]]PACK[[-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([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])
|
||||
])
|
||||
249
m4/lib-prefix.m4
Normal file
249
m4/lib-prefix.m4
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
# lib-prefix.m4 serial 14
|
||||
dnl Copyright (C) 2001-2005, 2008-2019 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_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_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])
|
||||
AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
|
||||
|
||||
case "$host_os" in
|
||||
solaris*)
|
||||
AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#ifdef _LP64
|
||||
int ok;
|
||||
#else
|
||||
error fail
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_solaris_64bit=yes],
|
||||
[gl_cv_solaris_64bit=no])
|
||||
]);;
|
||||
esac
|
||||
|
||||
dnl Allow the user to override the result by setting acl_cv_libdirstems.
|
||||
AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
|
||||
[acl_cv_libdirstems],
|
||||
[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 <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
|
||||
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.
|
||||
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
|
||||
;;
|
||||
*)
|
||||
dnl If $CC generates code for a 32-bit ABI, the libraries are
|
||||
dnl surely under $prefix/lib, not $prefix/lib64.
|
||||
if test "$HOST_CPU_C_ABI_32BIT" != yes; then
|
||||
dnl The result is a property of the system. However, non-system
|
||||
dnl compilers sometimes have odd library search paths. Therefore
|
||||
dnl prefer asking /usr/bin/gcc, if available, rather than $CC.
|
||||
searchpath=`(if test -f /usr/bin/gcc \
|
||||
&& LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
|
||||
LC_ALL=C /usr/bin/gcc -print-search-dirs; \
|
||||
else \
|
||||
LC_ALL=C $CC -print-search-dirs; \
|
||||
fi) 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
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
|
||||
acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
|
||||
])
|
||||
# Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
|
||||
acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
|
||||
acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
|
||||
])
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
dnl Check whether limits.h has needed features.
|
||||
|
||||
dnl Copyright 2016-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright 2016-2019 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.
|
||||
|
|
@ -11,14 +11,18 @@ AC_DEFUN_ONCE([gl_LIMITS_H],
|
|||
[
|
||||
gl_CHECK_NEXT_HEADERS([limits.h])
|
||||
|
||||
AC_CACHE_CHECK([whether limits.h has ULLONG_WIDTH etc.],
|
||||
AC_CACHE_CHECK([whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_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>
|
||||
int ullw = ULLONG_WIDTH;]])],
|
||||
[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;
|
||||
]])],
|
||||
[gl_cv_header_limits_width=yes],
|
||||
[gl_cv_header_limits_width=no])])
|
||||
if test "$gl_cv_header_limits_width" = yes; then
|
||||
|
|
@ -29,3 +33,11 @@ AC_DEFUN_ONCE([gl_LIMITS_H],
|
|||
AC_SUBST([LIMITS_H])
|
||||
AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
|
||||
])
|
||||
|
||||
dnl Unconditionally enables the replacement of <limits.h>.
|
||||
AC_DEFUN([gl_REPLACE_LIMITS_H],
|
||||
[
|
||||
AC_REQUIRE([gl_LIMITS_H])
|
||||
LIMITS_H='limits.h'
|
||||
AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
|
||||
])
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# localcharset.m4 serial 7
|
||||
dnl Copyright (C) 2002, 2004, 2006, 2009-2018 Free Software Foundation, Inc.
|
||||
# localcharset.m4 serial 8
|
||||
dnl Copyright (C) 2002, 2004, 2006, 2009-2019 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 19
|
||||
dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003, 2005-2019 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 @@
|
|||
# locale-ja.m4 serial 14
|
||||
dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003, 2005-2019 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 @@
|
|||
# locale-zh.m4 serial 14
|
||||
dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003, 2005-2019 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 @@
|
|||
# localtime-buffer.m4 serial 1
|
||||
dnl Copyright (C) 2017-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2017-2019 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.
|
||||
|
|
|
|||
47
m4/lock.m4
Normal file
47
m4/lock.m4
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# lock.m4 serial 14
|
||||
dnl Copyright (C) 2005-2019 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([gl_LOCK],
|
||||
[
|
||||
AC_REQUIRE([gl_THREADLIB])
|
||||
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],
|
||||
[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(
|
||||
[[#include <pthread.h>]],
|
||||
[[
|
||||
#if __FreeBSD__ == 4
|
||||
error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
|
||||
#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \
|
||||
&& __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
|
||||
error "No, in Mac OS X < 10.7 recursive mutexes actually don't work."
|
||||
#else
|
||||
int x = (int)PTHREAD_MUTEX_RECURSIVE;
|
||||
return !x;
|
||||
#endif
|
||||
]])],
|
||||
[AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1],
|
||||
[Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
|
||||
fi
|
||||
gl_PREREQ_LOCK
|
||||
])
|
||||
|
||||
# Prerequisites of lib/glthread/lock.c.
|
||||
AC_DEFUN([gl_PREREQ_LOCK], [:])
|
||||
|
|
@ -1,14 +1,15 @@
|
|||
# longlong.m4 serial 17
|
||||
dnl Copyright (C) 1999-2007, 2009-2018 Free Software Foundation, Inc.
|
||||
# longlong.m4 serial 18
|
||||
dnl Copyright (C) 1999-2007, 2009-2019 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_PREREQ([2.62])
|
||||
|
||||
# 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.
|
||||
# This 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
|
||||
|
|
@ -56,8 +57,7 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT],
|
|||
])
|
||||
|
||||
# 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.
|
||||
# This 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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# serial 32
|
||||
|
||||
# Copyright (C) 1997-2001, 2003-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2001, 2003-2019 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
|
|||
19
m4/malloc.m4
19
m4/malloc.m4
|
|
@ -1,5 +1,5 @@
|
|||
# malloc.m4 serial 17
|
||||
dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
# malloc.m4 serial 19
|
||||
dnl Copyright (C) 2007, 2009-2019 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.
|
||||
|
|
@ -32,15 +32,22 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF],
|
|||
[ac_cv_func_malloc_0_nonnull=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on platforms where we know the result.
|
||||
*-gnu* | gnu* | freebsd* | netbsd* | openbsd* \
|
||||
*-gnu* | gnu* | *-musl* | freebsd* | netbsd* | openbsd* \
|
||||
| hpux* | solaris* | cygwin* | mingw*)
|
||||
ac_cv_func_malloc_0_nonnull=yes ;;
|
||||
ac_cv_func_malloc_0_nonnull="guessing yes" ;;
|
||||
# If we don't know, assume the worst.
|
||||
*) ac_cv_func_malloc_0_nonnull=no ;;
|
||||
*) ac_cv_func_malloc_0_nonnull="guessing no" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2])
|
||||
case "$ac_cv_func_malloc_0_nonnull" in
|
||||
*yes)
|
||||
$1
|
||||
;;
|
||||
*)
|
||||
$2
|
||||
;;
|
||||
esac
|
||||
])# _AC_FUNC_MALLOC_IF
|
||||
|
||||
])
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# malloca.m4 serial 1
|
||||
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2018 Free Software Foundation,
|
||||
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2019 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,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# math_h.m4 serial 116
|
||||
dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
|
||||
# math_h.m4 serial 119
|
||||
dnl Copyright (C) 2007-2019 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.
|
||||
|
|
@ -268,8 +268,10 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
|
|||
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])
|
||||
|
|
@ -318,6 +320,7 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
|
|||
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])
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# mbrtowc.m4 serial 30 -*- coding: utf-8 -*-
|
||||
dnl Copyright (C) 2001-2002, 2004-2005, 2008-2018 Free Software Foundation,
|
||||
# mbrtowc.m4 serial 31 -*- coding: utf-8 -*-
|
||||
dnl Copyright (C) 2001-2002, 2004-2005, 2008-2019 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,
|
||||
|
|
@ -634,6 +634,7 @@ AC_DEFUN([gl_MBRTOWC_C_LOCALE],
|
|||
|
||||
# Prerequisites of lib/mbrtowc.c.
|
||||
AC_DEFUN([gl_PREREQ_MBRTOWC], [
|
||||
AC_REQUIRE([AC_C_INLINE])
|
||||
:
|
||||
])
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# mbsinit.m4 serial 8
|
||||
dnl Copyright (C) 2008, 2010-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2008, 2010-2019 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 @@
|
|||
# mbstate_t.m4 serial 13
|
||||
dnl Copyright (C) 2000-2002, 2008-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2000-2002, 2008-2019 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.
|
||||
|
|
|
|||
25
m4/memchr.m4
25
m4/memchr.m4
|
|
@ -1,5 +1,5 @@
|
|||
# memchr.m4 serial 13
|
||||
dnl Copyright (C) 2002-2004, 2009-2018 Free Software Foundation, Inc.
|
||||
# memchr.m4 serial 14
|
||||
dnl Copyright (C) 2002-2004, 2009-2019 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,6 +29,8 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
|
|||
# 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([[
|
||||
|
|
@ -74,15 +76,26 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
|
|||
if (memchr (fence - 1, 0, 3) != fence - 1)
|
||||
result |= 4;
|
||||
}
|
||||
/* 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 |= 8;
|
||||
}
|
||||
return result;
|
||||
]])],
|
||||
[gl_cv_func_memchr_works=yes],
|
||||
[gl_cv_func_memchr_works=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_memchr_works="guessing yes" ;;
|
||||
# Be pessimistic for now.
|
||||
*) gl_cv_func_memchr_works="guessing no" ;;
|
||||
# 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" ;;
|
||||
# Be pessimistic for now.
|
||||
*) gl_cv_func_memchr_works="guessing no" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# mempcpy.m4 serial 11
|
||||
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2018 Free Software Foundation,
|
||||
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2019 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,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# minmax.m4 serial 4
|
||||
dnl Copyright (C) 2005, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2005, 2009-2019 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.
|
||||
|
|
|
|||
84
m4/mkdir.m4
Normal file
84
m4/mkdir.m4
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
# serial 15
|
||||
|
||||
# Copyright (C) 2001, 2003-2004, 2006, 2008-2019 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.
|
||||
|
||||
# On some systems, mkdir ("foo/", 0700) fails because of the trailing slash.
|
||||
# On others, mkdir ("foo/./", 0700) mistakenly succeeds.
|
||||
# On such systems, arrange to use a wrapper function.
|
||||
AC_DEFUN([gl_FUNC_MKDIR],
|
||||
[dnl
|
||||
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_CHECK_HEADERS_ONCE([unistd.h])
|
||||
AC_CACHE_CHECK([whether mkdir handles trailing slash],
|
||||
[gl_cv_func_mkdir_trailing_slash_works],
|
||||
[rm -rf conftest.dir
|
||||
AC_RUN_IFELSE([AC_LANG_PROGRAM([[
|
||||
# include <sys/types.h>
|
||||
# include <sys/stat.h>
|
||||
]], [return mkdir ("conftest.dir/", 0700);])],
|
||||
[gl_cv_func_mkdir_trailing_slash_works=yes],
|
||||
[gl_cv_func_mkdir_trailing_slash_works=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on Linux systems.
|
||||
linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
#ifdef _MSC_VER
|
||||
Known
|
||||
#endif
|
||||
],
|
||||
[gl_cv_func_mkdir_trailing_slash_works="guessing yes"],
|
||||
[gl_cv_func_mkdir_trailing_slash_works="guessing no"])
|
||||
;;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;;
|
||||
esac
|
||||
])
|
||||
rm -rf conftest.dir
|
||||
]
|
||||
)
|
||||
case "$gl_cv_func_mkdir_trailing_slash_works" in
|
||||
*yes) ;;
|
||||
*)
|
||||
REPLACE_MKDIR=1
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_CACHE_CHECK([whether mkdir handles trailing dot],
|
||||
[gl_cv_func_mkdir_trailing_dot_works],
|
||||
[rm -rf conftest.dir
|
||||
AC_RUN_IFELSE([AC_LANG_PROGRAM([[
|
||||
# include <sys/types.h>
|
||||
# include <sys/stat.h>
|
||||
]], [return !mkdir ("conftest.dir/./", 0700);])],
|
||||
[gl_cv_func_mkdir_trailing_dot_works=yes],
|
||||
[gl_cv_func_mkdir_trailing_dot_works=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
|
||||
esac
|
||||
])
|
||||
rm -rf conftest.dir
|
||||
]
|
||||
)
|
||||
case "$gl_cv_func_mkdir_trailing_dot_works" in
|
||||
*yes) ;;
|
||||
*)
|
||||
REPLACE_MKDIR=1
|
||||
AC_DEFINE([FUNC_MKDIR_DOT_BUG], [1], [Define to 1 if mkdir mistakenly
|
||||
creates a directory given with a trailing dot component.])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#serial 25
|
||||
#serial 26
|
||||
|
||||
# Copyright (C) 2001, 2003-2007, 2009-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2003-2007, 2009-2019 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.
|
||||
|
|
@ -59,6 +59,8 @@ AC_DEFUN([gl_FUNC_MKSTEMP],
|
|||
[case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_working_mkstemp="guessing yes" ;;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_working_mkstemp="guessing no" ;;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# mkstemps.m4 serial 2
|
||||
dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2009-2019 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 @@
|
|||
# mmap-anon.m4 serial 10
|
||||
dnl Copyright (C) 2005, 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2005, 2007, 2009-2019 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-inval.m4 serial 1
|
||||
dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2011-2019 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-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2011-2019 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-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2008-2019 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 @@
|
|||
# nocrash.m4 serial 5
|
||||
dnl Copyright (C) 2005, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2005, 2009-2019 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 @@
|
|||
# off_t.m4 serial 1
|
||||
dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2012-2019 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 @@
|
|||
# pathmax.m4 serial 11
|
||||
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2018 Free Software Foundation,
|
||||
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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,
|
||||
|
|
|
|||
213
m4/printf.m4
213
m4/printf.m4
|
|
@ -1,5 +1,5 @@
|
|||
# printf.m4 serial 58
|
||||
dnl Copyright (C) 2003, 2007-2018 Free Software Foundation, Inc.
|
||||
# printf.m4 serial 61
|
||||
dnl Copyright (C) 2003, 2007-2019 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.
|
||||
|
|
@ -62,6 +62,8 @@ int main ()
|
|||
changequote(,)dnl
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_printf_sizes_c99="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 5.
|
||||
freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
|
||||
|
|
@ -79,6 +81,8 @@ changequote(,)dnl
|
|||
netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
|
||||
gl_cv_func_printf_sizes_c99="guessing no";;
|
||||
netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_printf_sizes_c99="guessing yes";;
|
||||
changequote([,])dnl
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
|
|
@ -132,17 +136,20 @@ int main ()
|
|||
[gl_cv_func_printf_long_double=yes],
|
||||
[gl_cv_func_printf_long_double=no],
|
||||
[case "$host_os" in
|
||||
beos*) gl_cv_func_printf_long_double="guessing no";;
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
# Guess no on BeOS.
|
||||
beos*) gl_cv_func_printf_long_double="guessing no";;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_printf_long_double="guessing yes";;
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
#ifdef _MSC_VER
|
||||
Known
|
||||
#endif
|
||||
],
|
||||
[gl_cv_func_printf_long_double="guessing yes"],
|
||||
[gl_cv_func_printf_long_double="guessing no"])
|
||||
;;
|
||||
*) gl_cv_func_printf_long_double="guessing yes";;
|
||||
],
|
||||
[gl_cv_func_printf_long_double="guessing yes"],
|
||||
[gl_cv_func_printf_long_double="guessing no"])
|
||||
;;
|
||||
*) gl_cv_func_printf_long_double="guessing yes";;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
|
@ -235,6 +242,8 @@ int main ()
|
|||
changequote(,)dnl
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_printf_infinite="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 6.
|
||||
freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
|
||||
|
|
@ -250,6 +259,8 @@ changequote(,)dnl
|
|||
netbsd*) gl_cv_func_printf_infinite="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_printf_infinite="guessing yes";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_infinite="guessing no";;
|
||||
changequote([,])dnl
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
|
|
@ -450,12 +461,16 @@ int main ()
|
|||
changequote(,)dnl
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_printf_infinite_long_double="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 6.
|
||||
freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
|
||||
# Guess yes on HP-UX >= 11.
|
||||
hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
|
||||
hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_infinite_long_double="guessing no";;
|
||||
changequote([,])dnl
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
|
|
@ -566,6 +581,10 @@ int main ()
|
|||
[gl_cv_func_printf_directive_a="guessing yes"],
|
||||
[gl_cv_func_printf_directive_a="guessing no"])
|
||||
;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_printf_directive_a="guessing yes";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_directive_a="guessing no";;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_printf_directive_a="guessing no";;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
@ -614,6 +633,8 @@ int main ()
|
|||
changequote(,)dnl
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_printf_directive_f="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 6.
|
||||
freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
|
||||
|
|
@ -623,6 +644,8 @@ changequote(,)dnl
|
|||
# Guess yes on Solaris >= 2.10.
|
||||
solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";;
|
||||
solaris*) gl_cv_func_printf_directive_f="guessing no";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_directive_f="guessing no";;
|
||||
changequote([,])dnl
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
|
|
@ -688,9 +711,11 @@ int main ()
|
|||
[gl_cv_func_printf_directive_n=yes],
|
||||
[gl_cv_func_printf_directive_n=no],
|
||||
[case "$host_os" in
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_printf_directive_n="guessing no";;
|
||||
*) gl_cv_func_printf_directive_n="guessing yes";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_directive_n="guessing no";;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_printf_directive_n="guessing no";;
|
||||
*) gl_cv_func_printf_directive_n="guessing yes";;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
|
@ -766,14 +791,16 @@ int main ()
|
|||
[
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
irix*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
solaris*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
|
||||
*) gl_cv_func_printf_directive_ls="guessing yes";;
|
||||
openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
irix*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
solaris*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_directive_ls="guessing no";;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
|
||||
*) gl_cv_func_printf_directive_ls="guessing yes";;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
|
|
@ -810,11 +837,13 @@ int main ()
|
|||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
|
||||
gl_cv_func_printf_positions="guessing no";;
|
||||
beos*) gl_cv_func_printf_positions="guessing no";;
|
||||
# Guess no on native Windows.
|
||||
mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
|
||||
*) gl_cv_func_printf_positions="guessing yes";;
|
||||
gl_cv_func_printf_positions="guessing no";;
|
||||
beos*) gl_cv_func_printf_positions="guessing no";;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_printf_positions="guessing yes";;
|
||||
# Guess no on native Windows.
|
||||
mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
|
||||
*) gl_cv_func_printf_positions="guessing yes";;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
|
|
@ -849,11 +878,13 @@ int main ()
|
|||
[
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
|
||||
netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
|
||||
# Guess no on native Windows.
|
||||
mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
|
||||
*) gl_cv_func_printf_flag_grouping="guessing yes";;
|
||||
cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
|
||||
netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_flag_grouping="guessing no";;
|
||||
# Guess no on native Windows.
|
||||
mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
|
||||
*) gl_cv_func_printf_flag_grouping="guessing yes";;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
|
|
@ -890,14 +921,16 @@ int main ()
|
|||
[
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess yes on HP-UX 11.
|
||||
hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
|
||||
# Guess no on HP-UX 10 and older.
|
||||
hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
|
||||
# Guess yes otherwise.
|
||||
*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
|
||||
# Guess yes on HP-UX 11.
|
||||
hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
|
||||
# Guess no on HP-UX 10 and older.
|
||||
hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
|
||||
# Guess yes otherwise.
|
||||
*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
|
|
@ -935,14 +968,18 @@ int main ()
|
|||
[
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_printf_flag_zero="guessing yes";;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_printf_flag_zero="guessing no";;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_printf_flag_zero="guessing no";;
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_printf_flag_zero="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_printf_flag_zero="guessing yes";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_flag_zero="guessing no";;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_printf_flag_zero="guessing no";;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_printf_flag_zero="guessing no";;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
|
|
@ -995,10 +1032,12 @@ int main ()
|
|||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess no only on Solaris, native Windows, and BeOS systems.
|
||||
solaris*) gl_cv_func_printf_precision="guessing no" ;;
|
||||
mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
|
||||
beos*) gl_cv_func_printf_precision="guessing no" ;;
|
||||
*) gl_cv_func_printf_precision="guessing yes" ;;
|
||||
solaris*) gl_cv_func_printf_precision="guessing no" ;;
|
||||
mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
|
||||
beos*) gl_cv_func_printf_precision="guessing no" ;;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_printf_precision="guessing yes" ;;
|
||||
*) gl_cv_func_printf_precision="guessing yes" ;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
])
|
||||
|
|
@ -1095,28 +1134,30 @@ changequote([,])dnl
|
|||
if test "$gl_cv_func_printf_enomem" = "guessing no"; then
|
||||
changequote(,)dnl
|
||||
case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on Solaris.
|
||||
solaris*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on AIX.
|
||||
aix*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on HP-UX/hppa.
|
||||
hpux*) case "$host_cpu" in
|
||||
hppa*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
*) gl_cv_func_printf_enomem="guessing no";;
|
||||
esac
|
||||
;;
|
||||
# Guess yes on IRIX.
|
||||
irix*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on OSF/1.
|
||||
osf*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on Haiku.
|
||||
haiku*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_printf_enomem="guessing no";;
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on Solaris.
|
||||
solaris*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on AIX.
|
||||
aix*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on HP-UX/hppa.
|
||||
hpux*) case "$host_cpu" in
|
||||
hppa*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
*) gl_cv_func_printf_enomem="guessing no";;
|
||||
esac
|
||||
;;
|
||||
# Guess yes on IRIX.
|
||||
irix*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on OSF/1.
|
||||
osf*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess yes on Haiku.
|
||||
haiku*) gl_cv_func_printf_enomem="guessing yes";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_printf_enomem="guessing no";;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_printf_enomem="guessing no";;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
fi
|
||||
|
|
@ -1177,6 +1218,8 @@ changequote(,)dnl
|
|||
case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 5.
|
||||
freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
|
||||
|
|
@ -1208,6 +1251,8 @@ changequote(,)dnl
|
|||
netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
@ -1277,6 +1322,8 @@ int main ()
|
|||
changequote(,)dnl
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 5.
|
||||
freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
|
||||
|
|
@ -1299,6 +1346,8 @@ changequote(,)dnl
|
|||
netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";;
|
||||
changequote([,])dnl
|
||||
# Guess yes on MSVC, no on mingw.
|
||||
mingw*) AC_EGREP_CPP([Known], [
|
||||
|
|
@ -1367,6 +1416,8 @@ changequote(,)dnl
|
|||
case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_snprintf_directive_n="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 5.
|
||||
freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
|
||||
|
|
@ -1391,6 +1442,8 @@ changequote(,)dnl
|
|||
netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
|
||||
# Guess no on Android.
|
||||
linux*-android*) gl_cv_func_snprintf_directive_n="guessing no";;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_snprintf_directive_n="guessing no";;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
@ -1440,9 +1493,11 @@ int main()
|
|||
[gl_cv_func_snprintf_size1=yes],
|
||||
[gl_cv_func_snprintf_size1=no],
|
||||
[case "$host_os" in
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
|
||||
*) gl_cv_func_snprintf_size1="guessing yes" ;;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
|
||||
*) gl_cv_func_snprintf_size1="guessing yes" ;;
|
||||
esac
|
||||
])
|
||||
])
|
||||
|
|
@ -1517,6 +1572,8 @@ changequote(,)dnl
|
|||
case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
|
||||
# Guess yes on FreeBSD >= 5.
|
||||
freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
|
||||
freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
|
||||
|
|
@ -1540,6 +1597,8 @@ changequote(,)dnl
|
|||
netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
|
||||
# Guess yes on BeOS.
|
||||
beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
|
||||
# Guess yes on Android.
|
||||
linux*-android*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
|
||||
# Guess yes on native Windows.
|
||||
mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
@ -1606,6 +1665,7 @@ dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . # . # .
|
|||
dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . .
|
||||
dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . .
|
||||
dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . .
|
||||
dnl Solaris 11.4 . . # # # . . # . . . # . . . . . . . .
|
||||
dnl Solaris 11.3 . . . . # . . # . . . . . . . . . . . .
|
||||
dnl Solaris 11.0 . . # # # . . # . . . # . . . . . . . .
|
||||
dnl Solaris 10 . . # # # . . # . . . # # . . . . . . .
|
||||
|
|
@ -1625,6 +1685,7 @@ dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? .
|
|||
dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . .
|
||||
dnl Haiku . . . # # # . # . . . . . ? . . ? . . .
|
||||
dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . .
|
||||
dnl Android 4.3 . . # # # # # # . # . # . # . . . # . .
|
||||
dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . .
|
||||
dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . .
|
||||
dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . .
|
||||
|
|
|
|||
165
m4/pthread_rwlock_rdlock.m4
Normal file
165
m4/pthread_rwlock_rdlock.m4
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
# pthread_rwlock_rdlock.m4 serial 2
|
||||
dnl Copyright (C) 2017-2019 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 Inspired by
|
||||
dnl https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/2-2.c
|
||||
dnl by Intel Corporation.
|
||||
|
||||
dnl Test whether in a situation where
|
||||
dnl - an rwlock is taken by a reader and has a writer waiting,
|
||||
dnl - an additional reader requests the lock,
|
||||
dnl - the waiting writer and the requesting reader threads have the same
|
||||
dnl priority,
|
||||
dnl the requesting reader thread gets blocked, so that at some point the
|
||||
dnl waiting writer can acquire the lock.
|
||||
dnl Without such a guarantee, when there a N readers and each of the readers
|
||||
dnl spends more than 1/Nth of the time with the lock held, there is a high
|
||||
dnl probability that the waiting writer will not get the lock in a given finite
|
||||
dnl time, a phenomenon called "writer starvation".
|
||||
dnl Without such a guarantee, applications have a hard time avoiding writer
|
||||
dnl starvation.
|
||||
dnl
|
||||
dnl POSIX:2017 makes this requirement only for implementations that support TPS
|
||||
dnl (Thread Priority Scheduling) and only for the scheduling policies SCHED_FIFO
|
||||
dnl and SCHED_RR, see
|
||||
dnl http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html
|
||||
dnl but this test verifies the guarantee regardless of TPS and regardless of
|
||||
dnl scheduling policy.
|
||||
dnl Glibc currently does not provide this guarantee, see
|
||||
dnl https://sourceware.org/bugzilla/show_bug.cgi?id=13701
|
||||
AC_DEFUN([gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER],
|
||||
[
|
||||
AC_REQUIRE([gl_THREADLIB_EARLY])
|
||||
AC_CACHE_CHECK([whether pthread_rwlock_rdlock prefers a writer to a reader],
|
||||
[gl_cv_pthread_rwlock_rdlock_prefer_writer],
|
||||
[save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIBMULTITHREAD"
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE([[
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define SUCCEED() exit (0)
|
||||
#define FAILURE() exit (1)
|
||||
#define UNEXPECTED(n) (exit (10 + (n)))
|
||||
|
||||
/* The main thread creates the waiting writer and the requesting reader threads
|
||||
in the default way; this guarantees that they have the same priority.
|
||||
We can reuse the main thread as first reader thread. */
|
||||
|
||||
static pthread_rwlock_t lock;
|
||||
static pthread_t reader1;
|
||||
static pthread_t writer;
|
||||
static pthread_t reader2;
|
||||
static pthread_t timer;
|
||||
/* Used to pass control from writer to reader2 and from reader2 to timer,
|
||||
as in a relay race.
|
||||
Passing control from one running thread to another running thread
|
||||
is most likely faster than to create the second thread. */
|
||||
static pthread_mutex_t baton;
|
||||
|
||||
static void *
|
||||
timer_func (void *ignored)
|
||||
{
|
||||
/* Step 13 (can be before or after step 12):
|
||||
The timer thread takes the baton, then waits a moment to make sure
|
||||
it can tell whether the second reader thread is blocked at step 12. */
|
||||
if (pthread_mutex_lock (&baton))
|
||||
UNEXPECTED (13);
|
||||
usleep (100000);
|
||||
/* By the time we get here, it's clear that the second reader thread is
|
||||
blocked at step 12. This is the desired behaviour. */
|
||||
SUCCEED ();
|
||||
}
|
||||
|
||||
static void *
|
||||
reader2_func (void *ignored)
|
||||
{
|
||||
int err;
|
||||
|
||||
/* Step 8 (can be before or after step 7):
|
||||
The second reader thread takes the baton, then waits a moment to make sure
|
||||
the writer thread has reached step 7. */
|
||||
if (pthread_mutex_lock (&baton))
|
||||
UNEXPECTED (8);
|
||||
usleep (100000);
|
||||
/* Step 9: The second reader thread requests the lock. */
|
||||
err = pthread_rwlock_tryrdlock (&lock);
|
||||
if (err == 0)
|
||||
FAILURE ();
|
||||
else if (err != EBUSY)
|
||||
UNEXPECTED (9);
|
||||
/* Step 10: Launch a timer, to test whether the next call blocks. */
|
||||
if (pthread_create (&timer, NULL, timer_func, NULL))
|
||||
UNEXPECTED (10);
|
||||
/* Step 11: Release the baton. */
|
||||
if (pthread_mutex_unlock (&baton))
|
||||
UNEXPECTED (11);
|
||||
/* Step 12: The second reader thread requests the lock. */
|
||||
err = pthread_rwlock_rdlock (&lock);
|
||||
if (err == 0)
|
||||
FAILURE ();
|
||||
else
|
||||
UNEXPECTED (12);
|
||||
}
|
||||
|
||||
static void *
|
||||
writer_func (void *ignored)
|
||||
{
|
||||
/* Step 4: Take the baton, so that the second reader thread does not go ahead
|
||||
too early. */
|
||||
if (pthread_mutex_lock (&baton))
|
||||
UNEXPECTED (4);
|
||||
/* Step 5: Create the second reader thread. */
|
||||
if (pthread_create (&reader2, NULL, reader2_func, NULL))
|
||||
UNEXPECTED (5);
|
||||
/* Step 6: Release the baton. */
|
||||
if (pthread_mutex_unlock (&baton))
|
||||
UNEXPECTED (6);
|
||||
/* Step 7: The writer thread requests the lock. */
|
||||
if (pthread_rwlock_wrlock (&lock))
|
||||
UNEXPECTED (7);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
reader1 = pthread_self ();
|
||||
|
||||
/* Step 1: The main thread initializes the lock and the baton. */
|
||||
if (pthread_rwlock_init (&lock, NULL))
|
||||
UNEXPECTED (1);
|
||||
if (pthread_mutex_init (&baton, NULL))
|
||||
UNEXPECTED (1);
|
||||
/* Step 2: The main thread acquires the lock as a reader. */
|
||||
if (pthread_rwlock_rdlock (&lock))
|
||||
UNEXPECTED (2);
|
||||
/* Step 3: Create the writer thread. */
|
||||
if (pthread_create (&writer, NULL, writer_func, NULL))
|
||||
UNEXPECTED (3);
|
||||
/* Job done. Go to sleep. */
|
||||
for (;;)
|
||||
{
|
||||
sleep (1);
|
||||
}
|
||||
}
|
||||
]])],
|
||||
[gl_cv_pthread_rwlock_rdlock_prefer_writer=yes],
|
||||
[gl_cv_pthread_rwlock_rdlock_prefer_writer=no],
|
||||
[gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"])
|
||||
LIBS="$save_LIBS"
|
||||
])
|
||||
case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in
|
||||
*yes)
|
||||
AC_DEFINE([HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [1],
|
||||
[Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader.])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
# quote.m4 serial 6
|
||||
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2018 Free Software Foundation,
|
||||
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# quotearg.m4 serial 9
|
||||
dnl Copyright (C) 2002, 2004-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002, 2004-2019 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 @@
|
|||
# rawmemchr.m4 serial 2
|
||||
dnl Copyright (C) 2003, 2007-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003, 2007-2019 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 @@
|
|||
# Look up an environment variable more securely.
|
||||
dnl Copyright 2013-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright 2013-2019 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,11 +1,13 @@
|
|||
# size_max.m4 serial 10
|
||||
dnl Copyright (C) 2003, 2005-2006, 2008-2018 Free Software Foundation, Inc.
|
||||
# size_max.m4 serial 11
|
||||
dnl Copyright (C) 2003, 2005-2006, 2008-2019 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.61])
|
||||
|
||||
AC_DEFUN([gl_SIZE_MAX],
|
||||
[
|
||||
AC_CHECK_HEADERS([stdint.h])
|
||||
|
|
@ -71,9 +73,3 @@ Found it
|
|||
# undef SIZE_MAX
|
||||
#endif])
|
||||
])
|
||||
|
||||
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,5 +1,5 @@
|
|||
# sleep.m4 serial 9
|
||||
dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
|
||||
# sleep.m4 serial 10
|
||||
dnl Copyright (C) 2007-2019 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,6 +48,8 @@ handle_alarm (int sig)
|
|||
[case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_sleep_works="guessing yes" ;;
|
||||
# Guess no on native Windows.
|
||||
mingw*) gl_cv_func_sleep_works="guessing no" ;;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# ssize_t.m4 serial 5 (gettext-0.18.2)
|
||||
dnl Copyright (C) 2001-2003, 2006, 2010-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2001-2003, 2006, 2010-2019 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,6 +1,6 @@
|
|||
# Checks for stat-related time functions.
|
||||
|
||||
# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2018 Free Software
|
||||
# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2019 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# serial 15
|
||||
|
||||
# Copyright (C) 2009-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009-2019 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
|
|||
824
m4/std-gnu11.m4
Normal file
824
m4/std-gnu11.m4
Normal file
|
|
@ -0,0 +1,824 @@
|
|||
# Prefer GNU C11 and C++11 to earlier versions. -*- coding: utf-8 -*-
|
||||
|
||||
# This implementation is taken from GNU Autoconf lib/autoconf/c.m4
|
||||
# commit 017d5ddd82854911f0119691d91ea8a1438824d6
|
||||
# dated Sun Apr 3 13:57:17 2016 -0700
|
||||
# This implementation will be obsolete once we can assume Autoconf 2.70
|
||||
# or later is installed everywhere a Gnulib program might be developed.
|
||||
|
||||
|
||||
# Copyright (C) 2001-2019 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# Written by David MacKenzie, with help from
|
||||
# Akim Demaille, Paul Eggert,
|
||||
# François Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
|
||||
# Roland McGrath, Noah Friedman, david d zuhn, and many others.
|
||||
|
||||
|
||||
# AC_PROG_CC([COMPILER ...])
|
||||
# --------------------------
|
||||
# COMPILER ... is a space separated list of C compilers to search for.
|
||||
# This just gives the user an opportunity to specify an alternative
|
||||
# search list for the C compiler.
|
||||
AC_DEFUN_ONCE([AC_PROG_CC],
|
||||
[AC_LANG_PUSH(C)dnl
|
||||
AC_ARG_VAR([CC], [C compiler command])dnl
|
||||
AC_ARG_VAR([CFLAGS], [C compiler flags])dnl
|
||||
_AC_ARG_VAR_LDFLAGS()dnl
|
||||
_AC_ARG_VAR_LIBS()dnl
|
||||
_AC_ARG_VAR_CPPFLAGS()dnl
|
||||
m4_ifval([$1],
|
||||
[AC_CHECK_TOOLS(CC, [$1])],
|
||||
[AC_CHECK_TOOL(CC, gcc)
|
||||
if test -z "$CC"; then
|
||||
dnl Here we want:
|
||||
dnl AC_CHECK_TOOL(CC, cc)
|
||||
dnl but without the check for a tool without the prefix.
|
||||
dnl Until the check is removed from there, copy the code:
|
||||
if test -n "$ac_tool_prefix"; then
|
||||
AC_CHECK_PROG(CC, [${ac_tool_prefix}cc], [${ac_tool_prefix}cc])
|
||||
fi
|
||||
fi
|
||||
if test -z "$CC"; then
|
||||
AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
|
||||
fi
|
||||
if test -z "$CC"; then
|
||||
AC_CHECK_TOOLS(CC, cl.exe)
|
||||
fi
|
||||
if test -z "$CC"; then
|
||||
AC_CHECK_TOOL(CC, clang)
|
||||
fi
|
||||
])
|
||||
|
||||
test -z "$CC" && AC_MSG_FAILURE([no acceptable C compiler found in \$PATH])
|
||||
|
||||
# Provide some information about the compiler.
|
||||
_AS_ECHO_LOG([checking for _AC_LANG compiler version])
|
||||
set X $ac_compile
|
||||
ac_compiler=$[2]
|
||||
for ac_option in --version -v -V -qversion -version; do
|
||||
m4_ifdef([_AC_DO_LIMIT],[_AC_DO_LIMIT],[_AC_DO])([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD])
|
||||
done
|
||||
|
||||
m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
|
||||
m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
|
||||
_AC_LANG_COMPILER_GNU
|
||||
if test $ac_compiler_gnu = yes; then
|
||||
GCC=yes
|
||||
else
|
||||
GCC=
|
||||
fi
|
||||
_AC_PROG_CC_G
|
||||
dnl
|
||||
dnl Set ac_prog_cc_stdc to the supported C version.
|
||||
dnl Also set the documented variable ac_cv_prog_cc_stdc;
|
||||
dnl its name was chosen when it was cached, but it is no longer cached.
|
||||
_AC_PROG_CC_C11([ac_prog_cc_stdc=c11
|
||||
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11],
|
||||
[_AC_PROG_CC_C99([ac_prog_cc_stdc=c99
|
||||
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99],
|
||||
[_AC_PROG_CC_C89([ac_prog_cc_stdc=c89
|
||||
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89],
|
||||
[ac_prog_cc_stdc=no
|
||||
ac_cv_prog_cc_stdc=no])])])
|
||||
dnl
|
||||
AC_LANG_POP(C)dnl
|
||||
])# AC_PROG_CC
|
||||
|
||||
|
||||
|
||||
# AC_PROG_CXX([LIST-OF-COMPILERS])
|
||||
# --------------------------------
|
||||
# LIST-OF-COMPILERS is a space separated list of C++ compilers to search
|
||||
# for (if not specified, a default list is used). This just gives the
|
||||
# user an opportunity to specify an alternative search list for the C++
|
||||
# compiler.
|
||||
# aCC HP-UX C++ compiler much better than `CC', so test before.
|
||||
# FCC Fujitsu C++ compiler
|
||||
# KCC KAI C++ compiler
|
||||
# RCC Rational C++
|
||||
# xlC_r AIX C Set++ (with support for reentrant code)
|
||||
# xlC AIX C Set++
|
||||
AC_DEFUN([AC_PROG_CXX],
|
||||
[AC_LANG_PUSH(C++)dnl
|
||||
AC_ARG_VAR([CXX], [C++ compiler command])dnl
|
||||
AC_ARG_VAR([CXXFLAGS], [C++ compiler flags])dnl
|
||||
_AC_ARG_VAR_LDFLAGS()dnl
|
||||
_AC_ARG_VAR_LIBS()dnl
|
||||
_AC_ARG_VAR_CPPFLAGS()dnl
|
||||
_AC_ARG_VAR_PRECIOUS([CCC])dnl
|
||||
if test -z "$CXX"; then
|
||||
if test -n "$CCC"; then
|
||||
CXX=$CCC
|
||||
else
|
||||
AC_CHECK_TOOLS(CXX,
|
||||
[m4_default([$1],
|
||||
[g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++])],
|
||||
g++)
|
||||
fi
|
||||
fi
|
||||
# Provide some information about the compiler.
|
||||
_AS_ECHO_LOG([checking for _AC_LANG compiler version])
|
||||
set X $ac_compile
|
||||
ac_compiler=$[2]
|
||||
for ac_option in --version -v -V -qversion; do
|
||||
m4_ifdef([_AC_DO_LIMIT],[_AC_DO_LIMIT],[_AC_DO])([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD])
|
||||
done
|
||||
|
||||
m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
|
||||
m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
|
||||
_AC_LANG_COMPILER_GNU
|
||||
if test $ac_compiler_gnu = yes; then
|
||||
GXX=yes
|
||||
else
|
||||
GXX=
|
||||
fi
|
||||
_AC_PROG_CXX_G
|
||||
_AC_PROG_CXX_CXX11([ac_prog_cxx_stdcxx=cxx11
|
||||
ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
|
||||
ac_cv_prog_cxx_cxx98=$ac_cv_prog_cxx_cxx11],
|
||||
[_AC_PROG_CXX_CXX98([ac_prog_cxx_stdcxx=cxx98
|
||||
ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98],
|
||||
[ac_prog_cxx_stdcxx=no
|
||||
ac_cv_prog_cxx_stdcxx=no])])
|
||||
AC_LANG_POP(C++)dnl
|
||||
])# AC_PROG_CXX
|
||||
|
||||
|
||||
# _AC_C_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST,
|
||||
# ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE)
|
||||
# --------------------------------------------------------------
|
||||
# Check whether the C compiler accepts features of STANDARD (e.g `c89', `c99')
|
||||
# by trying to compile a program of TEST-PROLOGUE and TEST-BODY. If this fails,
|
||||
# try again with each compiler option in the space-separated OPTION-LIST; if one
|
||||
# helps, append it to CC. If eventually successful, run ACTION-IF-AVAILABLE,
|
||||
# else ACTION-IF-UNAVAILABLE.
|
||||
AC_DEFUN([_AC_C_STD_TRY],
|
||||
[AC_MSG_CHECKING([for $CC option to enable ]m4_translit($1, [c], [C])[ features])
|
||||
AC_CACHE_VAL(ac_cv_prog_cc_$1,
|
||||
[ac_cv_prog_cc_$1=no
|
||||
ac_save_CC=$CC
|
||||
AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])])
|
||||
for ac_arg in '' $4
|
||||
do
|
||||
CC="$ac_save_CC $ac_arg"
|
||||
_AC_COMPILE_IFELSE([], [ac_cv_prog_cc_$1=$ac_arg])
|
||||
test "x$ac_cv_prog_cc_$1" != "xno" && break
|
||||
done
|
||||
rm -f conftest.$ac_ext
|
||||
CC=$ac_save_CC
|
||||
])# AC_CACHE_VAL
|
||||
ac_prog_cc_stdc_options=
|
||||
case "x$ac_cv_prog_cc_$1" in
|
||||
x)
|
||||
AC_MSG_RESULT([none needed]) ;;
|
||||
xno)
|
||||
AC_MSG_RESULT([unsupported]) ;;
|
||||
*)
|
||||
ac_prog_cc_stdc_options=" $ac_cv_prog_cc_$1"
|
||||
CC=$CC$ac_prog_cc_stdc_options
|
||||
AC_MSG_RESULT([$ac_cv_prog_cc_$1]) ;;
|
||||
esac
|
||||
AS_IF([test "x$ac_cv_prog_cc_$1" != xno], [$5], [$6])
|
||||
])# _AC_C_STD_TRY
|
||||
|
||||
# _AC_C_C99_TEST_HEADER
|
||||
# ---------------------
|
||||
# A C header suitable for testing for C99.
|
||||
AC_DEFUN([_AC_C_C99_TEST_HEADER],
|
||||
[[#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <wchar.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// Check varargs macros. These examples are taken from C99 6.10.3.5.
|
||||
#define debug(...) fprintf (stderr, __VA_ARGS__)
|
||||
#define showlist(...) puts (#__VA_ARGS__)
|
||||
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
|
||||
static void
|
||||
test_varargs_macros (void)
|
||||
{
|
||||
int x = 1234;
|
||||
int y = 5678;
|
||||
debug ("Flag");
|
||||
debug ("X = %d\n", x);
|
||||
showlist (The first, second, and third items.);
|
||||
report (x>y, "x is %d but y is %d", x, y);
|
||||
}
|
||||
|
||||
// Check long long types.
|
||||
#define BIG64 18446744073709551615ull
|
||||
#define BIG32 4294967295ul
|
||||
#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
|
||||
#if !BIG_OK
|
||||
your preprocessor is broken;
|
||||
#endif
|
||||
#if BIG_OK
|
||||
#else
|
||||
your preprocessor is broken;
|
||||
#endif
|
||||
static long long int bignum = -9223372036854775807LL;
|
||||
static unsigned long long int ubignum = BIG64;
|
||||
|
||||
struct incomplete_array
|
||||
{
|
||||
int datasize;
|
||||
double data[];
|
||||
};
|
||||
|
||||
struct named_init {
|
||||
int number;
|
||||
const wchar_t *name;
|
||||
double average;
|
||||
};
|
||||
|
||||
typedef const char *ccp;
|
||||
|
||||
static inline int
|
||||
test_restrict (ccp restrict text)
|
||||
{
|
||||
// See if C++-style comments work.
|
||||
// Iterate through items via the restricted pointer.
|
||||
// Also check for declarations in for loops.
|
||||
for (unsigned int i = 0; *(text+i) != '\0'; ++i)
|
||||
continue;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Check varargs and va_copy.
|
||||
static bool
|
||||
test_varargs (const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
va_list args_copy;
|
||||
va_copy (args_copy, args);
|
||||
|
||||
const char *str = "";
|
||||
int number = 0;
|
||||
float fnumber = 0;
|
||||
|
||||
while (*format)
|
||||
{
|
||||
switch (*format++)
|
||||
{
|
||||
case 's': // string
|
||||
str = va_arg (args_copy, const char *);
|
||||
break;
|
||||
case 'd': // int
|
||||
number = va_arg (args_copy, int);
|
||||
break;
|
||||
case 'f': // float
|
||||
fnumber = va_arg (args_copy, double);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
va_end (args_copy);
|
||||
va_end (args);
|
||||
|
||||
return *str && number && fnumber;
|
||||
}]])# _AC_C_C99_TEST_HEADER
|
||||
|
||||
# _AC_C_C99_TEST_BODY
|
||||
# -------------------
|
||||
# A C body suitable for testing for C99, assuming the corresponding header.
|
||||
AC_DEFUN([_AC_C_C99_TEST_BODY],
|
||||
[[
|
||||
// Check bool.
|
||||
_Bool success = false;
|
||||
|
||||
// Check restrict.
|
||||
if (test_restrict ("String literal") == 0)
|
||||
success = true;
|
||||
char *restrict newvar = "Another string";
|
||||
|
||||
// Check varargs.
|
||||
success &= test_varargs ("s, d' f .", "string", 65, 34.234);
|
||||
test_varargs_macros ();
|
||||
|
||||
// Check flexible array members.
|
||||
struct incomplete_array *ia =
|
||||
malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
|
||||
ia->datasize = 10;
|
||||
for (int i = 0; i < ia->datasize; ++i)
|
||||
ia->data[i] = i * 1.234;
|
||||
|
||||
// Check named initializers.
|
||||
struct named_init ni = {
|
||||
.number = 34,
|
||||
.name = L"Test wide string",
|
||||
.average = 543.34343,
|
||||
};
|
||||
|
||||
ni.number = 58;
|
||||
|
||||
int dynamic_array[ni.number];
|
||||
dynamic_array[ni.number - 1] = 543;
|
||||
|
||||
// work around unused variable warnings
|
||||
return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
|
||||
|| dynamic_array[ni.number - 1] != 543);
|
||||
]])
|
||||
|
||||
# _AC_PROG_CC_C99 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
|
||||
# ----------------------------------------------------------------
|
||||
# If the C compiler is not in ISO C99 mode by default, try to add an
|
||||
# option to output variable CC to make it so. This macro tries
|
||||
# various options that select ISO C99 on some system or another. It
|
||||
# considers the compiler to be in ISO C99 mode if it handles _Bool,
|
||||
# // comments, flexible array members, inline, long long int, mixed
|
||||
# code and declarations, named initialization of structs, restrict,
|
||||
# va_copy, varargs macros, variable declarations in for loops and
|
||||
# variable length arrays.
|
||||
AC_DEFUN([_AC_PROG_CC_C99],
|
||||
[_AC_C_STD_TRY([c99],
|
||||
[_AC_C_C99_TEST_HEADER],
|
||||
[_AC_C_C99_TEST_BODY],
|
||||
dnl Try
|
||||
dnl GCC -std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999)
|
||||
dnl IBM XL C -qlanglvl=extc1x (V12.1; does not pass C11 test)
|
||||
dnl IBM XL C -qlanglvl=extc99
|
||||
dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdc99)
|
||||
dnl HP cc -AC99
|
||||
dnl Intel ICC -std=c99, -c99 (deprecated)
|
||||
dnl IRIX -c99
|
||||
dnl Solaris -D_STDC_C99=
|
||||
dnl cc's -xc99 option uses linker magic to define the external
|
||||
dnl symbol __xpg4 as if by "int __xpg4 = 1;", which enables C99
|
||||
dnl behavior for C library functions. This is not wanted here,
|
||||
dnl because it means that a single module compiled with -xc99
|
||||
dnl alters C runtime behavior for the entire program, not for
|
||||
dnl just the module. Instead, define the (private) symbol
|
||||
dnl _STDC_C99, which suppresses a bogus failure in <stdbool.h>.
|
||||
dnl The resulting compiler passes the test case here, and that's
|
||||
dnl good enough. For more, please see the thread starting at:
|
||||
dnl https://lists.gnu.org/r/autoconf/2010-12/msg00059.html
|
||||
dnl Tru64 -c99
|
||||
dnl with extended modes being tried first.
|
||||
[[-std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99]], [$1], [$2])[]dnl
|
||||
])# _AC_PROG_CC_C99
|
||||
|
||||
|
||||
# _AC_PROG_CC_C11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
|
||||
# ----------------------------------------------------------------
|
||||
# If the C compiler is not in ISO C11 mode by default, try to add an
|
||||
# option to output variable CC to make it so. This macro tries
|
||||
# various options that select ISO C11 on some system or another. It
|
||||
# considers the compiler to be in ISO C11 mode if it handles _Alignas,
|
||||
# _Alignof, _Noreturn, _Static_assert, UTF-8 string literals,
|
||||
# duplicate typedefs, and anonymous structures and unions.
|
||||
AC_DEFUN([_AC_PROG_CC_C11],
|
||||
[_AC_C_STD_TRY([c11],
|
||||
[_AC_C_C99_TEST_HEADER[
|
||||
// Check _Alignas.
|
||||
char _Alignas (double) aligned_as_double;
|
||||
char _Alignas (0) no_special_alignment;
|
||||
extern char aligned_as_int;
|
||||
char _Alignas (0) _Alignas (int) aligned_as_int;
|
||||
|
||||
// Check _Alignof.
|
||||
enum
|
||||
{
|
||||
int_alignment = _Alignof (int),
|
||||
int_array_alignment = _Alignof (int[100]),
|
||||
char_alignment = _Alignof (char)
|
||||
};
|
||||
_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
|
||||
|
||||
// Check _Noreturn.
|
||||
int _Noreturn does_not_return (void) { for (;;) continue; }
|
||||
|
||||
// Check _Static_assert.
|
||||
struct test_static_assert
|
||||
{
|
||||
int x;
|
||||
_Static_assert (sizeof (int) <= sizeof (long int),
|
||||
"_Static_assert does not work in struct");
|
||||
long int y;
|
||||
};
|
||||
|
||||
// Check UTF-8 literals.
|
||||
#define u8 syntax error!
|
||||
char const utf8_literal[] = u8"happens to be ASCII" "another string";
|
||||
|
||||
// Check duplicate typedefs.
|
||||
typedef long *long_ptr;
|
||||
typedef long int *long_ptr;
|
||||
typedef long_ptr long_ptr;
|
||||
|
||||
// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
|
||||
struct anonymous
|
||||
{
|
||||
union {
|
||||
struct { int i; int j; };
|
||||
struct { int k; long int l; } w;
|
||||
};
|
||||
int m;
|
||||
} v1;
|
||||
]],
|
||||
[_AC_C_C99_TEST_BODY[
|
||||
v1.i = 2;
|
||||
v1.w.k = 5;
|
||||
_Static_assert ((offsetof (struct anonymous, i)
|
||||
== offsetof (struct anonymous, w.k)),
|
||||
"Anonymous union alignment botch");
|
||||
]],
|
||||
dnl Try
|
||||
dnl GCC -std=gnu11 (unused restrictive mode: -std=c11)
|
||||
dnl with extended modes being tried first.
|
||||
dnl
|
||||
dnl Do not try -qlanglvl=extc1x, because IBM XL C V12.1 (the latest version as
|
||||
dnl of September 2012) does not pass the C11 test. For now, try extc1x when
|
||||
dnl compiling the C99 test instead, since it enables _Static_assert and
|
||||
dnl _Noreturn, which is a win. If -qlanglvl=extc11 or -qlanglvl=extc1x passes
|
||||
dnl the C11 test in some future version of IBM XL C, we'll add it here,
|
||||
dnl preferably extc11.
|
||||
[[-std=gnu11]], [$1], [$2])[]dnl
|
||||
])# _AC_PROG_CC_C11
|
||||
|
||||
|
||||
# AC_PROG_CC_C89
|
||||
# --------------
|
||||
# Do not use AU_ALIAS here and in AC_PROG_CC_C99 and AC_PROG_CC_STDC,
|
||||
# as that'd be incompatible with how Automake redefines AC_PROG_CC. See
|
||||
# <https://lists.gnu.org/r/autoconf/2012-10/msg00048.html>.
|
||||
AU_DEFUN([AC_PROG_CC_C89],
|
||||
[AC_REQUIRE([AC_PROG_CC])],
|
||||
[$0 is obsolete; use AC_PROG_CC]
|
||||
)
|
||||
|
||||
# AC_PROG_CC_C99
|
||||
# --------------
|
||||
AU_DEFUN([AC_PROG_CC_C99],
|
||||
[AC_REQUIRE([AC_PROG_CC])],
|
||||
[$0 is obsolete; use AC_PROG_CC]
|
||||
)
|
||||
|
||||
# AC_PROG_CC_STDC
|
||||
# ---------------
|
||||
AU_DEFUN([AC_PROG_CC_STDC],
|
||||
[AC_REQUIRE([AC_PROG_CC])],
|
||||
[$0 is obsolete; use AC_PROG_CC]
|
||||
)
|
||||
|
||||
|
||||
# AC_C_PROTOTYPES
|
||||
# ---------------
|
||||
# Check if the C compiler supports prototypes, included if it needs
|
||||
# options.
|
||||
AC_DEFUN([AC_C_PROTOTYPES],
|
||||
[AC_REQUIRE([AC_PROG_CC])dnl
|
||||
if test "$ac_prog_cc_stdc" != no; then
|
||||
AC_DEFINE(PROTOTYPES, 1,
|
||||
[Define to 1 if the C compiler supports function prototypes.])
|
||||
AC_DEFINE(__PROTOTYPES, 1,
|
||||
[Define like PROTOTYPES; this can be used by system headers.])
|
||||
fi
|
||||
])# AC_C_PROTOTYPES
|
||||
|
||||
|
||||
# _AC_CXX_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST,
|
||||
# ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE)
|
||||
# ----------------------------------------------------------------
|
||||
# Check whether the C++ compiler accepts features of STANDARD (e.g
|
||||
# `cxx98', `cxx11') by trying to compile a program of TEST-PROLOGUE
|
||||
# and TEST-BODY. If this fails, try again with each compiler option
|
||||
# in the space-separated OPTION-LIST; if one helps, append it to CXX.
|
||||
# If eventually successful, run ACTION-IF-AVAILABLE, else
|
||||
# ACTION-IF-UNAVAILABLE.
|
||||
AC_DEFUN([_AC_CXX_STD_TRY],
|
||||
[AC_MSG_CHECKING([for $CXX option to enable ]m4_translit(m4_translit($1, [x], [+]), [a-z], [A-Z])[ features])
|
||||
AC_LANG_PUSH(C++)dnl
|
||||
AC_CACHE_VAL(ac_cv_prog_cxx_$1,
|
||||
[ac_cv_prog_cxx_$1=no
|
||||
ac_save_CXX=$CXX
|
||||
AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])])
|
||||
for ac_arg in '' $4
|
||||
do
|
||||
CXX="$ac_save_CXX $ac_arg"
|
||||
_AC_COMPILE_IFELSE([], [ac_cv_prog_cxx_$1=$ac_arg])
|
||||
test "x$ac_cv_prog_cxx_$1" != "xno" && break
|
||||
done
|
||||
rm -f conftest.$ac_ext
|
||||
CXX=$ac_save_CXX
|
||||
])# AC_CACHE_VAL
|
||||
ac_prog_cxx_stdcxx_options=
|
||||
case "x$ac_cv_prog_cxx_$1" in
|
||||
x)
|
||||
AC_MSG_RESULT([none needed]) ;;
|
||||
xno)
|
||||
AC_MSG_RESULT([unsupported]) ;;
|
||||
*)
|
||||
ac_prog_cxx_stdcxx_options=" $ac_cv_prog_cxx_$1"
|
||||
CXX=$CXX$ac_prog_cxx_stdcxx_options
|
||||
AC_MSG_RESULT([$ac_cv_prog_cxx_$1]) ;;
|
||||
esac
|
||||
AC_LANG_POP(C++)dnl
|
||||
AS_IF([test "x$ac_cv_prog_cxx_$1" != xno], [$5], [$6])
|
||||
])# _AC_CXX_STD_TRY
|
||||
|
||||
# _AC_CXX_CXX98_TEST_HEADER
|
||||
# -------------------------
|
||||
# A C++ header suitable for testing for CXX98.
|
||||
AC_DEFUN([_AC_CXX_CXX98_TEST_HEADER],
|
||||
[[
|
||||
#include <algorithm>
|
||||
#include <cstdlib>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
#include <iostream>
|
||||
#include <list>
|
||||
#include <map>
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
namespace test {
|
||||
typedef std::vector<std::string> string_vec;
|
||||
typedef std::pair<int,bool> map_value;
|
||||
typedef std::map<std::string,map_value> map_type;
|
||||
typedef std::set<int> set_type;
|
||||
|
||||
template<typename T>
|
||||
class printer {
|
||||
public:
|
||||
printer(std::ostringstream& os): os(os) {}
|
||||
void operator() (T elem) { os << elem << std::endl; }
|
||||
private:
|
||||
std::ostringstream& os;
|
||||
};
|
||||
}
|
||||
]])# _AC_CXX_CXX98_TEST_HEADER
|
||||
|
||||
# _AC_CXX_CXX98_TEST_BODY
|
||||
# -----------------------
|
||||
# A C++ body suitable for testing for CXX98, assuming the corresponding header.
|
||||
AC_DEFUN([_AC_CXX_CXX98_TEST_BODY],
|
||||
[[
|
||||
|
||||
try {
|
||||
// Basic string.
|
||||
std::string teststr("ASCII text");
|
||||
teststr += " string";
|
||||
|
||||
// Simple vector.
|
||||
test::string_vec testvec;
|
||||
testvec.push_back(teststr);
|
||||
testvec.push_back("foo");
|
||||
testvec.push_back("bar");
|
||||
if (testvec.size() != 3) {
|
||||
throw std::runtime_error("vector size is not 1");
|
||||
}
|
||||
|
||||
// Dump vector into stringstream and obtain string.
|
||||
std::ostringstream os;
|
||||
for (test::string_vec::const_iterator i = testvec.begin();
|
||||
i != testvec.end(); ++i) {
|
||||
if (i + 1 != testvec.end()) {
|
||||
os << teststr << '\n';
|
||||
}
|
||||
}
|
||||
// Check algorithms work.
|
||||
std::for_each(testvec.begin(), testvec.end(), test::printer<std::string>(os));
|
||||
std::string os_out = os.str();
|
||||
|
||||
// Test pair and map.
|
||||
test::map_type testmap;
|
||||
testmap.insert(std::make_pair(std::string("key"),
|
||||
std::make_pair(53,false)));
|
||||
|
||||
// Test set.
|
||||
int values[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
|
||||
test::set_type testset(values, values + sizeof(values)/sizeof(values[0]));
|
||||
std::list<int> testlist(testset.begin(), testset.end());
|
||||
std::copy(testset.begin(), testset.end(), std::back_inserter(testlist));
|
||||
} catch (const std::exception& e) {
|
||||
std::cerr << "Caught exception: " << e.what() << std::endl;
|
||||
|
||||
// Test fstream
|
||||
std::ofstream of("test.txt");
|
||||
of << "Test ASCII text\n" << std::flush;
|
||||
of << "N= " << std::hex << std::setw(8) << std::left << 534 << std::endl;
|
||||
of.close();
|
||||
}
|
||||
std::exit(0);
|
||||
]])
|
||||
|
||||
# _AC_CXX_CXX11_TEST_HEADER
|
||||
# -------------------------
|
||||
# A C++ header suitable for testing for CXX11.
|
||||
AC_DEFUN([_AC_CXX_CXX11_TEST_HEADER],
|
||||
[[
|
||||
#include <deque>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <tuple>
|
||||
#include <array>
|
||||
#include <regex>
|
||||
#include <iostream>
|
||||
|
||||
namespace cxx11test
|
||||
{
|
||||
typedef std::shared_ptr<std::string> sptr;
|
||||
typedef std::weak_ptr<std::string> wptr;
|
||||
|
||||
typedef std::tuple<std::string,int,double> tp;
|
||||
typedef std::array<int, 20> int_array;
|
||||
|
||||
constexpr int get_val() { return 20; }
|
||||
|
||||
struct testinit
|
||||
{
|
||||
int i;
|
||||
double d;
|
||||
};
|
||||
|
||||
class delegate {
|
||||
public:
|
||||
delegate(int n) : n(n) {}
|
||||
delegate(): delegate(2354) {}
|
||||
|
||||
virtual int getval() { return this->n; };
|
||||
protected:
|
||||
int n;
|
||||
};
|
||||
|
||||
class overridden : public delegate {
|
||||
public:
|
||||
overridden(int n): delegate(n) {}
|
||||
virtual int getval() override final { return this->n * 2; }
|
||||
};
|
||||
|
||||
class nocopy {
|
||||
public:
|
||||
nocopy(int i): i(i) {}
|
||||
nocopy() = default;
|
||||
nocopy(const nocopy&) = delete;
|
||||
nocopy & operator=(const nocopy&) = delete;
|
||||
private:
|
||||
int i;
|
||||
};
|
||||
}
|
||||
]])# _AC_CXX_CXX11_TEST_HEADER
|
||||
|
||||
# _AC_CXX_CXX11_TEST_BODY
|
||||
# -----------------------
|
||||
# A C++ body suitable for testing for CXX11, assuming the corresponding header.
|
||||
AC_DEFUN([_AC_CXX_CXX11_TEST_BODY],
|
||||
[[
|
||||
{
|
||||
// Test auto and decltype
|
||||
std::deque<int> d;
|
||||
d.push_front(43);
|
||||
d.push_front(484);
|
||||
d.push_front(3);
|
||||
d.push_front(844);
|
||||
int total = 0;
|
||||
for (auto i = d.begin(); i != d.end(); ++i) { total += *i; }
|
||||
|
||||
auto a1 = 6538;
|
||||
auto a2 = 48573953.4;
|
||||
auto a3 = "String literal";
|
||||
|
||||
decltype(a2) a4 = 34895.034;
|
||||
}
|
||||
{
|
||||
// Test constexpr
|
||||
short sa[cxx11test::get_val()] = { 0 };
|
||||
}
|
||||
{
|
||||
// Test initializer lists
|
||||
cxx11test::testinit il = { 4323, 435234.23544 };
|
||||
}
|
||||
{
|
||||
// Test range-based for and lambda
|
||||
cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
|
||||
for (int &x : array) { x += 23; }
|
||||
std::for_each(array.begin(), array.end(), [](int v1){ std::cout << v1; });
|
||||
}
|
||||
{
|
||||
using cxx11test::sptr;
|
||||
using cxx11test::wptr;
|
||||
|
||||
sptr sp(new std::string("ASCII string"));
|
||||
wptr wp(sp);
|
||||
sptr sp2(wp);
|
||||
}
|
||||
{
|
||||
cxx11test::tp tuple("test", 54, 45.53434);
|
||||
double d = std::get<2>(tuple);
|
||||
std::string s;
|
||||
int i;
|
||||
std::tie(s,i,d) = tuple;
|
||||
}
|
||||
{
|
||||
static std::regex filename_regex("^_?([a-z0-9_.]+-)+[a-z0-9]+$");
|
||||
std::string testmatch("Test if this string matches");
|
||||
bool match = std::regex_search(testmatch, filename_regex);
|
||||
}
|
||||
{
|
||||
cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
|
||||
cxx11test::int_array::size_type size = array.size();
|
||||
}
|
||||
{
|
||||
// Test constructor delegation
|
||||
cxx11test::delegate d1;
|
||||
cxx11test::delegate d2();
|
||||
cxx11test::delegate d3(45);
|
||||
}
|
||||
{
|
||||
// Test override and final
|
||||
cxx11test::overridden o1(55464);
|
||||
}
|
||||
{
|
||||
// Test nullptr
|
||||
char *c = nullptr;
|
||||
}
|
||||
{
|
||||
// Test template brackets
|
||||
std::vector<std::pair<int,char*>> v1;
|
||||
}
|
||||
{
|
||||
// Unicode literals
|
||||
char const *utf8 = u8"UTF-8 string \u2500";
|
||||
char16_t const *utf16 = u"UTF-8 string \u2500";
|
||||
char32_t const *utf32 = U"UTF-32 string \u2500";
|
||||
}
|
||||
]])
|
||||
|
||||
# _AC_PROG_CXX_CXX98 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# If the C++ compiler is not in ISO C++98 mode by default, try to add
|
||||
# an option to output variable CXX to make it so. This macro tries
|
||||
# various options that select ISO C++98 on some system or another. It
|
||||
# considers the compiler to be in ISO C++98 mode if it handles basic
|
||||
# features of the std namespace including: string, containers (list,
|
||||
# map, set, vector), streams (fstreams, iostreams, stringstreams,
|
||||
# iomanip), pair, exceptions and algorithms.
|
||||
|
||||
|
||||
AC_DEFUN([_AC_PROG_CXX_CXX98],
|
||||
[_AC_CXX_STD_TRY([cxx98],
|
||||
[_AC_CXX_CXX98_TEST_HEADER],
|
||||
[_AC_CXX_CXX98_TEST_BODY],
|
||||
dnl Try
|
||||
dnl GCC -std=gnu++98 (unused restrictive mode: -std=c++98)
|
||||
dnl IBM XL C -qlanglvl=extended
|
||||
dnl HP aC++ -AA
|
||||
dnl Intel ICC -std=gnu++98
|
||||
dnl Solaris N/A (default)
|
||||
dnl Tru64 N/A (default, but -std gnu could be used)
|
||||
dnl with extended modes being tried first.
|
||||
[[-std=gnu++98 -std=c++98 -qlanglvl=extended -AA]], [$1], [$2])[]dnl
|
||||
])# _AC_PROG_CXX_CXX98
|
||||
|
||||
# _AC_PROG_CXX_CXX11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
|
||||
# -------------------------------------------------------------------
|
||||
# If the C++ compiler is not in ISO CXX11 mode by default, try to add
|
||||
# an option to output variable CXX to make it so. This macro tries
|
||||
# various options that select ISO C++11 on some system or another. It
|
||||
# considers the compiler to be in ISO C++11 mode if it handles all the
|
||||
# tests from the C++98 checks, plus the following: Language features
|
||||
# (auto, constexpr, decltype, default/deleted constructors, delegate
|
||||
# constructors, final, initializer lists, lambda functions, nullptr,
|
||||
# override, range-based for loops, template brackets without spaces,
|
||||
# unicode literals) and library features (array, memory (shared_ptr,
|
||||
# weak_ptr), regex and tuple types).
|
||||
AC_DEFUN([_AC_PROG_CXX_CXX11],
|
||||
[_AC_CXX_STD_TRY([cxx11],
|
||||
[_AC_CXX_CXX11_TEST_HEADER
|
||||
_AC_CXX_CXX98_TEST_HEADER],
|
||||
[_AC_CXX_CXX11_TEST_BODY
|
||||
_AC_CXX_CXX98_TEST_BODY],
|
||||
dnl Try
|
||||
dnl GCC -std=gnu++11 (unused restrictive mode: -std=c++11) [and 0x variants]
|
||||
dnl IBM XL C -qlanglvl=extended0x
|
||||
dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdcxx11)
|
||||
dnl HP aC++ -AA
|
||||
dnl Intel ICC -std=c++11 -std=c++0x
|
||||
dnl Solaris N/A (no support)
|
||||
dnl Tru64 N/A (no support)
|
||||
dnl with extended modes being tried first.
|
||||
[[-std=gnu++11 -std=c++11 -std=gnu++0x -std=c++0x -qlanglvl=extended0x -AA]], [$1], [$2])[]dnl
|
||||
])# _AC_PROG_CXX_CXX11
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Check for stdalign.h that conforms to C11.
|
||||
|
||||
dnl Copyright 2011-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright 2011-2019 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,6 +1,6 @@
|
|||
# Check for stdbool.h that conforms to C99.
|
||||
|
||||
dnl Copyright (C) 2002-2006, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002-2006, 2009-2019 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,6 +1,6 @@
|
|||
dnl A placeholder for <stddef.h>, for platforms that have issues.
|
||||
# stddef_h.m4 serial 5
|
||||
dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
|
||||
# stddef_h.m4 serial 6
|
||||
dnl Copyright (C) 2009-2019 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,13 +10,33 @@ AC_DEFUN([gl_STDDEF_H],
|
|||
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
|
||||
AC_REQUIRE([gt_TYPE_WCHAR_T])
|
||||
STDDEF_H=
|
||||
AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h],
|
||||
[[#include <stddef.h>
|
||||
]])
|
||||
|
||||
dnl Test whether the type max_align_t exists and whether its alignment
|
||||
dnl "is as great as is supported by the implementation in all contexts".
|
||||
AC_CACHE_CHECK([for good max_align_t],
|
||||
[gl_cv_type_max_align_t],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <stddef.h>
|
||||
unsigned int s = sizeof (max_align_t);
|
||||
#if defined __GNUC__ || defined __IBM__ALIGNOF__
|
||||
int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
|
||||
int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1];
|
||||
#endif
|
||||
]])],
|
||||
[gl_cv_type_max_align_t=yes],
|
||||
[gl_cv_type_max_align_t=no])
|
||||
])
|
||||
if test $gl_cv_type_max_align_t = no; then
|
||||
HAVE_MAX_ALIGN_T=0
|
||||
STDDEF_H=stddef.h
|
||||
fi
|
||||
|
||||
if test $gt_cv_c_wchar_t = no; then
|
||||
HAVE_WCHAR_T=0
|
||||
STDDEF_H=stddef.h
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions],
|
||||
[gl_cv_decl_null_works],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h>
|
||||
|
|
@ -28,6 +48,7 @@ AC_DEFUN([gl_STDDEF_H],
|
|||
REPLACE_NULL=1
|
||||
STDDEF_H=stddef.h
|
||||
fi
|
||||
|
||||
AC_SUBST([STDDEF_H])
|
||||
AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
|
||||
if test -n "$STDDEF_H"; then
|
||||
|
|
|
|||
15
m4/stdint.m4
15
m4/stdint.m4
|
|
@ -1,5 +1,5 @@
|
|||
# stdint.m4 serial 51
|
||||
dnl Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||||
# stdint.m4 serial 53
|
||||
dnl Copyright (C) 2001-2019 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.
|
||||
|
|
@ -7,6 +7,8 @@ dnl with or without modifications, as long as this notice is preserved.
|
|||
dnl From Paul Eggert and Bruno Haible.
|
||||
dnl Test whether <stdint.h> is supported or must be substituted.
|
||||
|
||||
AC_PREREQ([2.61])
|
||||
|
||||
AC_DEFUN_ONCE([gl_STDINT_H],
|
||||
[
|
||||
AC_PREREQ([2.59])dnl
|
||||
|
|
@ -364,8 +366,7 @@ int32_t i32 = INT32_C (0x7fffffff);
|
|||
esac
|
||||
|
||||
dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH.
|
||||
LIMITS_H=limits.h
|
||||
AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
|
||||
gl_REPLACE_LIMITS_H
|
||||
|
||||
AC_SUBST([HAVE_C99_STDINT_H])
|
||||
AC_SUBST([HAVE_SYS_BITYPES_H])
|
||||
|
|
@ -541,9 +542,3 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
|
|||
BITSIZEOF_WINT_T=32
|
||||
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,5 +1,5 @@
|
|||
# stdint_h.m4 serial 9
|
||||
dnl Copyright (C) 1997-2004, 2006, 2008-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 1997-2004, 2006, 2008-2019 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 @@
|
|||
# stdio_h.m4 serial 49
|
||||
dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2007-2019 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 @@
|
|||
# stdlib_h.m4 serial 45
|
||||
dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
|
||||
# stdlib_h.m4 serial 48
|
||||
dnl Copyright (C) 2007-2019 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.
|
||||
|
|
@ -23,10 +23,10 @@ AC_DEFUN([gl_STDLIB_H],
|
|||
# include <random.h>
|
||||
#endif
|
||||
]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
|
||||
initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
|
||||
initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
|
||||
posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray
|
||||
realpath rpmatch secure_getenv setenv setstate setstate_r srandom
|
||||
srandom_r strtod strtoll strtoull unlockpt unsetenv])
|
||||
srandom_r strtod strtold strtoll strtoull unlockpt unsetenv])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
|
||||
|
|
@ -68,6 +68,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
|
|||
GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
|
||||
GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV])
|
||||
GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD])
|
||||
GNULIB_STRTOLD=0; AC_SUBST([GNULIB_STRTOLD])
|
||||
GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
|
||||
GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
|
||||
GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX])
|
||||
|
|
@ -81,7 +82,9 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
|
|||
HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
|
||||
HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
|
||||
HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
|
||||
HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE])
|
||||
HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE])
|
||||
HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC])
|
||||
HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
|
||||
HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
|
||||
HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
|
||||
|
|
@ -100,8 +103,10 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
|
|||
HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV])
|
||||
HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
|
||||
HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV])
|
||||
HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE])
|
||||
HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE])
|
||||
HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
|
||||
HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD])
|
||||
HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
|
||||
HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
|
||||
HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
|
||||
|
|
@ -110,6 +115,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
|
|||
HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
|
||||
REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC])
|
||||
REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
|
||||
REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE])
|
||||
REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC])
|
||||
REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC])
|
||||
REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
|
||||
|
|
@ -117,11 +123,14 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
|
|||
REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R])
|
||||
REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
|
||||
REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R])
|
||||
REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM])
|
||||
REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
|
||||
REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC])
|
||||
REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
|
||||
REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
|
||||
REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE])
|
||||
REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
|
||||
REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD])
|
||||
REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
|
||||
REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB])
|
||||
])
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# stpcpy.m4 serial 8
|
||||
dnl Copyright (C) 2002, 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002, 2007, 2009-2019 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 @@
|
|||
# strcase.m4 serial 11
|
||||
dnl Copyright (C) 2002, 2005-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002, 2005-2019 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 @@
|
|||
# strchrnul.m4 serial 9
|
||||
dnl Copyright (C) 2003, 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2003, 2007, 2009-2019 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 @@
|
|||
# strerror.m4 serial 19
|
||||
dnl Copyright (C) 2002, 2007-2018 Free Software Foundation, Inc.
|
||||
# strerror.m4 serial 20
|
||||
dnl Copyright (C) 2002, 2007-2019 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.
|
||||
|
|
@ -26,6 +26,8 @@ AC_DEFUN([gl_FUNC_STRERROR],
|
|||
[case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_working_strerror="guessing yes" ;;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_working_strerror="guessing no" ;;
|
||||
esac
|
||||
|
|
@ -80,6 +82,8 @@ AC_DEFUN([gl_FUNC_STRERROR_0],
|
|||
[case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
|
||||
# Guess yes on musl systems.
|
||||
*-musl*) gl_cv_func_strerror_0_works="guessing yes" ;;
|
||||
# Guess yes on native Windows.
|
||||
mingw*) gl_cv_func_strerror_0_works="guessing yes" ;;
|
||||
# If we don't know, assume the worst.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Configure a GNU-like replacement for <string.h>.
|
||||
|
||||
# Copyright (C) 2007-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2007-2019 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.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Configure a replacement for <strings.h>.
|
||||
# serial 6
|
||||
|
||||
# Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2007, 2009-2019 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.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# strndup.m4 serial 22
|
||||
dnl Copyright (C) 2002-2003, 2005-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002-2003, 2005-2019 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 @@
|
|||
# strnlen.m4 serial 13
|
||||
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2018 Free Software Foundation,
|
||||
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2019 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,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# strverscmp.m4 serial 8
|
||||
dnl Copyright (C) 2002, 2005-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2002, 2005-2019 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 @@
|
|||
# sys_socket_h.m4 serial 23
|
||||
dnl Copyright (C) 2005-2018 Free Software Foundation, Inc.
|
||||
# sys_socket_h.m4 serial 24
|
||||
dnl Copyright (C) 2005-2019 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.
|
||||
|
|
@ -104,17 +104,11 @@ AC_DEFUN([gl_PREREQ_SYS_H_SOCKET],
|
|||
gl_CHECK_NEXT_HEADERS([sys/socket.h])
|
||||
if test $ac_cv_header_sys_socket_h = yes; then
|
||||
HAVE_SYS_SOCKET_H=1
|
||||
HAVE_WS2TCPIP_H=0
|
||||
else
|
||||
HAVE_SYS_SOCKET_H=0
|
||||
if test $ac_cv_header_ws2tcpip_h = yes; then
|
||||
HAVE_WS2TCPIP_H=1
|
||||
else
|
||||
HAVE_WS2TCPIP_H=0
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([HAVE_SYS_SOCKET_H])
|
||||
AC_SUBST([HAVE_WS2TCPIP_H])
|
||||
gl_PREREQ_SYS_H_WS2TCPIP
|
||||
])
|
||||
|
||||
# Common prerequisites of the <sys/socket.h> replacement and of the
|
||||
|
|
@ -142,6 +136,24 @@ AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2],
|
|||
AC_SUBST([HAVE_WINSOCK2_H])
|
||||
])
|
||||
|
||||
# Common prerequisites of the <sys/socket.h> replacement and of the
|
||||
# <arpa/inet.h> replacement.
|
||||
# Sets and substitutes HAVE_WS2TCPIP_H.
|
||||
AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP],
|
||||
[
|
||||
AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
|
||||
if test $ac_cv_header_sys_socket_h = yes; then
|
||||
HAVE_WS2TCPIP_H=0
|
||||
else
|
||||
if test $ac_cv_header_ws2tcpip_h = yes; then
|
||||
HAVE_WS2TCPIP_H=1
|
||||
else
|
||||
HAVE_WS2TCPIP_H=0
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([HAVE_WS2TCPIP_H])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR],
|
||||
[
|
||||
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# sys_stat_h.m4 serial 31 -*- Autoconf -*-
|
||||
dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2006-2019 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,7 +1,7 @@
|
|||
# Configure a replacement for <sys/time.h>.
|
||||
# serial 9
|
||||
|
||||
# Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2007, 2009-2019 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.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# sys_types_h.m4 serial 9
|
||||
dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2011-2019 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 @@
|
|||
# sys_wait_h.m4 serial 6
|
||||
dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 2008-2019 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.
|
||||
|
|
|
|||
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