Re: Regression in GSSAPI/libxh509 linking? [PR bin/147175]

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Tue, 6 Jul 2010 16:46:37 +0300
On Tue, Jul 06, 2010 at 11:26:26PM +1000, Andrew Reilly wrote:
> Hi Kostik,
> 
> On 06/07/2010, at 22:33 , Kostik Belousov wrote:
> 
> > "Install evolution-data-server" as a reference to the command is a sure way
> > to not get any help.
> 
> Why, because no-one uses ports?
Because you make it hard to reproduce the issue. E.g. my head scratch
box definitely will not be put to evolution-data-server compilation to
reproduce this.

> 
> > I asked for explicit command that fails, PR does not contain this information.
> > It is not even clear whether the issue is from the static or run-time linker.
> 
> The specific command that fails is in the PR, to whit:
> cc -o conftest -O2 -pipe -g -DLDAP_DEPRECATED -fno-strict-aliasing -I/usr/local/include -I/usr/local/include/db41 -L/usr/local/lib -pthread conftest.c -L/usr/local/lib -L/usr/lib -lgssapi -lheimntlm -lkrb5 -lhx509 -lcom_err -lcrypto -lasn1 -lroken -lcrypt
> 
> where, in this instance, conftest.c is something like (extracted from the configure script from evolution-data-server):
> 
> /* contentes of confdefs.h, whatever that is, probably at least: */
> #include <krb5.h>
> /* end confdefs.h.  */
> 
> /* Override any GCC internal prototype to avoid an error.
>   Use char because int might match the return type of a GCC
>   builtin and then its argument prototype would still apply.  */
> #ifdef __cplusplus
> extern "C"
> #endif
> char krb5_init_context ();
> int
> main ()
> {
> return krb5_init_context ();
>  ;
>  return 0;
> }
> 
> (fetchmail uses a conftest with a call to gss_check_version(), but the result is the same.)
> 
> And the cc fails with 
> /usr/lib/libhx509.so: undefined reference to `MD2_Init'
> /usr/lib/libhx509.so: undefined reference to `MD2_Final'
> /usr/lib/libhx509.so: undefined reference to `MD2_Update'
> 
> as reported in the PR.
Ok, this is useful. But, on the HEAD from Jul 2, I cannot reproduce it,
with conftest.c and command line above. As well as on the stable/8 that
is approx. one month old.

On both systems, MD2_* symbols are resolved by libcrypto.so. Check
your instance, do the symbols appear in the library ?

As a long shot, do you have openssl 1.0 installed from ports ?
Note the -L /usr/local/lib switch, that causes -lcrypto to be resolved
from /usr/local/lib, if present. AFAIR, 1.0 removed MD2.

> 
> It doesn't do this on my system any more, because I've fixed it with the patch attached to that PR.
> 
> Cheers,
> 
> -- 
> Andrew
> 

Received on Tue Jul 06 2010 - 11:46:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:05 UTC