[SSSD] [PATCH] TESTS: Link libsss_test_common with tevent

Jakub Hrozek jhrozek at redhat.com
Mon Mar 10 15:12:00 UTC 2014


On Mon, Mar 10, 2014 at 12:42:09PM +0100, Lukas Slebodnik wrote:
> On (10/03/14 12:32), Jakub Hrozek wrote:
> >On Mon, Mar 10, 2014 at 07:37:00AM +0100, Lukas Slebodnik wrote:
> >> On (18/11/13 10:59), Lukas Slebodnik wrote:
> >> >On (18/11/13 10:41), Lukas Slebodnik wrote:
> >> >>ehlo,
> >> >>
> >> >>Static library libsss_test_common calls tevent functions directly (in module
> >> >>common_tev.c), but it was not linked with tevent library.
> >> >>
> >> >>Compilation will fail if sssd is linked with "-Wl,--as-needed"
> >> >>  CCLD     test_utils
> >> >>/usr/bin/ld: ./.libs/libsss_test_common.a(common_tev.o): undefined reference to symbol 'tevent_context_init@@TEVENT_0.9.9'
> >> >>/usr/bin/ld: note: 'tevent_context_init@@TEVENT_0.9.9' is defined in DSO /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/libtevent.so so try adding it to the linker command line
> >> >>/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/libtevent.so: could not read symbols: Invalid operation
> >> >>clang: error: linker command failed with exit code 1 (use -v to see invocation)
> >> >>
> >> >>nm ./libsss_test_common.a  | grep tevent
> >> >>                 U tevent_context_init
> >> >>                 U _tevent_loop_once
> >> >>                 U _tevent_req_create
> >> >>                 U _tevent_req_done
> >> >>                 U _tevent_req_error
> >> >>                 U tevent_req_is_error
> >> >>                 U tevent_req_post
> >> >>
> >> >>Simple patch is attached.
> >> >One more time :-)
> >> >
> >> >LS
> >> 
> >> The same problem is also in sssd-1-11 after pushing patch
> >>     "DP: Provide separate dp_copy_defaults function"
> >> 
> >>   CCLD     dp_opt_tests
> >> /usr/bin/ld: ./.libs/libsss_test_common.a(common_tev.o): undefined reference to symbol '_tevent_loop_once@@TEVENT_0.9.9'
> >> /usr/bin/ld: note: '_tevent_loop_once@@TEVENT_0.9.9' is defined in DSO /lib64/libtevent.so.0 so try adding it to the linker command line
> >> /lib64/libtevent.so.0: could not read symbols: Invalid operation
> >> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> >> make[2]: *** [dp_opt_tests] Error 1
> >> 
> >> LS
> >
> >Darn. I wonder how to catch these issues automatically the next time
> >around. I don't compile with -as-needed right now, mostly because I try
> >to keep my defaults as close to RHEL and Fedora as possible.
> >
> Sometimes it is "--as-needed" and sometimes disabled link_all_deplibs.
> 
> >Is there any value in doing so? Would this be a good thing for the Continuous
> >Integration setup?
> 
> Yes,
> we should try to build sssd on debian (ubuntu)

Seems like something the CI should do for us, not something we should do
manually.



More information about the sssd-devel mailing list