svn rev #24996: trunk/src/ config/ lib/crypto/crypto_tests/ lib/kdb/ plugins/kdb/ldap/ ...

ghudson@MIT.EDU ghudson at MIT.EDU
Tue Jun 28 10:07:08 EDT 2011


http://src.mit.edu/fisheye/changelog/krb5/?cs=24996
Commit By: ghudson
Log Message:
ticket: 6914

Get static linking working again, mostly.

Static linking (#6510) broke when lockout support was added because
the DB2 plugin became dependent on libkadm5srv_mit for XDR functions.
Also, static linking was extensively broken in combination with LDAP
support.  Fix these problems.

Afer these fixes, the test suite fails in the FAST tests because
there's no static build support for dynamic preauth plugins, which
means there's no encrypted challenge.  (And unlike the pkinit tests,
the test suite doesn't conditionalize on the presence of the encrypted
challenge plugin, because we always build it.)  This will fix itself
if and when encrypted challenge becomes linked into the consumers, or
static build support is added for preauth plugins.


Changed Files:
U   trunk/src/Makefile.in
U   trunk/src/aclocal.m4
U   trunk/src/config/pre.in
U   trunk/src/configure.in
U   trunk/src/lib/crypto/crypto_tests/Makefile.in
U   trunk/src/lib/kdb/kdb5.c
U   trunk/src/plugins/kdb/ldap/Makefile.in
U   trunk/src/plugins/kdb/ldap/libkdb_ldap/Makefile.in
Modified: trunk/src/Makefile.in
===================================================================
--- trunk/src/Makefile.in	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/Makefile.in	2011-06-28 14:07:07 UTC (rev 24996)
@@ -8,10 +8,10 @@
 #	plugins/preauth/cksum_body
 #	plugins/authdata/greet
 SUBDIRS=util include lib \
-	@ldap_plugin_dir@ \
 	@sam2_plugin@ \
 	plugins/kadm5_hook/test \
 	plugins/kdb/db2 \
+	@ldap_plugin_dir@ \
 	plugins/preauth/pkinit \
 	plugins/preauth/encrypted_challenge \
 	kdc kadmin slave clients appl tests \

Modified: trunk/src/aclocal.m4
===================================================================
--- trunk/src/aclocal.m4	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/aclocal.m4	2011-06-28 14:07:07 UTC (rev 24996)
@@ -1149,9 +1149,13 @@
 	KDB5_PLUGIN_DEPLIBS='$(TOPLIBD)/libkrb5_db2$(DEPLIBEXT)'
 	KDB5_PLUGIN_LIBS='-lkrb5_db2'
 	if test "x$OPENLDAP_PLUGIN" = xyes; then
-		KDB5_PLUGIN_DEBLIBS=$KDB5_PLUGIN_DEPLIBS' $(TOPLIBD)/libkrb5_ldap$(DEPLIBEXT)'
-		KDB5_PLUGIN_LIBS=$KDB_LUGIN_LIBS' -lkrb5_ldap'
+		KDB5_PLUGIN_DEBLIBS=$KDB5_PLUGIN_DEPLIBS' $(TOPLIBD)/libkrb5_ldap$(DEPLIBEXT) $(TOPLIBD)/libkdb_ldap$(DEPLIBEXT)'
+		KDB5_PLUGIN_LIBS=$KDB5_PLUGIN_LIBS' -lkrb5_kldap -lkdb_ldap $(LDAP_LIBS)'
 	fi
+	# kadm5srv_mit normally comes before kdb on the link line.  Add it
+	# again after the KDB plugins, since they depend on it for XDR stuff.
+	KDB5_PLUGIN_DEPLIBS=$KDB5_PLUGIN_DEPLIBS' $(TOPLIBD)/libkadm5srv_mit$(DEPLIBEXT)'
+	KDB5_PLUGIN_LIBS=$KDB5_PLUGIN_LIBS' -lkadm5srv_mit'
 
 	# avoid duplicate rules generation for AIX and such
 	SHLIBEXT=.so-nobuild

