From 4265131b6b86aa50e1a932f63eca145e5f54be4e Mon Sep 17 00:00:00 2001 Message-Id: <4265131b6b86aa50e1a932f63eca145e5f54be4e.1715064662.git.mdw@distorted.org.uk> From: Mark Wooding Date: Thu, 31 Dec 2015 20:49:02 +0000 Subject: [PATCH] configure.ac, lib/mem.c: Compatibility with older versions of libgc. Organization: Straylight/Edgeware From: Mark Wooding The `GC_get_all_interior_pointers()' function and its friends were introduced after the libgc in Debian wheezy (which is quite impressive seeing as they were added in 2009). Make sure it's there; use the old now-deprecated variable directly if it isn't. --- configure.ac | 1 + lib/mem.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac index 1491c67..e93d7a4 100644 --- a/configure.ac +++ b/configure.ac @@ -437,6 +437,7 @@ AC_SUBST([finkbindir]) # and report them all at once. AC_CHECK_LIB(gc, GC_malloc, [AC_SUBST(LIBGC,[-lgc])], [missing_libraries="$missing_libraries libgc"]) +AC_CHECK_FUNCS(GC_get_all_interior_pointers) AC_CHECK_LIB(gcrypt, gcry_md_open, [AC_SUBST(LIBGCRYPT,[-lgcrypt])], [missing_libraries="$missing_libraries libgcrypt"]) diff --git a/lib/mem.c b/lib/mem.c index c191a5a..22b7228 100644 --- a/lib/mem.c +++ b/lib/mem.c @@ -72,7 +72,11 @@ void mem_init(void) { do_free = free; } else { GC_init(); +#ifdef HAVE_GC_GET_ALL_INTERIOR_POINTERS assert(GC_get_all_interior_pointers()); +#else + assert(GC_all_interior_pointers); +#endif } #endif } -- [mdw]