Atsushi Eno
Index: configure.in =================================================================== --- configure.in (revision 118305) +++ configure.in (working copy) @@ -2054,6 +2054,37 @@ unset fpu fi +case $host_os in +darwin* | *bsd* ) + AC_MSG_CHECKING(if sysctl.h defines kinfo_proc completely) + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <sys/sysctl.h> + ], [ + struct kinfo_proc kp; + ], + AC_MSG_RESULT(yes) + AC_DEFINE(SYSCTL_H_DEFINES_KINFO_PROC, 1, [sysctl.h has complete definition of struct kinfo_proc]) + , + AC_MSG_RESULT(no) + + AC_MSG_CHECKING(if struct kinfo_proc has member kp_proc) + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <sys/user.h> + ], [ + struct kinfo_proc kp; + kp.kp_proc; + ], + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) + AC_DEFINE(KINFO_PROC_HAS_NO_KP_PROC, 1, [struct kinfo_proc has no member kp_proc]) + ) + ) + ;; +esac + if test ${TARGET} = unknown; then CPPFLAGS="$CPPFLAGS -DNO_PORT" AC_MSG_WARN("mono has not been ported to $host: some things may not work.") Index: mono/utils/mono-proclib.c =================================================================== --- mono/utils/mono-proclib.c (revision 118305) +++ mono/utils/mono-proclib.c (working copy) @@ -17,6 +17,9 @@ #include <sys/types.h> #include <sys/sysctl.h> #include <sys/proc.h> +# if !defined SYSCTL_H_DEFINES_KINFO_PROC +#include <sys/user.h> +# endif #define USE_SYSCTL 1 #endif @@ -54,8 +57,13 @@ } res = data_len/sizeof (struct kinfo_proc); buf = g_realloc (buf, res * sizeof (void*)); +# if !defined KINFO_PROC_HAS_NO_KP_PROC for (i = 0; i < res; ++i) buf [i] = GINT_TO_POINTER (processes [i].kp_proc.p_pid); +# else + for (i = 0; i < res; ++i) + buf [i] = GINT_TO_POINTER (processes [i].ki_pid); +# endif free (processes); if (size) *size = res; @@ -162,7 +170,11 @@ if (res < 0 || data_len != sizeof (struct kinfo_proc)) { return buf; } +# if !defined KINFO_PROC_HAS_NO_KP_PROC strncpy (buf, processi.kp_proc.p_comm, len - 1); +# else + strncpy (buf, processi.ki_comm, len - 1); +# endif return buf; #else char fname [128]; _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list