ticket #10966

David Fang fang at csl.cornell.edu
Wed Jan 13 02:03:52 EST 2010


> Re: 2.6.2: check test build fail on powerpc-apple-darwin8

Hi,
 	I've noticed that ticket #10966 still hasn't been fixed, 2.6.5 
still exhibits the problem during make check.

http://developer.pidgin.im/ticket/10966

I offered a solution several months ago that still works.
You need to distinguish between a shared library that is a plug-in
and one that is not, as the warning says.
The plug-in may simply link to a shared library (with the same symbols), 
for instance, letting libtool take care of the magic.

>> 	I'm seeing the following error during make check for pidgin 2.6.2 
>> (new since 2.6.1).
>> 
>> /bin/sh ../../libtool --silent --tag=CC --mode=link gcc  -g -Os  -L/sw/lib 
>> -o check_libpurple  check_libpurple-check_libpurple.o 
>> check_libpurple-test_cipher.o check_libpurple-test_jabber_jutil.o 
>> check_libpurple-test_qq.o check_libpurple-test_yahoo_util.o 
>> check_libpurple-test_util.o -L/sw/lib -lcheck -L/sw/lib -lgobject-2.0 
>> -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl 
>> ../../libpurple/protocols/jabber/libjabber.la 
>> ../../libpurple/protocols/qq/libqq.la 
>> ../../libpurple/protocols/yahoo/libymsg.la ../../libpurple/libpurple.la 
>> -ldb -lpthread -lresolv  -Wl,-framework,IOKit -Wl,-framework,CoreFoundation
>> 
>> *** Warning: Linking the executable check_libpurple against the loadable 
>> module
>> *** libqq.so is not portable!
>> *** Warning: lib libqq.so is a module, not a shared library
>> 
>> *** And there doesn't seem to be a static archive available
>> *** The link will probably fail, sorry
>> /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: 
>> ../../libpurple/protocols/qq/.libs/libqq.so is input for the dynamic link 
>> editor, is not relocatable by the static link editor again
>> collect2: ld returned 1 exit status
>> make[4]: *** [check_libpurple] Error 1

The solution:

> I've 'fixed' this locally by creating a non-module libqq.la:
>
> (libpurple/protocols/qq/Makefile.am):
> noinst_LTLIBRARIES += libqq_test.la
> libqq_test_la_SOURCES = $(QQSOURCES)
> libqq_test_la_LIBADD = $(libqq_la_LIBADD)

And linking the test executable to the non-module library:

> (libpurple/tests/Makefile.am):
> check_libpurple_LDADD=\
> 	...
>                $(top_builddir)/libpurple/protocols/qq/libqq_test.la \
> 	...
>
>
> and now this links correctly, and passes tests.
>
> make  check-TESTS
> Running suite(s): Master Suite
> Cipher Suite
> Jabber Utility Functions
> QQ
> Yahoo Utility Functions
> Utility Functions
> 100%: Checks: 80, Failures: 0, Errors: 0
> PASS: check_libpurple
> ==================
> All 1 tests passed
> ==================

Alternatively, libqq.la could just LIBADD libqq_test.la.

Please consider applying this, so that make check will work again.
Thanks for developing pidgin!

Fang (fangism)

David Fang
http://www.csl.cornell.edu/~fang/
http://www.achronix.com/




More information about the Devel mailing list