[SSSD] [PATCH] BUILD: Link libsss_krb5_common.so to libkeyutils.so

Jakub Hrozek jhrozek at redhat.com
Tue Nov 12 10:15:24 UTC 2013


On Tue, Nov 12, 2013 at 08:23:04AM +0100, Lukas Slebodnik wrote:
> On (16/10/13 08:56), Simo Sorce wrote:
> >On Wed, 2013-10-16 at 14:49 +0200, Benjamin Franzke wrote:
> >> Hi List,
> >> 
> >> 
> >> 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
> >> 
> >> 
> >> Maybe libsss_krb5_common.so should be added to dlopen-tests?
> >
> >Yes please.
> >
> >> But then other libraries and functions are needed as well,
> >> which it currently inherits from libsss_{krb5,ipa,ad}.so.
> >
> >You can just open a chain of libraries.
> >> 
> >> BTW: are these common libraries (i mean ldap too) convenience build
> >> libraries, or to save disk space?
> >
> >Not just to save disk space but to avoid duplicate symbols in multiple
> >modules.
> >
> >Simo.
> >
> 
> I am sending rebased patch and patch where libsss_krb5_common.so was added
> into dlopen-tests.
> 
> LS

> From 4318c59a8fc327fbc6013c8b424a35a2717fe838 Mon Sep 17 00:00:00 2001
> From: Benjamin Franzke <benjaminfranzke at googlemail.com>
> Date: Wed, 16 Oct 2013 13:23:48 +0200
> Subject: [PATCH 1/3] BUILD: Link libsss_krb5_common.so to libkeyutils.so

ACK


> From e1639ee19549d645d84bf3206b2bd1f20964b555 Mon Sep 17 00:00:00 2001
> From: Lukas Slebodnik <lslebodn at redhat.com>
> Date: Mon, 11 Nov 2013 19:35:13 +0100
> Subject: [PATCH 2/3] BUILD: move file find_uid.c into libsss_util.so
> 
> ---
>  Makefile.am | 30 ++++++++----------------------
>  1 file changed, 8 insertions(+), 22 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index 102797cec02161b0553c2adb3cbf19e83fd50be0..62e31a6fe4a22e8d98f73a6fb3c3e39ae3710555 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -590,9 +590,13 @@ libsss_util_la_SOURCES = \
>      src/util/util_errors.c \
>      src/util/sss_ini.c \
>      src/util/io.c \
> -    src/util/util_sss_idmap.c
> +    src/util/util_sss_idmap.c \
> +    src/util/find_uid.c
> +libsss_util_la_CFLAGS = \
> +    $(SYSTEMD_LOGIN_CFLAGS)
>  libsss_util_la_LIBADD = \
>      $(SSSD_LIBS) \
> +    $(SYSTEMD_LOGIN_LIBS) \
>      $(UNICODE_LIBS)
>  if BUILD_SUDO
>      libsss_util_la_SOURCES += src/db/sysdb_sudo.c
> @@ -784,16 +788,13 @@ sss_useradd_LDADD = \
>  
>  sss_userdel_SOURCES = \
>      src/tools/sss_userdel.c \
> -    src/util/find_uid.c \
>      $(SSSD_LCL_TOOLS_OBJ)
>  sss_userdel_LDADD = \
>      $(TOOLS_LIBS) \
> -    $(SYSTEMD_LOGIN_LIBS) \
>      $(SSSD_INTERNAL_LTLIBS) \
>      $(CLIENT_LIBS)
>  sss_userdel_CFLAGS = \
> -    $(AM_CFLAGS) \
> -    $(SYSTEMD_LOGIN_CFLAGS)
> +    $(AM_CFLAGS)
>  
>  sss_groupadd_SOURCES = \
>      src/tools/sss_groupadd.c \
> @@ -987,21 +988,18 @@ krb5_utils_tests_SOURCES = \
>      src/providers/krb5/krb5_become_user.c \
>      src/providers/krb5/krb5_common.c \
>      src/util/sss_krb5.c \
> -    src/util/find_uid.c \
>      src/providers/data_provider_fo.c \
>      src/providers/data_provider_opts.c \
>      src/providers/data_provider_callbacks.c \
>      $(SSSD_FAILOVER_OBJ)
>  krb5_utils_tests_CFLAGS = \
>      $(AM_CFLAGS) \
> -    $(CHECK_CFLAGS) \
> -    $(SYSTEMD_LOGIN_CFLAGS)
> +    $(CHECK_CFLAGS)
>  krb5_utils_tests_LDADD = \
>      $(SSSD_LIBS)\
>      $(CARES_LIBS) \
>      $(KRB5_LIBS) \
>      $(CHECK_LIBS) \
> -    $(SYSTEMD_LOGIN_LIBS) \
>      $(SSSD_INTERNAL_LTLIBS) \
>      libsss_test_common.la
>  
> @@ -1251,7 +1249,6 @@ krb5_child_test_SOURCES = \
>      src/providers/krb5/krb5_become_user.c \
>      src/providers/krb5/krb5_common.c \
>      src/util/sss_krb5.c \
> -    src/util/find_uid.c \
>      src/providers/data_provider_fo.c \
>      src/providers/data_provider_opts.c \
>      src/providers/data_provider_callbacks.c \
> @@ -1259,14 +1256,12 @@ krb5_child_test_SOURCES = \
>  krb5_child_test_CFLAGS = \
>      $(AM_CFLAGS) \
>      -DKRB5_CHILD_DIR=\"$(builddir)\" \
> -    $(CHECK_CFLAGS) \
> -    $(SYSTEMD_LOGIN_CFLAGS)
> +    $(CHECK_CFLAGS)
>  krb5_child_test_LDADD = \
>      $(SSSD_LIBS) \
>      $(CARES_LIBS) \
>      $(KRB5_LIBS) \
>      $(CHECK_LIBS) \
> -    $(SYSTEMD_LOGIN_LIBS) \
>      $(SSSD_INTERNAL_LTLIBS) \
>      libsss_test_common.la
>  
> @@ -1392,12 +1387,10 @@ ad_access_filter_tests_SOURCES = \
>      $(sssd_be_SOURCES) \
>      src/util/sss_ldap.c \
>      src/util/sss_krb5.c \
> -    src/util/find_uid.c \
>      src/util/user_info_msg.c \
>      src/tests/cmocka/test_ad_access_filter.c
>  ad_access_filter_tests_CFLAGS = \
>      $(AM_CFLAGS) \
> -    $(SYSTEMD_LOGIN_CFLAGS) \
>      -DUNIT_TESTING
>  ad_access_filter_tests_LDADD = \
>      $(PAM_LIBS) \
> @@ -1406,7 +1399,6 @@ ad_access_filter_tests_LDADD = \
>      $(CARES_LIBS) \
>      $(KRB5_LIBS) \
>      $(SSSD_INTERNAL_LTLIBS) \
> -    $(SYSTEMD_LOGIN_LIBS) \
>      libsss_ldap_common.la \
>      libsss_idmap.la \
>      libsss_krb5_common.la \
> @@ -1606,14 +1598,12 @@ libsss_ldap_la_SOURCES = \
>      src/util/sss_krb5.c
>  libsss_ldap_la_CFLAGS = \
>      $(AM_CFLAGS) \
> -    $(SYSTEMD_LOGIN_CFLAGS) \
>      $(OPENLDAP_CFLAGS) \
>      $(KRB5_CFLAGS)
>  libsss_ldap_la_LIBADD = \
>      $(OPENLDAP_LIBS) \
>      $(DHASH_LIBS) \
>      $(KRB5_LIBS) \
> -    $(SYSTEMD_LOGIN_LIBS) \
>      libsss_ldap_common.la \
>      libsss_idmap.la
>  libsss_ldap_la_LDFLAGS = \
> @@ -1749,21 +1739,17 @@ libsss_ad_la_SOURCES = \
>      src/providers/ad/ad_subdomains.h \
>      src/providers/ad/ad_domain_info.c \
>      src/providers/ad/ad_domain_info.h \
> -    src/util/find_uid.c \
>      src/util/user_info_msg.c \
>      src/util/sss_krb5.c \
>      src/util/sss_ldap.c
>  
>  libsss_ad_la_CFLAGS = \
>      $(AM_CFLAGS) \
> -    $(SYSTEMD_LOGIN_CFLAGS) \
>      $(OPENLDAP_CFLAGS) \
> -    $(SASL_CFLAGS) \

