On (07/08/18 15:48), Andreas Hasenack wrote: >On Tue, Aug 7, 2018 at 10:19 AM Sumit Bose <sb...@redhat.com> wrote: >> >> > But something is still unexplained: the same test works just fine in >> > debian, and doesn't try to connect to that socket. >> >> This is just linker magic. Due to my fault >> sss_nss_make_request_timeout() is defined twice and which symbol is >> picked might depend on specific linker options used. > >I just found out what option that was. Ubuntu, since many years, uses >-Wl,-Bsymbolic-functions in its default linker flags. Debian doesn't. > >The moment I strip this flag from the build, the test passes. I can't >do that for the official package build, but it's good to know what >option was causing the test to fail.
That would need to be disabled just for make check. Because libsss_nss_idmap_tests.so which is used for testing is not the same as libsss_nss_idmap.so which is used in reality. libsss_nss_idmap_tests.so also export function sss_nss_make_request_timeout which is not exported in libsss_nss_idmap.so sh-4.4$ nm --defined-only --dynamic .libs/libsss_nss_idmap.so | grep request sh-4.4$ nm --defined-only --dynamic .libs/libsss_nss_idmap_tests.so | grep request 0000000000004290 T sss_nss_make_request_timeout It was done to make testing possible and avoid copy&paste mistakes libsss_nss_idmap_tests_la_SOURCES = $(libsss_nss_idmap_la_SOURCES) libsss_nss_idmap_tests_la_LIBADD = $(libsss_nss_idmap_la_LIBADD) libsss_nss_idmap_tests_la_LDFLAGS = \ $(libsss_nss_idmap_la_LDFLAGS) \ -shared \ -rpath $(libdir) \ -Wl,--version-script,$(srcdir)/src/sss_client/idmap/sss_nss_idmap.unit_tests Other option would be to "include" all sources from library to test. + use -Wl,-wrap,sss_nss_make_request_timeout Or another hacky way to use weak symbols diff --git a/Makefile.am b/Makefile.am index ea7648bcd..7216561fb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2600,12 +2600,13 @@ test_authtok_LDADD = \ $(NULL) sss_nss_idmap_tests_SOURCES = \ - src/tests/cmocka/sss_nss_idmap-tests.c + src/tests/cmocka/sss_nss_idmap-tests.c \ + $(libsss_nss_idmap_la_SOURCES) sss_nss_idmap_tests_CFLAGS = \ $(AM_CFLAGS) sss_nss_idmap_tests_LDADD = \ $(CMOCKA_LIBS) \ - libsss_nss_idmap_tests.la \ + $(libsss_nss_idmap_la_LIBADD) \ $(NULL) deskprofile_utils_tests_SOURCES = \ diff --git a/src/sss_client/common.c b/src/sss_client/common.c index 67a460705..a93aaff16 100644 --- a/src/sss_client/common.c +++ b/src/sss_client/common.c @@ -718,6 +718,7 @@ static enum sss_status sss_cli_check_socket(int *errnop, /* this function will check command codes match and returned length is ok */ /* repbuf and replen report only the data section not the header */ +__attribute((weak)) enum nss_status sss_nss_make_request_timeout(enum sss_cli_command cmd, struct sss_cli_req_data *rd, int timeout, LS _______________________________________________ sssd-users mailing list -- sssd-users@lists.fedorahosted.org To unsubscribe send an email to sssd-users-le...@lists.fedorahosted.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/sssd-users@lists.fedorahosted.org/message/E2FPZZCLH6YOL2I3FC5R77GFQXZDHRKT/