linking problems with heimdal in base (ports version works)

Palle Girgensohn girgen at pingpong.net
Fri Oct 14 07:04:14 PDT 2005


Hi!

I'm having some difficulties using the heimdal installed from /usr/src. 
Here's the difference between the heimdal port and the heimdal distributed 
in the base:

$ ldd /usr/local/lib/libkrb5.so
/usr/local/lib/libkrb5.so:
        libcrypto.so.3 => /lib/libcrypto.so.3 (0x281b3000)
        libasn1.so.6 => /usr/local/lib/libasn1.so.6 (0x282c4000)
        libroken.so.16 => /usr/local/lib/libroken.so.16 (0x282ea000)
        libcrypt.so.2 => /lib/libcrypt.so.2 (0x282f8000)
        libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x28311000)
$ ldd /usr/lib/libkrb5.so
/usr/lib/libkrb5.so:
$

This gives me problems. I maintain the postgresql ports, and postgresql 
supports Kerberos. Problem is, when installing the heimdal port, everything 
works fine, but when using the base heimdal, I can't get programs linking 
with postgresq's libpq.so to link, since the configure scripts cannot find 
symbols that are in for example libasn1.so. Most ports seem to only pick up 
the -lkrb5, not all the other libs needed. Shouldn't they be provided by 
libkrb5.so in the same way as the ports' version does?

An example:

make sure there's no heimdal port installed

install databases/postgresql80-client with heimdal kerberos support (make 
config; make install)

then try to build databases/postgresql-libpqxx

it fails when it cannot find a bunch of symbols in libkrb5.so (they exist 
in the other libs listed above).

configure:20825: checking for ability to link with libpq
configure:20828: checking for main in -lpq
configure:20852: cc -o conftest -O -pipe -march=athlon-xp 
-I/usr/local/include  -L/usr/local/lib conftest.c -lpq -L/usr/local/lib  >&5
/usr/lib/libkrb5.so.7: undefined reference to `length_PA_ENC_TS_ENC'
/usr/lib/libkrb5.so.7: undefined reference to `length_KDC_REQ_BODY'
/usr/lib/libkrb5.so.7: undefined reference to `free_Principal'
/usr/lib/libkrb5.so.7: undefined reference to `bswap16'
/usr/lib/libkrb5.so.7: undefined reference to `length_EncKrbCredPart'
/usr/lib/libkrb5.so.7: undefined reference to `copy_Realm'
/usr/lib/libkrb5.so.7: undefined reference to `strlwr'
/usr/lib/libkrb5.so.7: undefined reference to `length_TGS_REQ'
...


I don't now enough about the inner secrets of linking, but I do know that 
the way the heimdal port's libkrb5.so is built and installed, everything 
works, whereas the base heimdal makes it fail.

FreeBSD-5-stable & 5.4p6

Any ideas how to pursue this?

Thanks,
Palle



More information about the freebsd-stable mailing list