Libtool and Support for Shared Libraries (3)

Bron Gondwana brong at fastmail.fm
Tue Jun 26 18:27:02 EDT 2012



On Tue, Jun 5, 2012, at 12:49 PM, Дилян Палаузов wrote:
> Hello,
> 
> now libcyrus and libcyrus_min are compiled once as shared libraries, 
> once under perl/ as non-static convenience libraries,
>    perl/imap/IMAP.so and perl/sieve/managesieve/managesieve.so link 
> statically with the non-static convenience libraries,
>    so that IMAP.so and managesieve.so do need neither libcyrus and 
> libcyrus_min at run time nor the RPATH with those libraries at tun time.
> 
> I hope this is the end with the shared libraries, before they can be merged.

Trying to build on our Debian Squeeze production system:

*** Warning: Linking the shared library sieve/libcyrus_sieve.la against the
*** static library /usr/lib/libcom_err.a is not portable!

*** Warning: Linking the shared library imap/libcyrus_imap.la against the
*** static library /usr/lib/libcom_err.a is not portable!
libtool: link: gcc -shared  sieve/.libs/addr.o sieve/.libs/addr-lex.o sieve/.libs/bc_dump.o sieve/.libs/bc_emit.o sieve/.libs/bc_eval.o sieve/.libs/bc_generate.o sieve/.libs/comparator.o sieve/.libs/interp.o sieve/.libs/message.o sieve/.libs/script.o sieve/.libs/sieve-lex.o sieve/.libs/sieve.o sieve/.libs/tree.o sieve/.libs/sieve_err.o   -Wl,-rpath -Wl,/usr/src/cyrus-future-build/cyrus/lib/.libs -Wl,-rpath -Wl,/usr/cyrus-future/lib /usr/lib/libcom_err.a lib/.libs/libcyrus_min.so lib/.libs/libcyrus.so -lpcre -lpcreposix -lz    -Wl,-soname -Wl,libcyrus_sieve.so.0 -o sieve/.libs/libcyrus_sieve.so.0.0.0
libtool: link: gcc -fPIC -g -fPIC -W -Wall -fstack-protector-all -o imtest/.libs/imtest imtest/imtest.o  lib/.libs/libcyrus.so lib/.libs/libcyrus_min.so -lprotobuf-c -lpcre -lpcreposix -lz -Wl,-rpath -Wl,/usr/cyrus-future/lib
libtool: link: gcc -shared  imap/.libs/annotate.o imap/.libs/append.o imap/.libs/backend.o imap/.libs/convert_code.o imap/.libs/dlist.o imap/.libs/duplicate.o imap/.libs/global.o imap/.libs/idle.o imap/.libs/idlemsg.o imap/.libs/imapparse.o imap/.libs/index.o imap/.libs/mailbox.o imap/.libs/mbdump.o imap/.libs/mboxkey.o imap/.libs/mboxlist.o imap/.libs/mboxname.o imap/.libs/message_guid.o imap/.libs/message.o imap/.libs/mupdate-client.o imap/.libs/notify.o imap/.libs/proc.o imap/.libs/quota_db.o imap/.libs/rfc822_header.o imap/.libs/saslclient.o imap/.libs/saslserver.o imap/.libs/search_engines.o imap/.libs/seen_db.o imap/.libs/sequence.o imap/.libs/setproctitle.o imap/.libs/squat.o imap/.libs/squat_internal.o imap/.libs/statuscache_db.o imap/.libs/sync_log.o imap/.libs/telemetry.o imap/.libs/tls.o imap/.libs/upgrade_index.o imap/.libs/user.o imap/.libs/userdeny_db.o imap/.libs/version.o imap/.libs/conversations.o imap/.libs/mailbox_update_notifier.o imap/.libs/mailbox_update_notifier.pb-c.o imap/.libs/imap_err.o imap/.libs/mupdate_err.o   -Wl,-rpath -Wl,/usr/src/cyrus-future-build/cyrus/lib/.libs -Wl,-rpath -Wl,/usr/cyrus-future/lib /usr/lib/libcom_err.a -luuid lib/.libs/libcyrus_min.so lib/.libs/libcyrus.so -lpcre -lpcreposix -lz    -Wl,-soname -Wl,libcyrus_imap.so.0 -o imap/.libs/libcyrus_imap.so.0.0.0
/usr/bin/ld.bfd.real: /usr/lib/libcom_err.a(error_message.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib/libcom_err.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [sieve/libcyrus_sieve.la] Error 1
make[3]: *** Waiting for unfinished jobs....


It's fine with my more recent Linux Mint 13 laptop, and with my Debian
Testing desktop at work.  All of which is lovely for development - I
don't mind requiring recent stuff to build raw from git - but I'm not
willing to accept a requirement to upgrade bits of operating systems
which are still under support from their vendor just to make our build
system work happily - that's real dog wagging.

So what am I doing wrong, or in the alternative what is the build system
doing wrong?

Bron.
-- 
  Bron Gondwana
  brong at fastmail.fm



More information about the Cyrus-devel mailing list