Modified: trunk/src/config/pre.in
===================================================================
--- trunk/src/config/pre.in	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/config/pre.in	2011-06-28 14:07:07 UTC (rev 24996)
@@ -376,6 +376,8 @@
 
 DL_LIB		= @DL_LIB@
 
+LDAP_LIBS	= @LDAP_LIBS@
+
 KRB5_LIB			= -lkrb5
 K5CRYPTO_LIB			= -lk5crypto
 COM_ERR_LIB			= -lcom_err

Modified: trunk/src/configure.in
===================================================================
--- trunk/src/configure.in	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/configure.in	2011-06-28 14:07:07 UTC (rev 24996)
@@ -1066,7 +1066,7 @@
   K5_GEN_MAKEFILE(plugins/kdb/ldap)
   K5_GEN_MAKEFILE(plugins/kdb/ldap/ldap_util)
   K5_GEN_MAKEFILE(plugins/kdb/ldap/libkdb_ldap)
-  ldap_plugin_dir=plugins/kdb/ldap
+  ldap_plugin_dir='plugins/kdb/ldap plugins/kdb/ldap/ldap_util'
   LDAP=yes
 else
   LDAP=no

Modified: trunk/src/lib/crypto/crypto_tests/Makefile.in
===================================================================
--- trunk/src/lib/crypto/crypto_tests/Makefile.in	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/lib/crypto/crypto_tests/Makefile.in	2011-06-28 14:07:07 UTC (rev 24996)
@@ -71,40 +71,40 @@
 	diff t_cf2.output $(srcdir)/t_cf2.expected
 #	$(RUN_SETUP) $(VALGRIND) ./t_pkcs5
 
-t_nfold$(EXEEXT): t_nfold.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_nfold.$(OBJEXT) -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_nfold$(EXEEXT): t_nfold.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_nfold.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_encrypt$(EXEEXT): t_encrypt.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_encrypt.$(OBJEXT)  -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_encrypt$(EXEEXT): t_encrypt.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_encrypt.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_decrypt$(EXEEXT): t_decrypt.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_decrypt.$(OBJEXT)  -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_decrypt$(EXEEXT): t_decrypt.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_decrypt.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_prf$(EXEEXT): t_prf.$(OBJEXT) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_prf.$(OBJEXT)  -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_prf$(EXEEXT): t_prf.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_prf.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_prng$(EXEEXT): t_prng.$(OBJEXT) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_prng.$(OBJEXT)  -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_prng$(EXEEXT): t_prng.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_prng.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_cmac$(EXEEXT): t_cmac.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_cmac.$(OBJEXT) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+t_cmac$(EXEEXT): t_cmac.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_cmac.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_hmac$(EXEEXT): t_hmac.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_hmac.$(OBJEXT) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+t_hmac$(EXEEXT): t_hmac.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_hmac.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-#t_pkcs5$(EXEEXT): t_pkcs5.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-#	$(CC_LINK) -o $@ t_pkcs5.$(OBJEXT) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+#t_pkcs5$(EXEEXT): t_pkcs5.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+#	$(CC_LINK) -o $@ t_pkcs5.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-vectors$(EXEEXT): vectors.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ vectors.$(OBJEXT) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+vectors$(EXEEXT): vectors.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ vectors.$(OBJEXT) $(KRB5_BASE_LIBS)
 
- t_cts$(EXEEXT): t_cts.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
+t_cts$(EXEEXT): t_cts.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
 	$(CC_LINK) -o $@ t_cts.$(OBJEXT) \
