The original patch author said that it does not compile on
FreeBSD(7,amd64). Haven't asked the actual output.

Atsushi Eno

Geoff Norton wrote:
> Eno,
> 
>   Whats the testcase/rationale for this patch?
> 
> On Sun, 2008-11-09 at 23:34 +0900, Atsushi Eno wrote:
>> 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
> 
> 

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to