mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
fix compilation with gc 7.1
* configure.ac: Add checks for GC_gcollect_and_unmap and GC_get_unmapped_bytes. * libguile/gc-malloc.c (scm_realloc): GC_gcollect() if we don't have GC_gcollect_and_unmap. * libguile/gc.c (GC_get_heap_usage_safe): Likewise, don't GC_get_unmapped_bytes if the function doesn't exist.
This commit is contained in:
parent
e7b2efd582
commit
4eb286127c
3 changed files with 9 additions and 1 deletions
|
@ -1259,7 +1259,7 @@ save_LIBS="$LIBS"
|
|||
LIBS="$BDW_GC_LIBS $LIBS"
|
||||
CFLAGS="$BDW_GC_CFLAGS $CFLAGS"
|
||||
|
||||
AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit GC_pthread_cancel GC_allow_register_threads GC_pthread_sigmask GC_set_start_callback GC_get_heap_usage_safe GC_get_free_space_divisor])
|
||||
AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit GC_pthread_cancel GC_allow_register_threads GC_pthread_sigmask GC_set_start_callback GC_get_heap_usage_safe GC_get_free_space_divisor GC_gcollect_and_unmap GC_get_unmapped_bytes])
|
||||
|
||||
# Though the `GC_do_blocking ()' symbol is present in GC 7.1, it is not
|
||||
# declared, and has a different type (returning void instead of
|
||||
|
|
|
@ -96,7 +96,11 @@ scm_realloc (void *mem, size_t size)
|
|||
return ptr;
|
||||
|
||||
/* Time is hard: trigger a full, ``stop-the-world'' GC, and try again. */
|
||||
#ifdef HAVE_GC_GCOLLECT_AND_UNMAP
|
||||
GC_gcollect_and_unmap ();
|
||||
#else
|
||||
GC_gcollect ();
|
||||
#endif
|
||||
|
||||
SCM_SYSCALL (ptr = realloc (mem, size));
|
||||
if (ptr)
|
||||
|
|
|
@ -205,7 +205,11 @@ GC_get_heap_usage_safe (GC_word *pheap_size, GC_word *pfree_bytes,
|
|||
{
|
||||
*pheap_size = GC_get_heap_size ();
|
||||
*pfree_bytes = GC_get_free_bytes ();
|
||||
#ifdef HAVE_GC_GET_UNMAPPED_BYTES
|
||||
*punmapped_bytes = GC_get_unmapped_bytes ();
|
||||
#else
|
||||
*punmapped_bytes = 0;
|
||||
#endif
|
||||
*pbytes_since_gc = GC_get_bytes_since_gc ();
|
||||
*ptotal_bytes = GC_get_total_bytes ();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue