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

nonstandard assumptions in the code



I've been getting a bit nervous lately about the number of non-ANSI
assumptions which the OpenLDAP code makes.  I'd like to at least write a
test program which configure can run and which tries to warn if one of
the assumptions do not hold.

Here are the nonstandard assumptions I have found.  Do anyone know any
others?

* two's complement integers
* at least 4-byte 'int'
* 8-bit 'char'
* ASCII or EBCDIC character set (or a superset of these)
  (basic assumptions, leave these alone)

* no padding bits in 'unsigned int'
  (required by back-bdb/dbcache.c:bdb_db_hash() - don't know why)

* can cast 'int' to 'void *' and back
  (at least back-shell)

* can cast function pointers to 'void *' and back
  (at least the threading stuff)

* can meaningfully compare pointers to different malloced blocks
  (slapd/sl_malloc.c)

* 'long long' support
  (liblutil/uuid.c - can write #ifndef HAVE_LONG_LONG variant to fix it)

* accepts string literals longer than 509 characters
  (easy to fix)

* other limits, like lower max num of #defines
  (leave these alone)

One other question - how do I test whether the ldap installation will
support EBCDIC?  I know EBCDIC support has been added, or at least is
partly added, but I don't know how to test for it in configure.

-- 
Hallvard