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

Lukas Slebodnik lslebodn at redhat.com
Mon Mar 10 15:13:54 UTC 2014


On (10/03/14 16:12), Jakub Hrozek wrote:
>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.
I missed an important part: in Jenkins

we should try to build sssd on debian (ubuntu) in Jenkins.

LS



More information about the sssd-devel mailing list