ruby-changes:37849
From: nobu <ko1@a...>
Date: Wed, 11 Mar 2015 13:28:58 +0900 (JST)
Subject: [ruby-changes:37849] nobu:r49930 (trunk): vm_dump.c: check procstat_getvmmap
nobu 2015-03-11 13:28:51 +0900 (Wed, 11 Mar 2015) New Revision: 49930 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=49930 Log: vm_dump.c: check procstat_getvmmap * configure.in: check also procstat_getvmmap, which is not available on FreeBSD 9. [ruby-core:68468] [Bug #10954] * vm_dump.c (procstat_vm): use kinfo_getvmmap instead if procstat_getvmmap is not available. Modified files: trunk/ChangeLog trunk/configure.in trunk/vm_dump.c Index: configure.in =================================================================== --- configure.in (revision 49929) +++ configure.in (revision 49930) @@ -3143,6 +3143,9 @@ fi https://github.com/ruby/ruby/blob/trunk/configure.in#L3143 AS_CASE(["$target_os"], [freebsd*], [ AC_CHECK_LIB([procstat], [procstat_open_sysctl]) + if test "x$ac_cv_lib_procstat_procstat_open_sysctl" = xyes; then + AC_CHECK_FUNCS(procstat_getvmmap) + fi ]) AS_CASE(["$target_cpu-$target_os"], [*-darwin*], [ Index: ChangeLog =================================================================== --- ChangeLog (revision 49929) +++ ChangeLog (revision 49930) @@ -1,3 +1,11 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Wed Mar 11 13:28:49 2015 Nobuyoshi Nakada <nobu@r...> + + * configure.in: check also procstat_getvmmap, which is not + available on FreeBSD 9. [ruby-core:68468] [Bug #10954] + + * vm_dump.c (procstat_vm): use kinfo_getvmmap instead if + procstat_getvmmap is not available. + Wed Mar 11 09:15:21 2015 Koichi Sasada <ko1@a...> * internal.h: define struct MEMO. Index: vm_dump.c =================================================================== --- vm_dump.c (revision 49929) +++ vm_dump.c (revision 49930) @@ -735,7 +735,11 @@ procstat_vm(struct procstat *procstat, s https://github.com/ruby/ruby/blob/trunk/vm_dump.c#L735 ptrwidth, "START", ptrwidth, "END", "PRT", "RES", "PRES", "REF", "SHD", "FL", "TP", "PATH"); +#ifdef HAVE_PROCSTAT_GETVMMAP freep = procstat_getvmmap(procstat, kipp, &cnt); +#else + freep = kinfo_getvmmap(kipp->ki_pid, &cnt); +#endif if (freep == NULL) return; for (i = 0; i < cnt; i++) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/