-		$(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+		$(KRB5_BASE_LIBS)
 
-t_short$(EXEEXT): t_short.$(OBJEXT) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
+t_short$(EXEEXT): t_short.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
 	$(CC_LINK) -o $@ t_short.$(OBJEXT) \
-		$(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+		$(KRB5_BASE_LIBS)
 
 t_cksum4.o: $(srcdir)/t_cksum.c
 	$(CC) -DMD=4 $(ALL_CFLAGS) -o t_cksum4.o -c $(srcdir)/t_cksum.c
@@ -113,46 +113,46 @@
 	$(CC) -DMD=5 $(ALL_CFLAGS) -o t_cksum5.o -c $(srcdir)/t_cksum.c
 
 t_cksum4: t_cksum4.o $(CRYTPO_DEPLIB)
-	$(CC_LINK) -o t_cksum4 t_cksum4.o $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB) $(LIBS)
+	$(CC_LINK) -o t_cksum4 t_cksum4.o $(KRB5_BASE_LIBS)
 
 t_cksum5: t_cksum5.o $(CRYPTO_DEPLIB)
-	$(CC_LINK) -o t_cksum5 t_cksum5.o $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB) $(LIBS)
+	$(CC_LINK) -o t_cksum5 t_cksum5.o $(KRB5_BASE_LIBS)
 
 t_cksums: t_cksums.o $(CRYTPO_DEPLIB)
-	$(CC_LINK) -o t_cksums t_cksums.o -lkrb5 $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB) $(LIBS)
+	$(CC_LINK) -o t_cksums t_cksums.o -lkrb5 $(KRB5_BASE_LIBS)
 
-t_crc: t_crc.o $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_crc.o $(K5CRYPTO_LIB) $(SUPPORT_LIB)
+t_crc: t_crc.o $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_crc.o $(KRB5_BASE_LIBS)
 
-aes-test: aes-test.$(OBJEXT) $(CRYPTO_DEPLIB)
-	$(CC_LINK) -o aes-test aes-test.$(OBJEXT) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+aes-test: aes-test.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o aes-test aes-test.$(OBJEXT) $(KRB5_BASE_LIBS)
 
 camellia-test: camellia-test.$(OBJEXT) $(CRYPTO_DEPLIB)
-	$(CC_LINK) -o camellia-test camellia-test.$(OBJEXT) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB)
+	$(CC_LINK) -o camellia-test camellia-test.$(OBJEXT) $(KRB5_BASE_LIBS)
 
 t_mddriver4.o: $(srcdir)/t_mddriver.c
 	$(CC) -DMD=4 $(ALL_CFLAGS) -o t_mddriver4.o -c $(srcdir)/t_mddriver.c
 
-t_mddriver4: t_mddriver4.o  $(SUPPORT_DEPLIB) $(CRYPTO_DEPLIB)
-	$(CC_LINK) -DMD4  -o t_mddriver4 t_mddriver4.o -lk5crypto $(SUPPORT_LIB)
+t_mddriver4: t_mddriver4.o $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -DMD4  -o t_mddriver4 t_mddriver4.o $(KRB5_BASE_LIBS)
 
-t_mddriver: t_mddriver.o  $(SUPPORT_DEPLIB) $(CRYPTO_DEPLIB)
-	$(CC_LINK) -o t_mddriver t_mddriver.o -lk5crypto $(SUPPORT_LIB)
+t_mddriver: t_mddriver.o $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o t_mddriver t_mddriver.o $(KRB5_BASE_LIBS)
 
-t_kperf: t_kperf.o $(SUPPORT_DEPLIB) $(CRYPTO_DEPLIB)
-	$(CC_LINK) -o t_kperf t_kperf.o  $(SUPPORT_LIB) $(CRYPTO_DEPLIB)
+t_kperf: t_kperf.o $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o t_kperf t_kperf.o $(KRB5_BASE_LIBS)
 
