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

(ITS#8202) openldap assumes printf has %z



Full_Name: Ian Donaldson
Version: 2.4.41
OS: Solaris 9
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (60.241.85.68)


Built 2.4.41 on Solaris 9; ran 'make check' which failed to start slapd with
the following errors:

55ab70f0 config_build_entry: "olcDatabase={-1}frontend"
55ab70f0 config_build_entry: "olcDatabase={0}config"
55ab70f0 config_build_entry: "olcDatabase={1}bdb"
55ab70f0 config_build_attrs: error 21 on olcDbCacheSize value #0
55ab70f0 config_build_entry: build "zu" failed: ""

Eventually found this to be due to the assumption that %z format
works in printf; this is not the case on Solaris 9.   (Solaris 10 has %z)

Found the following code that makes this assumption (there may be others):

./libraries/liblmdb/mdb_load.c
./libraries/liblmdb/mdb_dump.c
./libraries/liblmdb/mdb_stat.c
./libraries/liblmdb/mdb.c
./servers/slapd/overlays/constraint.c
./servers/slapd/config.c

My workaround was to use %l instead of %z which works for me; may not
be 100% fix though.

See http://stackoverflow.com/questions/2524611/how-to-print-size-t-variable-portably


I previously built 2.4.33 which has some %z'isms too but not in places
that cause 'make check' to fail.