On 8 April 2011 20:11, Simon McVittie <s...@debian.org> wrote:

> You can work around it with -Wl,--add-needed in LDFLAGS, or fix it properly
>
by including -lheimntlm in the LIBADD/LDADD for whatever you're linking.


Thanks. Thought this might be the case.

However, that doesn't explain why it magically when compiling with -02. Are
linker rules relaxed when they see code compiled with -O2? It doesn't make a
lot of sense to me.

Unless maybe -O2 removes the entire function that references this symbol,
because it is is not used anywhere... Hmmm.... Might have worked this out
myself :-)

./kdc/digest-service.c:
=== cut ===
static void
ntlm_service(...)
{
[...]
ret = heim_ntlm_calculate_ntlm1(...)
[...]
}

[...]
int
main(int argc, char **argv)
{
[...]
#if __APPLE__
    {
        heim_sipc mach;
        heim_sipc_launchd_mach_init("org.h5l.ntlm-service",
                                    ntlm_service, context, &mach);
        heim_sipc_timeout(60);
    }
#endif
[...]
}
=== cut ===

Am thinking the best solution might be to wrap the entire ntlm_service
function with the same #if __APPLE__ ... #endif, as that appears to be the
only reference to ntlm_service, and I think the static definition means it
can't be referenced externally.
-- 
Brian May <br...@microcomaustralia.com.au>

Reply via email to