linking problems with heimdal in base (ports version works)
girgen at pingpong.net
Fri Oct 14 07:04:14 PDT 2005
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
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
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?
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?
More information about the freebsd-stable