On Mon, Dec 08, 2014 at 10:45:52PM +0100, Jakub Hrozek wrote:
On Wed, Dec 03, 2014 at 03:32:40PM +0100, Lukas Slebodnik wrote:
> ehlo,
>
> Compilation of test_child_common failed with linker flag --as-needned
> due to cyclic dependencies between libsss_child.so and libsss_util.so
>
> CCLD test_child_common
> ./.libs/libsss_child.so: undefined reference to `sss_hash_create'
> ./.libs/libsss_child.so: undefined reference to `hash_lookup'
> ./.libs/libsss_child.so: undefined reference to `BlockSignals'
> ./.libs/libsss_child.so: undefined reference to `hash_delete'
> ./.libs/libsss_child.so: undefined reference to `hash_enter'
> ./.libs/libsss_child.so: undefined reference to `hash_error_string'
> ./.libs/libsss_child.so: undefined reference to `sss_atomic_io_s'
> ./.libs/libsss_child.so: undefined reference to `sss_strerror'
> collect2: error: ld returned 1 exit status
>
>
> The ideal solution would be to link test_child_common with libsss_child.
> It is not possible due to cyclic dependencies.
>
> The 2nd patch partially fix dependencies for sss internal libraries
> but there are still 4 functions used in libsss_child.so which are defined in
> libsss_util.so
>
> ./.libs/libsss_child.so: undefined reference to `sss_hash_create'
> ./.libs/libsss_child.so: undefined reference to `BlockSignals'
> ./.libs/libsss_child.so: undefined reference to `sss_atomic_io_s'
> ./.libs/libsss_child.so: undefined reference to `sss_strerror'
>
> Thi is a reason why dlopen-test have to contain libsss_util.so as a dependecy
> for libsss_child.so
>
> LS
Reproduced and verified the fix using:
make LDFLAGS="$LDFLAGS -Wl,--as-needed"
make tests LDFLAGS="$LDFLAGS -Wl,--as-needed"
ACK to both patches.
* master:
* 4d9db278db1197ae84fecb8f269e2de368a6be2a
* 5a05b6127064c74349f1edae32e5e13032c386fe