Bug#388242: cyrus-imapd-2.2: FTBFS on GNU/kFreeBSD

Petr Salinger Petr.Salinger at seznam.cz
Thu Sep 21 21:38:45 UTC 2006


>> --- cyrus-imapd-2.2-2.2.13/configure.in
>> +++ cyrus-imapd-2.2-2.2.13/configure.in
>> @@ -300,7 +284,7 @@
>>  	AC_CACHE_VAL(cyrus_cv_sys_psstrings, AC_TRY_CPP([
>>  #include <machine/vmparam.h>
>>  #include <sys/exec.h>
>> -#ifndef PS_STRINGS
>> +#if !defined(PS_STRINGS) || defined (__GLIBC__)
>>  #include </nonexistent>
>>  #endif],cyrus_cv_sys_psstrings=yes,cyrus_cv_sys_psstrings=no))
>>  	if test $cyrus_cv_sys_psstrings = yes; then
>
> This seems odd: Why is PS_STRINGS defined by sys/exec.h or
> machine/vmparam.h if it isn't actually supported?

In general, PS_STRINGS resolves to an absolute address, but
value of PS_STRINGS in compiled binary might not be same
as value used to compile current kernel :-(
Better would be using C equivalent of "sysctl kern.ps_strings".

We have in <sys/exec.h>
#define PS_STRINGS      (USRSTACK - sizeof(struct ps_strings))
but USRSTACK is defined only for kernel build.

> I would include the fix, but I'm really not sure wether it is the right
> fix to the problem.

Would be "try to compile" following snippet acceptable ?

**************************** 
#include <machine/vmparam.h>
#include <sys/exec.h>

void *p = PS_STRINGS;

int main() { return 0;}
***************************

Thanks

 	Petr




More information about the Pkg-Cyrus-imapd-Debian-devel mailing list