From 432c551b17d655823a4825855b4b966441c8cfb3 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Tue, 1 Sep 2020 14:14:45 +0200 Subject: [PATCH] Support new mallinfo2 function. gcc/ChangeLog: * config.in: Regenerate. * configure: Likewise. * configure.ac: Detect for mallinfo2. * ggc-common.c (defined): Use it. * system.h: Handle also HAVE_MALLINFO2. --- gcc/config.in | 16 ++++++++++++++-- gcc/configure | 4 ++-- gcc/configure.ac | 4 ++-- gcc/ggc-common.c | 12 +++++++++--- gcc/system.h | 2 +- 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/gcc/config.in b/gcc/config.in index 478e74fac02..1832c112ed9 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -983,13 +983,19 @@ #endif -/* Define to 1 if we found a declaration for 'mallinfo', otherwise define to - 0. */ +/* Define to 1 if we found a declaration for 'mallinfo */ #ifndef USED_FOR_TARGET #undef HAVE_DECL_MALLINFO #endif +/* Define to 1 if we found a declaration for 'mallinfo2', otherwise define to + 0. */ +#ifndef USED_FOR_TARGET +#undef HAVE_DECL_MALLINFO2 +#endif + + /* Define to 1 if we found a declaration for 'malloc', otherwise define to 0. */ #ifndef USED_FOR_TARGET @@ -1665,6 +1671,12 @@ #endif +/* Define to 1 if you have the `mallinfo2' function. */ +#ifndef USED_FOR_TARGET +#undef HAVE_MALLINFO2 +#endif + + /* Define to 1 if you have the header file. */ #ifndef USED_FOR_TARGET #undef HAVE_MALLOC_H diff --git a/gcc/configure b/gcc/configure index 0a09777dd42..d33ee9fc5d2 100755 --- a/gcc/configure +++ b/gcc/configure @@ -10120,7 +10120,7 @@ fi for ac_func in times clock kill getrlimit setrlimit atoq \ popen sysconf strsignal getrusage nl_langinfo \ gettimeofday mbstowcs wcswidth mmap setlocale \ - clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked madvise mallinfo + clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked madvise mallinfo mallinfo2 do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -11549,7 +11549,7 @@ fi done -for ac_func in mallinfo +for ac_func in mallinfo, mallinfo2 do ac_tr_decl=`$as_echo "HAVE_DECL_$ac_func" | $as_tr_cpp` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func is declared" >&5 diff --git a/gcc/configure.ac b/gcc/configure.ac index 6a233a3c706..fedb7b2800f 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1408,7 +1408,7 @@ define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoq \ popen sysconf strsignal getrusage nl_langinfo \ gettimeofday mbstowcs wcswidth mmap setlocale \ - gcc_UNLOCKED_FUNCS madvise mallinfo) + gcc_UNLOCKED_FUNCS madvise mallinfo mallinfo2) if test x$ac_cv_func_mbstowcs = xyes; then AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works, @@ -1488,7 +1488,7 @@ gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[ #endif ]) -gcc_AC_CHECK_DECLS(mallinfo, , ,[ +gcc_AC_CHECK_DECLS([mallinfo, mallinfo2], , ,[ #include "ansidecl.h" #include "system.h" #ifdef HAVE_MALLOC_H diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c index 94da02f1185..6f8da300970 100644 --- a/gcc/ggc-common.c +++ b/gcc/ggc-common.c @@ -1008,13 +1008,19 @@ ggc_prune_overhead_list (void) } } -/* Return memory used by heap in kb, 0 if this info is not available. */ +/* Print memory used by heap in kb if this info is available. */ void report_heap_memory_use () { -#ifdef HAVE_MALLINFO +#if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) +#ifdef HAVE_MALLINFO2 + #define MALLINFO_FN mallinfo2 +#else + #define MALLINFO_FN mallinfo +#endif if (!quiet_flag) - fprintf (stderr," {heap %luk}", (unsigned long)(mallinfo().arena / 1024)); + fprintf (stderr," {heap %luk}", + (unsigned long) MALLINFO_FN ().arena / ONE_K); #endif } diff --git a/gcc/system.h b/gcc/system.h index 3c543a005d8..4f0482be25d 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -732,7 +732,7 @@ extern int vsnprintf (char *, size_t, const char *, va_list); #endif #ifdef INCLUDE_MALLOC_H -#ifdef HAVE_MALLINFO +#if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) #include #endif #endif -- 2.30.2