-t_str2key$(EXEEXT): t_str2key.$(OBJEXT) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_str2key.$(OBJEXT)  -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_str2key$(EXEEXT): t_str2key.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_str2key.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_derive$(EXEEXT): t_derive.$(OBJEXT) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_derive.$(OBJEXT)  -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_derive$(EXEEXT): t_derive.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_derive.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_fork$(EXEEXT): t_fork.$(OBJEXT) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_fork.$(OBJEXT) -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_fork$(EXEEXT): t_fork.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_fork.$(OBJEXT) $(KRB5_BASE_LIBS)
 
-t_cf2$(EXEEXT): t_cf2.$(OBJEXT) $(SUPPORT_DEPLIB)
-	$(CC_LINK) -o $@ t_cf2.$(OBJEXT)  -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB)
+t_cf2$(EXEEXT): t_cf2.$(OBJEXT) $(KRB5_BASE_DEPLIBS)
+	$(CC_LINK) -o $@ t_cf2.$(OBJEXT) $(KRB5_BASE_LIBS)
 
 clean::
 	$(RM) t_nfold.o t_nfold t_encrypt t_encrypt.o \

Modified: trunk/src/lib/kdb/kdb5.c
===================================================================
--- trunk/src/lib/kdb/kdb5.c	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/lib/kdb/kdb5.c	2011-06-28 14:07:07 UTC (rev 24996)
@@ -265,7 +265,7 @@
 
 extern kdb_vftabl krb5_db2_kdb_function_table;
 #ifdef ENABLE_LDAP
-extern kdb_vftabl krb5_db2_ldap_function_table;
+extern kdb_vftabl krb5_ldap_kdb_function_table;
 #endif
 
 static krb5_error_code

Modified: trunk/src/plugins/kdb/ldap/Makefile.in
===================================================================
--- trunk/src/plugins/kdb/ldap/Makefile.in	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/plugins/kdb/ldap/Makefile.in	2011-06-28 14:07:07 UTC (rev 24996)
@@ -7,7 +7,7 @@
 DEFS =
 MODULE_INSTALL_DIR = $(KRB5_DB_MODULE_DIR)
 
-SUBDIRS= libkdb_ldap ldap_util
+SUBDIRS= libkdb_ldap
 
 LOCALINCLUDES = -I../../../lib/kdb -I$(srcdir)/../../../lib/kdb \
 	-I$(srcdir)/libkdb_ldap
@@ -29,8 +29,6 @@
 SHLIB_DIRS=-L$(TOPLIBD)
 SHLIB_RDIRS=$(KRB5_LIBDIR)
 
-$(TOPLIBD)/libkdb_ldap$(SHLIBEXT): all-recurse
-
 SRCS= 	$(srcdir)/ldap_exp.c
 
 STOBJLISTS=OBJS.ST

Modified: trunk/src/plugins/kdb/ldap/libkdb_ldap/Makefile.in
===================================================================
--- trunk/src/plugins/kdb/ldap/libkdb_ldap/Makefile.in	2011-06-27 22:23:23 UTC (rev 24995)
+++ trunk/src/plugins/kdb/ldap/libkdb_ldap/Makefile.in	2011-06-28 14:07:07 UTC (rev 24996)
@@ -29,7 +29,7 @@
 	$(TOPLIBD)/libk5crypto$(SHLIBEXT) \
 	$(SUPPORT_DEPLIB) \
 	$(TOPLIBD)/libkrb5$(SHLIBEXT)
-SHLIB_EXPLIBS= $(KADMSRV_LIBS) -lkrb5 -lk5crypto $(COM_ERR_LIB) $(SUPPORT_LIB) @LDAP_LIBS@ $(LIBS)
+SHLIB_EXPLIBS= $(KADMSRV_LIBS) -lkrb5 -lk5crypto $(COM_ERR_LIB) $(SUPPORT_LIB) $(LDAP_LIBS) $(LIBS)
 SHLIB_DIRS=-L$(TOPLIBD)
 SHLIB_RDIRS=$(KRB5_LIBDIR)
 




More information about the cvs-krb5 mailing list