On Thu, 7 Jul 2005, OpenMacNews wrote:
> i think i've managed to track dow the missing "strnlen" def'n -- in/related-to
> libsrs_alt -- but am unclear as to WHY the problem is manifesting itself i the
> EXIM build ...
That's good, because the code of Exim contains no references to strnlen,
which is not a standard C function, or to _strnlen.
> % grep -rln strnlen .../exim-4.52
Precisely!
> as a check, changing in Local/Makefile:
>
> --- EXPERIMENTAL_SRS=yes
>
> and,
>
> --- LDFLAGS=-L/usr/local/lib -lsrs_alt -lspf2 -ldomainkeys
> -L/usr/local/pcre50/lib -lpcre
> +++ LDFLAGS=-L/usr/local/lib -lspf2 -ldomainkeys
> -L/usr/local/pcre50/lib -lpcre
>
> cleaning, then make-ing, results in a SUCCESSFUL BUILD (!):
I'm glad it's Not My Problem (tm), but concerned that you still have
one.
> so, at 1st glace, it looks like libsrs is the (a?) culprit.
Indeed.
> soooo, why is the _strnlen undef'd in the exim build/compile?
Good question, but I'm afraid I'm pretty ignorant in the way linking is
done. The function strnlen (without the underscore) is a GNU extension
to the C library. Many systems do not have it (e.g. Solaris). However,
_strnlen (with the underscore) could be an internal function of some
sort; its existence doesn't necessarily mean there is a strlen function,
though that is highly suggestive.
I suppose the next logical steps are (1) to find a source for libsrs and
scan it for strnlen, and (2) to see if strnlen exists on your box ("man
strnlen").
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book