>From e99edbfc70824882ef48458a9eaaf2cc6c07e3ad Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Wed, 16 Oct 2013 13:23:48 +0200 Subject: [PATCH 1/3] BUILD: Link libsss_krb5_common.so to libkeyutils.so The symbol add_key is used by src/providers/krb5/krb5_delayed_online_authentication.c which is part of libsss_krb5_common.so Fixes following error: [sssd[be[default]]] [load_backend_module] (0x0010): Unable to load ad module with path (/usr/lib64/sssd/libsss_ad.so), error: /usr/lib64/sssd/libsss_krb5_common.so: undefined symbol: add_key -lkeyutils was passed to the libraries libsss_{krb5,ipa,ad}.so, but when compiling with -Wl,--as-needed this flag will be ignored, since it is not used directly. So it was unavailable to libsss_krb5_common.so which actually needs it. This patch removes $(KEYUTILS_LIBS) from those libraries and adds it to libsss_krb5_common.so --- Makefile.am | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 992d5796ea3e729238a8d7664c128112291c40ab..102797cec02161b0553c2adb3cbf19e83fd50be0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1589,6 +1589,8 @@ libsss_krb5_common_la_SOURCES = \ src/providers/krb5/krb5_access.c \ src/providers/krb5/krb5_child_handler.c \ src/providers/krb5/krb5_init_shared.c +libsss_krb5_common_la_LIBADD = \ + $(KEYUTILS_LIBS) libsss_krb5_common_la_LDFLAGS = \ -avoid-version @@ -1655,7 +1657,6 @@ libsss_krb5_la_CFLAGS = \ libsss_krb5_la_LIBADD = \ $(SYSTEMD_LOGIN_LIBS) \ $(DHASH_LIBS) \ - $(KEYUTILS_LIBS) \ $(KRB5_LIBS) \ libsss_krb5_common.la libsss_krb5_la_LDFLAGS = \ @@ -1710,7 +1711,6 @@ libsss_ipa_la_LIBADD = \ $(OPENLDAP_LIBS) \ $(DHASH_LIBS) \ $(NDR_NBT_LIBS) \ - $(KEYUTILS_LIBS) \ $(KRB5_LIBS) \ libsss_ldap_common.la \ libsss_krb5_common.la \ @@ -1767,7 +1767,6 @@ libsss_ad_la_LIBADD = \ $(OPENLDAP_LIBS) \ $(SASL_LIBS) \ $(DHASH_LIBS) \ - $(KEYUTILS_LIBS) \ $(KRB5_LIBS) \ $(NDR_NBT_LIBS) \ libsss_ldap_common.la \ -- 1.8.3.1