Why was SASL_CFLAGS removed here?

>      $(DHASH_CFLAGS) \
>      $(KRB5_CFLAGS) \
>      $(NDR_NBT_CFLAGS)
>  libsss_ad_la_LIBADD = \
> -    $(SYSTEMD_LOGIN_LIBS) \
>      $(OPENLDAP_LIBS) \
>      $(SASL_LIBS) \
>      $(DHASH_LIBS) \
> -- 
> 1.8.3.1
> 

> From b044b85ac073ed068796a9365715155c6edd8fd8 Mon Sep 17 00:00:00 2001
> From: Lukas Slebodnik <lslebodn at redhat.com>
> Date: Mon, 11 Nov 2013 19:39:17 +0100
> Subject: [PATCH 3/3] TEST: Add libsss_krb5_common.so to dlopen test
> 
> ---
>  Makefile.am              | 6 ++++--
>  src/tests/dlopen-tests.c | 2 ++
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index 62e31a6fe4a22e8d98f73a6fb3c3e39ae3710555..cb23fe4764d7aa831359e21b59a033c32c3a25fa 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -1580,9 +1580,11 @@ libsss_krb5_common_la_SOURCES = \
>      src/providers/krb5/krb5_auth.c \
>      src/providers/krb5/krb5_access.c \
>      src/providers/krb5/krb5_child_handler.c \
> -    src/providers/krb5/krb5_init_shared.c
> +    src/providers/krb5/krb5_init_shared.c \
> +    src/util/sss_krb5.c

Why was sss_krb5.c and KRB5_LIBS added in this patch?

>  libsss_krb5_common_la_LIBADD = \
> -    $(KEYUTILS_LIBS)
> +    $(KEYUTILS_LIBS) \
> +    $(KRB5_LIBS)
>  libsss_krb5_common_la_LDFLAGS = \
>      -avoid-version
>  
> diff --git a/src/tests/dlopen-tests.c b/src/tests/dlopen-tests.c
> index dd4cc754ac37621b953a462b5e73696d4556770c..9c09e3334005fdac03be84489777c0e96e84cf4e 100644
> --- a/src/tests/dlopen-tests.c
> +++ b/src/tests/dlopen-tests.c
> @@ -80,6 +80,8 @@ struct so {
>                           LIBPFX"libsss_ipa.so", NULL } },
>      { "libsss_krb5.so", { LIBPFX"libdlopen_test_providers.so",
>                            LIBPFX"libsss_krb5.so", NULL } },
> +    { "libsss_krb5_common.so", { LIBPFX"libdlopen_test_providers.so",
> +                                 LIBPFX"libsss_krb5_common.so", NULL } },
>      { "libsss_ldap.so", { LIBPFX"libdlopen_test_providers.so",
>                            LIBPFX"libsss_ldap.so", NULL } },
>      { "libsss_proxy.so", { LIBPFX"libdlopen_test_providers.so",
> -- 
> 1.8.3.1
> 



More information about the sssd-devel mailing list