3 dnl Copyright (C) 2004-2024 Free Software Foundation, Inc.
4 dnl This file is free software; the Free Software Foundation
5 dnl gives unlimited permission to copy and/or distribute it,
6 dnl with or without modifications, as long as this notice is preserved.
8 # Portability macros for glibc argz. -*- Autoconf -*-
10 # Written by Gary V. Vaughan <gary@gnu.org>
12 AC_DEFUN([gl_FUNC_ARGZ],
15 AC_REQUIRE([AC_C_RESTRICT])
16 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
18 AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
20 AC_CHECK_TYPES([error_t],
22 [AC_DEFINE([error_t], [int],
23 [Define to a type to use for 'error_t' if it is not otherwise available.])
24 AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
25 does not typedef error_t.])],
26 [#if defined(HAVE_ARGZ_H)
30 GL_GENERATE_ARGZ_H=false
31 AC_CHECK_FUNC([argz_replace], [], [GL_GENERATE_ARGZ_H=true])
33 dnl if have system argz functions, allow forced use of
34 dnl libltdl-supplied implementation (and default to do so
35 dnl on "known bad" systems). Could use a runtime check, but
36 dnl (a) detecting malloc issues is notoriously unreliable
37 dnl (b) only known system that declares argz functions,
38 dnl provides them, yet they are broken, is cygwin
39 dnl releases prior to 5-May-2007 (1.5.24 and earlier)
40 dnl So, it's more straightforward simply to special case
41 dnl this for known bad systems.
42 AS_IF([! $GL_GENERATE_ARGZ_H],
44 [if argz actually works],
45 [lt_cv_sys_argz_works],
48 lt_cv_sys_argz_works=no
49 if test "$cross_compiling" != no; then
50 lt_cv_sys_argz_works="$gl_cross_guess_normal"
52 lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
55 set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
60 if test "$lt_os_major" -gt 1 \
61 || { test "$lt_os_major" -eq 1 \
62 && { test "$lt_os_minor" -gt 5 \
63 || { test "$lt_os_minor" -eq 5 \
64 && test "$lt_os_micro" -gt 24; }; }; }; then
65 lt_cv_sys_argz_works=yes
69 *) lt_cv_sys_argz_works=yes ;;
71 AS_IF([test "$lt_cv_sys_argz_works" = yes],
72 [AC_DEFINE([HAVE_WORKING_ARGZ], [1],
73 [This value is set to 1 to indicate that the system argz facility works])],
74 [GL_GENERATE_ARGZ_H=true])])
77 # Prerequisites of lib/argz.c.
78 AC_DEFUN([gl_PREREQ_ARGZ], [:])