Jacob Meuser wrote:
On Mon, Feb 16, 2009 at 09:06:25AM -0800, patrick keshishian wrote:
man cc
/-pthread
nn

       -pthreads
           Add support for multithreading using the POSIX threads
           library.  This option sets flags for both the
           preprocessor and linker.  This option does not affect
           the thread safety of object code produced  by the
           compiler or that of libraries supplied with it.


that doesn't answer the questions.

On Mon, Feb 16, 2009 at 5:32 AM, cnav <[email protected]> wrote:
Hi,

I just applied following patch:
http://cnav.pl/clamav-configure.patch

to clamav sources. And after that libclamav seems to work with pthreads.
ldd /usr/local/lib/libclamav.so.5.4
/usr/local/lib/libclamav.so.5.4:
       Start    End      Type Open Ref GrpRef Name
       084ef000 28522000 dlib 1    0   0 /usr/local/lib/libclamav.so.5.4
       0d4b9000 2d4bd000 rlib 0    1   0
/usr/local/lib/libclamunrar_iface.so.5.4
       010a0000 210a5000 rlib 0    2   0 /usr/local/lib/libclamunrar.so.5.4
       06d89000 26d8d000 rlib 0    1   0 /usr/local/lib/libbz2.so.10.4
       091a8000 291af000 rlib 0    1   0      /usr/local/lib/libgmp.so.7.1
       0a04b000 2a12a000 rlib 0    1   0 /usr/local/lib/libiconv.so.5.0
       02484000 2248d000 rlib 0    1   0      /usr/lib/libpthread.so.11.0
       05a7c000 25a84000 rlib 0    3   0      /usr/lib/libz.so.4.1

Manuals says to use -pthread.
http://www.openbsd.org/cgi-bin/man.cgi?query=pthreads&sektion=3

My question are:
What is the difference between those two libs ?
And why with -lpthread it's working and without not?

-pthread won't link libpthread into shared objects, while -lpthread
will.  use -pthread when linking the executables that will load
libclamav.

Thanks,

The only one reason why i did it, is that i want to use perl module mail-clamav witch is depending pthreads libraries.

When i am compiling libclamav with -pthread instead of -lpthread:
The following error exists:

Mail-ClamAV-0.22# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/Mail-ClamAV..../usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_create' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_getspecific' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_key_delete' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_once' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_key_create' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_mutex_unlock' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_mutex_lock' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_join' /usr/bin/perl:/usr/local/lib/libclamav.so.5.4: undefined symbol 'pthread_setspecific'

I am aware that you maybe not familiar with mail-clamav, but libclamav at least should work fine with pthreads (-pthread) correctly ?

Please, if any of you can help me understand it, it will be much helpful. (Or at least can you give me some directions where to search to.)

Thanks,
 Mariusz Makowski

Reply via email to