Still problems with GPGME with multithread
Marcus Brinkmann
Marcus.Brinkmann@ruhr-uni-bochum.de
Wed Apr 2 20:07:02 2003
On Wed, Apr 02, 2003 at 07:34:32PM +0200, Albrecht Dreß wrote:
> Am 02.04.03 15:31 schrieb(en) Marcus Brinkmann:
> >I am not sure how you use libtool, but it seems you are using -lgpgme.la.
>
> Nope. I build the list of libs (which is then fed into libtool) using the
> command
>
> BALSA_LIBS="$BALSA_LIBS `gpgme-config --libs`"
So libtool is reordering libs it doesn't know anything about? How evil.
> >For a workaround, try without that and link to -lgpgme direcly, or even
> >"-lpthread -lgpgme", so it doesn't consider the la script and maybe that
> >helps to avoid the reordering. As gpgme itself does not depend on other
>
> Nope again. I tried the replace the command above with exactly this.
> libtool gets the right sorting but still decides that libpthread must come
> much later than libgpgme.
You could try to frob it that -lpthread -lgpgme ends up in the libtool
command _quoted_: "-lpthread -lgpgme". Not sure how to get the quotes
intact through all the layers of autoconf and automake, though.
> >I will consider the alternatives (fixing libtool or gpgme).
>
> Either it's possible to *force* libtool linking a specific library before
> an other one, or gpgme is simply not compatible with libtool (and, in
> turn, with any software using it). Or say that libtool is crap...
I vowed an oath to protect libtool against disapproval :)
You can of course force libtool to link with pthread before gpgme. But I
don't think you can do that optionally (ie, only if pthread is added to the
command line). I am not sure, though. YOu might try with
# Libraries that this one depends upon.
dependency_libs=''
in libgpgme.la, if it even looks at that file in your configuration.
I guess I have to investigate this more.
> IMHO, it's always nice to have some means for debugging...
There are plenty of means to debug such situations I can think of,
and none involves adding interfaces to gpgme :) If you need help, I sugges
LD_DEBUG=help, gdb, and even ltrace.
> >I don't really want to link at run time, there is no need for that here.
>
> ... as long as you don't use libtool ;-))
I realize there is a problem. I will find a fix one way or another. :)
Thanks,
Marcus
--
`Rhubarb is no Egyptian god.' GNU http://www.gnu.org marcus@gnu.org
Marcus Brinkmann The Hurd http://www.gnu.org/software/hurd/
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de/