On May 5, 2008, at 3:17 AM, Sisyphus wrote:


----- Original Message ----- From: "Edward Peschko" <[EMAIL PROTECTED]>
.
.
Can't load

_Inline/lib/auto/aab_p_6230/aab_p_6230.so' for module aab_p_6230:
lib/libipworksssl.so.6: Undefined symbol "pthread_mutex_lock" at


If you reckon that you won't actually need the genuine pthread_mutex_lock, you could just code one up yourself and put it (eg) at the beginning of your C/C++ code:

void pthread_mutex_lock() {}

I've had success resolving undefined symbols using hacks like that in the past (though I've not actually tried it with Inline).

Other than that, I guess you'll have to find the library that defines the symbol "pthread_mutex_lock" and specifically link that library in.

That library would be libpthread. The issue with defining a bogus mutex lock is that eventually you'll hit that concurrent access that corrupts your memory and causes very weird action at a distance issues. I recommend linking with -lpthread and sparing yourself the headache :) These days on linux the pthread library is frequently in / lib/. You can inspect the symbols via "nm /lib/libpthread.so.<version>".

That being said, I would have expected the -pthread or -pthreads option in gcc to take care of that for you. What version of gcc and OS are you using?

For what it's worth, I wrote a simple CORBA client library that used threads internally and created C wrappers for embedding it into perl. It worked out fine, but I did have to link to the appropriate threading library to get it working.


--
J.
Another hour, another mile, one more year
Your older self may whisper in your ear
The effort is illusion
But later hold you in their arms with the gratitude
Of a person who lived without regret.

Attachment: PGP.sig
Description: This is a digitally signed message part

Reply via email to