kerberos 1.3.1 compile failure on Mac OS X Server 10.2.6
Alexandra Ellwood
lxs at MIT.EDU
Mon Aug 11 16:23:57 EDT 2003
>Content-Type: multipart/signed; micalg=pgp-sha1;
> protocol="application/pgp-signature"; boundary="=-XpZY/wF3MBSAA38UaRRv"
>
>I'm attempting to compile kerberos 1.3.1 on a Mac OS X Server system.
>
>I did a clean configure with no special flags, and then did a make.
>
>The compile fails with the following error. What am I doing wrong?
>
>
>making all in lib/rpc/unit-test...
>gcc -L../../../lib -g -O2 -Wall -Wmissing-prototypes -Wcast-qual
>-Wcast-align -Wconversion -Wshadow -Wno-comment -pedantic -o client
>client.o rpc_test_clnt.o \
> -lgssrpc -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
>ld: Undefined symbols:
>_krb5_gss_dbg_client_expcreds
>_gss_mech_krb5
>_gss_mech_krb5_old
>make[3]: *** [client] Error 1
>make[2]: *** [all-recurse] Error 1
>make[1]: *** [all-recurse] Error 1
>make: *** [all-recurse] Error 1
This is not really a problem with the MIT Kerberos build system. The
problem is that Apple's ld behaves differently than ld on most other
Unix platforms. On Mac OS X, shared libraries are always chosen over
static libraries even if there is a static library in an earlier
search path than the shared library. This causes the Kerberos which
ships with Mac OS X to interfere with the MIT krb5 build system's use
of the -l option.
There are two workarounds:
1) When running configure, pass the option:
"LDFLAGS=-Wl,-search_paths_first" This option turns on the more
common library search order for Mac OS X's ld and is only supported
in Panther.
2) Move the following symlinks out of the way (to another directory),
build, and then move them back. This works on both Jaguar and
Panther.
/usr/lib/libcom_err.dylib
/usr/lib/libdes425.dylib
/usr/lib/libgssapi_krb5.dylib
/usr/lib/libk5crypto.dylib
/usr/lib/libkrb4.dylib
/usr/lib/libkrb5.dylib
/usr/lib/libkrb524.dylib
Note that a stock krb5-1.3 build will not be able to share
credentials with the Kerberos that ships with Mac OS X (KfM) because
it does not support the in-memory credentials cache used by the Mac
and Windows MIT Kerberos releases.
Hope this helps,
--lxs
--
-----------------------------------------------------------------------------
Alexandra Ellwood <lxs at mit.edu>
MIT Information Systems http://mit.edu/lxs/www/
-----------------------------------------------------------------------------
--
More information about the Kerberos
mailing list