On (19/04/13 21:24), Lukas Slebodnik wrote:
>On (19/04/13 11:30), Jakub Hrozek wrote:
>>Timo Aaltonen discovered that on Ubuntu the simple access tests fail
>>with a linker error saying that dlopen and dlsym are not available. It
>>seems that because we are linking to some files from
>>src/providers/data_provider_*.c we need to also link with -ldl.
>>
>>Timo confirmed on IRC that this one-liner fixes the problem for him.
>
>>From a58c950b21056925f8a5ae46a6bb6ad5a951ef11 Mon Sep 17 00:00:00 2001
>>From: Jakub Hrozek <jhro...@redhat.com>
>>Date: Fri, 19 Apr 2013 11:27:59 +0200
>>Subject: [PATCH] tests: Link the simple access tests with -ldl
>>
>>---
>> Makefile.am | 1 +
>> 1 file changed, 1 insertion(+)
>>
>>diff --git a/Makefile.am b/Makefile.am
>>index 
>>09056b5d9fec1d23213132940d11c312bcbfc23d..ef1802246226bd08826f028a784d80289b723d81
>> 100644
>>--- a/Makefile.am
>>+++ b/Makefile.am
>>@@ -1058,6 +1058,7 @@ simple_access_tests_CFLAGS = \
>>     $(CHECK_CFLAGS) \
>>     -DUNIT_TESTING
>> simple_access_tests_LDADD = \
>>+    -ldl \
>>     $(SSSD_LIBS) \
>>     $(CARES_LIBS) \
>>     $(CHECK_LIBS) \
>>-- 
>>1.8.1.4
>
>Ack,
>but add comment to git message, that upstream nspr 4.9 
>(http://www.mozilla.org/projects/nspr/)
>removed -ldl and -lpthread from pkg-config file.
>
>BTW: sssd depends on nss and nss depends on nspr.
>
>LS

After reading this mail once more time. I find out, that my explanations was
very briefly and maybe unintelligible.

In SSSD, we use functions dlopen and dlsym in two files
src/providers/data_provider_be.c and src/providers/proxy/proxy_init.c. This is
reason why we should explicitly link with -ldl also in simple_access-tests.

SSSD can be compiled with two crypto libraries
nss(mozilla) or libcrypto(openssl). NSS has dependency nspr which depends on
"libdl and libpthread"
This is a reason why compilation of test did not failed even if -ldl was not
explicitly added to simple_access_tests_LDADD. But libcrypto doesn't depend on
libdl, so in this case compilation of tests will not be successful.

Upstream nspr 4.9 has two ways have to obtain metainformation about libraries
pkg-config and own script nspr-config. First one doesn't show "-ldl and
-lpthread" but second one show "-ldl and -lpthread"
And this is a reason why Timo found this bug. Fedora has got patched version of
nspr, but debian(ubuntu) hasn't got.

LS
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to