1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2026-10-24 00:48:56 +03:00
Files
gnulib/m4/obstack-printf.m4
Bruno Haible ccfc916a54 obstack-printf-{posix,gnu}: Fix broken configuration result.
Reported by Eric Blake in
<https://lists.gnu.org/archive/html/bug-gnulib/2026-02/msg00028.html>.

* m4/obstack-printf.m4 (gl_FUNC_OBSTACK_PRINTF_REPLACE): New macro,
extracted from gl_FUNC_OBSTACK_PRINTF.
(gl_FUNC_OBSTACK_PRINTF): Invoke it.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX_REPLACE): New
macro, extracted from gl_FUNC_OBSTACK_PRINTF_POSIX.
(gl_FUNC_OBSTACK_PRINTF_POSIX): Require gl_FUNC_OBSTACK_PRINTF_REPLACE.
* m4/obstack-printf-gnu.m4 (gl_FUNC_OBSTACK_PRINTF_GNU_REPLACE): New
macro, extracted from gl_FUNC_OBSTACK_PRINTF_GNU.
(gl_FUNC_OBSTACK_PRINTF_GNU): Require gl_FUNC_OBSTACK_PRINTF_REPLACE.
2026-02-14 15:43:47 +01:00

61 lines
1.8 KiB
Plaintext

# obstack-printf.m4
# serial 6
dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl This file is offered as-is, without any warranty.
dnl From Eric Blake.
dnl Sets REPLACE_OBSTACK_PRINTF if needed.
AC_DEFUN_ONCE([gl_FUNC_OBSTACK_PRINTF_REPLACE],
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_OBSTACK])
dnl Persuade glibc <stdio.h> to declare obstack_printf(), obstack_vprintf().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
dnl Test whether obstack_printf() exists. For now, we assume that
dnl obstack_vprintf behaves identically, so we only test for one.
AC_CHECK_FUNCS_ONCE([obstack_printf])
dnl The obstack_printf function from glibc does not work with the
dnl 'struct obstack' defined in gnulib's <obstack.h>. Therefore, when
dnl overriding 'struct obstack', we must also override obstack_printf.
if test $HAVE_OBSTACK = 0 || test $REPLACE_OBSTACK = 1; then
gl_REPLACE_OBSTACK_PRINTF
fi
m4_ifdef([gl_FUNC_OBSTACK_PRINTF_POSIX_REPLACE],
[gl_FUNC_OBSTACK_PRINTF_POSIX_REPLACE])
m4_ifdef([gl_FUNC_OBSTACK_PRINTF_GNU_REPLACE],
[gl_FUNC_OBSTACK_PRINTF_GNU_REPLACE])
])
AC_DEFUN([gl_FUNC_OBSTACK_PRINTF],
[
gl_FUNC_OBSTACK_PRINTF_REPLACE
gl_DECL_OBSTACK_PRINTF
])
AC_DEFUN([gl_REPLACE_OBSTACK_PRINTF],
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
if test $ac_cv_func_obstack_printf = yes; then
REPLACE_OBSTACK_PRINTF=1
fi
])
dnl Ensure obstack_printf() and obstack_vprintf() are declared
dnl (whether or not they are being replaced).
AC_DEFUN([gl_DECL_OBSTACK_PRINTF],
[
AC_CHECK_DECLS_ONCE([obstack_printf])
if test $ac_cv_have_decl_obstack_printf = no; then
HAVE_DECL_OBSTACK_PRINTF=0
fi
])