[Mono-dev] Can anyone review this fix for FreeBSD build?

Atsushi Eno atsushi at ximian.com
Sun Nov 9 15:43:13 EST 2008


So your suggestion is to limit the target only to freebsd, right?

I'll ask him and he would be able to provide the error details but to be
realistic he won't be able to provide further output from other BSDs
(unless he is a BSD freak to have all of them installed).

Atsushi Eno


Geoff Norton wrote:
> Well we certainly do compile on darwin, so we shouldn't be thunking
> darwin in here as well.  Also, what about NetBSD, OpenBSD, etc?  Are we
> certain they're all affected?
> 
> Please get the output of the failed compile, as well as some more info.
> 
> Thanks
> 
> -g
> 
> On Mon, 2008-11-10 at 05:30 +0900, Atsushi Eno wrote:
>> 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 at lists.ximian.com
>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>>
> 
> 



More information about the Mono-devel-list mailing list