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

Simo Sorce simo at redhat.com
Tue Nov 12 16:15:34 UTC 2013


On Tue, 2013-11-12 at 11:03 -0500, Simo Sorce wrote:
> On Tue, 2013-11-12 at 16:23 +0100, Lukas Slebodnik wrote:

> > Updated patches are attached.
> 
> This is not the right way to fix the failure.
> 
> That library *knowingly* has missing symbols because it is an internal
> library.
> 
> You need to build or link to an outer program that have only the
> necessary symbols you know are going to be available.
> 
> In this case those symbols are in libsss_krb5.so, so all you should nee
> to do is to have this in tests:
> 
> +    { "libsss_krb5_common.so", { LIBPFX"libdlopen_test_providers.so",
> +                                 LIBPFX"libsss_krb5_common.so",
> + 				  LIBPFX"libsss_krb5.so",
> + 				  NULL } },
> 
> Adding c files to librraies to "make them pass" the dl-open test is
> wrong in 99% of the cases. you are just making the test pass not testing
> that the libraries have the right dependencies. In particular for
> internal modules you really need to understand the hierarchy of the
> modules and link in the test all the necessary dependencies before
> thinking of adding any file to the module itself.
> 
> In this case what you did was to duplicate symblos in the resulting Text
> file, and that can potentially cause very serious consequencies if any
> of those symbols is a static symbols that is meant to have a share de
> value all code rely on.

Oh let me add.
I did my check very quickly so it is possible that my version is not the
final correct approach, I was just describing how you should pass in
multiple libs for dependency.

It is possible that you need those symbols directly in
libsss_krb5_common.so, but if that is actually the case, then it means
you have to remove those symbols from libsss_krb5.so and add them
libsss_krb5_common.so as dependency for libsss_krb5.so in makefile and
tests. This may even require moving functions from one file to another
in the extreme case.

HTH,
Simo.

-- 
Simo Sorce * Red Hat, Inc * New York




More information about the sssd-devel mailing list