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