[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: size_t check fails in configure



Kurt D. Zeilenga writes:
>> The checks for size_t & co fail on sgi irix, so it #defines size_t as
> 
> Which version of IRIX? Which compiler? Which version of OpenLDAP?

mips-sgi-irix5.3, cc, latest -devel.

>> unsigned even though it does exist.
> 
> How bad are the type mismatches?  Do they differ in size? signness?
> Does OpenLDAP compile and operate dispite the mismatches?

The problem is that portable.h #defines size_t as unsigned.  So when
a file which declares size_t is later #included, the statemen
	typedef unsigned int    size_t;
becomes
	typedef unsigned int    unsigned;

>> I think it's because the type is
>> declared in stddef.h instead of sys/types.h, but configure
>> doesn't use stddef unless defined(STDC_HEADERS).
> 
> Exactly.  AC_CHECK_TYPE() looks in <sys/types.h> and, if STDC_HEADERS,
> <stdlib.h> and <stddef.h>.  STDC_HEADERS being false is likely to
> cause other problems as well.

It alredy did.  Remember "stdarg but no prototypes" situation.
As far as I can tell, the general fix is to not trust anything which
results from a false STDC_HEADERS.

> config.log output for the STDC_HEADERS test would be interesting.

Later.

-- 
Hallvard