Fix gold to use mallinfo2 if available instead of deprecated mallinfo.

gold/
	PR gold/26585
	* configure.ac: Add check for mallinfo2.
	* configure: Regenerate.
	* main.cc (main): Use mallinfo2 if available.
This commit is contained in:
Duncan Simpson 2021-03-19 14:22:08 -07:00 committed by Cary Coutant
parent 5cde809b7b
commit 4ee6049505
4 changed files with 16 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2021-03-19 Duncan Simpson <dr.duncan.p.simpson@gmail.com>
PR gold/26585
* configure.ac: Add check for mallinfo2.
* configure: Regenerate.
* main.cc (main): Use mallinfo2 if available.
2021-03-19 Cary Coutant <ccoutant@gmail.com> 2021-03-19 Cary Coutant <ccoutant@gmail.com>
PR gold/27246 PR gold/27246

2
gold/configure vendored
View File

@ -9967,7 +9967,7 @@ case "$ac_cv_search_dlopen" in
esac esac
for ac_func in mallinfo posix_fallocate fallocate readv sysconf times mkdtemp for ac_func in mallinfo mallinfo2 posix_fallocate fallocate readv sysconf times mkdtemp
do : do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var" ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"

View File

@ -636,7 +636,7 @@ case "$ac_cv_search_dlopen" in
esac esac
AC_SUBST(DLOPEN_LIBS) AC_SUBST(DLOPEN_LIBS)
AC_CHECK_FUNCS(mallinfo posix_fallocate fallocate readv sysconf times mkdtemp) AC_CHECK_FUNCS(mallinfo mallinfo2 posix_fallocate fallocate readv sysconf times mkdtemp)
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem]) AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem])
# Use of ::std::tr1::unordered_map::rehash causes undefined symbols # Use of ::std::tr1::unordered_map::rehash causes undefined symbols

View File

@ -25,7 +25,7 @@
#include <cstdio> #include <cstdio>
#include <cstring> #include <cstring>
#ifdef HAVE_MALLINFO #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2)
#include <malloc.h> #include <malloc.h>
#endif #endif
@ -290,11 +290,16 @@ main(int argc, char** argv)
elapsed.sys / 1000, (elapsed.sys % 1000) * 1000, elapsed.sys / 1000, (elapsed.sys % 1000) * 1000,
elapsed.wall / 1000, (elapsed.wall % 1000) * 1000); elapsed.wall / 1000, (elapsed.wall % 1000) * 1000);
#ifdef HAVE_MALLINFO #if defined(HAVE_MALLINFO2)
struct mallinfo m = mallinfo2();
fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"),
program_name, static_cast<long long>(m.arena));
#elif defined(HAVE_MALLINFO)
struct mallinfo m = mallinfo(); struct mallinfo m = mallinfo();
fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"),
program_name, static_cast<long long>(m.arena)); program_name, static_cast<long long>(m.arena));
#endif #endif
File_read::print_stats(); File_read::print_stats();
Archive::print_stats(); Archive::print_stats();
Lib_group::print_stats(); Lib_group::print_stats();