>From eea496940c993b84ef5139846d891276ef0f3117 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Mon, 21 Dec 2020 11:37:04 +0100 Subject: [PATCH 5/6] Port AC_FUNC_OBSTACK fixes from Gnulib. * lib/autoconf/functions.m4 (AC_FUNC_OBSTACK): Do not assume system-supplied obstack is size_t safe. --- lib/autoconf/functions.m4 | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 index 001a165..c56a71a 100644 --- a/lib/autoconf/functions.m4 +++ b/lib/autoconf/functions.m4 @@ -1444,23 +1444,30 @@ AU_ALIAS([AC_MMAP], [AC_FUNC_MMAP]) AN_FUNCTION([obstack_init], [AC_FUNC_OBSTACK]) AN_IDENTIFIER([obstack], [AC_FUNC_OBSTACK]) AC_DEFUN([AC_FUNC_OBSTACK], -[AC_LIBSOURCES([obstack.h, obstack.c])dnl -AC_CACHE_CHECK([for obstacks], ac_cv_func_obstack, -[AC_LINK_IFELSE( - [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT - [@%:@include "obstack.h"]], - [[struct obstack mem; - @%:@define obstack_chunk_alloc malloc - @%:@define obstack_chunk_free free - obstack_init (&mem); - obstack_free (&mem, 0);]])], - [ac_cv_func_obstack=yes], - [ac_cv_func_obstack=no])]) -if test $ac_cv_func_obstack = yes; then - AC_DEFINE(HAVE_OBSTACK, 1, [Define to 1 if libc includes obstacks.]) -else - AC_LIBOBJ(obstack) -fi +[ + AC_LIBSOURCES([obstack.h, obstack.c])dnl + AC_CACHE_CHECK([for obstacks that work with any size object], + [ac_cv_func_obstack], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include "obstack.h" + void *obstack_chunk_alloc (size_t n) { return 0; } + void obstack_chunk_free (void *p) { } + /* Check that an internal function returns size_t, not int. */ + size_t _obstack_memory_used (struct obstack *); + ]], + [[struct obstack mem; + obstack_init (&mem); + obstack_free (&mem, 0); + ]])], + [ac_cv_func_obstack=yes], + [ac_cv_func_obstack=no])]) + if test "$ac_cv_func_obstack" = yes; then + AC_DEFINE([HAVE_OBSTACK], [1], + [Define to 1 if the system has obstacks that work with any size object.]) + else + AC_LIBOBJ([obstack]) + fi ])# AC_FUNC_OBSTACK -- 2.7.4