Full_Name: Len Smith Version: 1.2.10 OS: Solaris 7, 64bit mode URL: Submission from: (NULL) (141.211.32.62) Machine : SUN Netra T1 Compiler : Sun Worhkshop 5.0 C compiler OS : Solaris 7, 64bit mode Openldap : 1.2.10 The 64 bit libraries, in solaris 7 do not allow direct access to the sys_errlist or sys_nerr variables. Instead you have to use strerror. This is not the case for the 32 bit libraries. This is documented in the <errno.h> ## From errno.h * The symbols _sys_errlist and _sys_nerr are not visible in the * LP64 libc. Use strerror(3C) instead. However when functions under servers/{slapd, slurpd} are coded only to use sys_errlist. I modified the code to allow a define of __sparcv9 and HASSTRERROR to modified to code to use strerror. The patch of my changes are available at http://www-personal.umich.edu/~lrsmith/openldap-1.2.10-strerror-patch This way if I am on a solaris machine with arch=v9 ( i.e. sparcv9, 64bit mode ) and I define HASSTRERROR then strerror will be used instead. Also I had to manually modify the build/mkdep script. The CC_MKDEP_FLAGS="-M" does not with with the Sun C compiler. I simply had to change to -M flag to "-xM".
changed notes moved from Incoming to Build
Given that strerror() behaves oddly under Solaris (returns NULL) it likely that other changes are needed. I would prefer to have these issues resolved in OpenLDAP-devel then back ported into 1.2 for subsequent release.
changed notes changed state Open to Closed
non portable patch devel has portable solution which could be back ported.