Dronga
27.02.2007, 17:58
С выходом последней версии ClamAv у огромного числа людей возникли проблемы, особенно у тех кто использует на серверах FreeBSD <6.0. На более поздних версиях проблема не наблюдается. Собственно, лог:
#make
....
[cutted]
....
/bin/sh /usr/local/bin/libtool --tag=CC --mode=link cc -O -pipe -mcpu=pentiumpro -L/usr/local/lib -pthread -o libclamav.la -rpath /usr/local/lib -thread-safe -version-info 1:40:0 -no-undefined matcher-ac.lo matcher-bm.lo matcher-ncore.lo matcher.lo md5.lo others.lo readdb.lo cvd.lo dsig.lo str.lo scanners.lo filetypes.lo rtf.lo blob.lo mbox.lo message.lo snprintf.lo table.lo text.lo ole2_extract.lo vba_extract.lo msexpand.lo pe.lo upx.lo htmlnorm.lo chmunpack.lo rebuildpe.lo petite.lo wwunpack.lo suecrypt.lo unsp.lo packlibs.lo fsg.lo mew.lo upack.lo line.lo untar.lo unzip.lo special.lo binhex.lo is_tar.lo tnef.lo unrar15.lo unrarvm.lo unrar.lo unrarfilter.lo unrarppm.lo unrar20.lo unrarcmd.lo pdf.lo spin.lo yc.lo elf.lo sis.lo uuencode.lo phishcheck.lo phish_domaincheck_db.lo phish_whitelist.lo regex_list.lo sha256.lo mspack.lo cab.lo entconv.lo hashtab.lo dconf.lo lockdb.lo -liconv -lz -lbz2 -lgmp -L/usr/local/lib -lcurl -rpath=/usr/lib:/usr/local/lib -lssl -lcrypto -lz -lpthread -lc_r
cc -shared .libs/matcher-ac.o .libs/matcher-bm.o .libs/matcher-ncore.o .libs/matcher.o .libs/md5.o .libs/others.o .libs/readdb.o .libs/cvd.o .libs/dsig.o .libs/str.o .libs/scanners.o .libs/filetypes.o .libs/rtf.o .libs/blob.o .libs/mbox.o .libs/message.o .libs/snprintf.o .libs/table.o .libs/text.o .libs/ole2_extract.o .libs/vba_extract.o .libs/msexpand.o .libs/pe.o .libs/upx.o .libs/htmlnorm.o .libs/chmunpack.o .libs/rebuildpe.o .libs/petite.o .libs/wwunpack.o .libs/suecrypt.o .libs/unsp.o .libs/packlibs.o .libs/fsg.o .libs/mew.o .libs/upack.o .libs/line.o .libs/untar.o .libs/unzip.o .libs/special.o .libs/binhex.o .libs/is_tar.o .libs/tnef.o .libs/unrar15.o .libs/unrarvm.o .libs/unrar.o .libs/unrarfilter.o .libs/unrarppm.o .libs/unrar20.o .libs/unrarcmd.o .libs/pdf.o .libs/spin.o .libs/yc.o .libs/elf.o .libs/sis.o .libs/uuencode.o .libs/phishcheck.o .libs/phish_domaincheck_db.o .libs/phish_whitelist.o .libs/regex_list.o .libs/sha256.o .libs/mspack.o .libs/cab.o .libs/entconv.o .libs/hashtab.o .libs/dconf.o .libs/lockdb.o -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib -L/usr/local/lib -pthread -liconv -lbz2 /usr/local/lib/libgmp.so /usr/local/lib/libcurl.so -lssl -lcrypto -lz -lpthread -mcpu=pentiumpro -pthread -pthread -pthread -Wl,-soname -Wl,libclamav.so.1 -o .libs/libclamav.so.1
/usr/bin/ld: cannot find -lpthread
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90/libclamav.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav.
Поиски решения привели на страничку https://wwws.clamav.net/bugzilla/show_bug.cgi?id=314, собственно всё сводится к замене lpthread на pthread.
Перехожу в /usr/ports/security/clamav/work/clamav-0.90, правим configure и здесь же делаю configure&make. Всё проходит благополучно, следом:
# make install
===> Building for clamav-0.90_2
make all-recursive
Making all in libclamav
Making all in clamscan
/usr/local/bin/bash /usr/local/bin/libtool --tag=CC --mode=link gcc -g -O2 -o clamscan output.o getopt.o memory.o cfgparser.o misc.o options.o clamscan.o others.o manager.o treewalk.o ../libclamav/libclamav.la -pthread -lc_r
gcc -g -O2 -o .libs/clamscan output.o getopt.o memory.o cfgparser.o misc.o options.o clamscan.o others.o manager.o treewalk.o -pthread ../libclamav/.libs/libclamav.so -lbz2 -L/usr/local/lib /usr/local/lib/libcurl.so -lssl -lcrypto -lz -pthread -Wl,--rpath -Wl,/usr/local/lib
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_clear'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_mul_2exp'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_set_ui'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_powm'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_init'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_tdiv_qr_ui'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_add'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_init_set_str'
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90/clamscan.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav.
Что делать?? Как победить??
#make
....
[cutted]
....
/bin/sh /usr/local/bin/libtool --tag=CC --mode=link cc -O -pipe -mcpu=pentiumpro -L/usr/local/lib -pthread -o libclamav.la -rpath /usr/local/lib -thread-safe -version-info 1:40:0 -no-undefined matcher-ac.lo matcher-bm.lo matcher-ncore.lo matcher.lo md5.lo others.lo readdb.lo cvd.lo dsig.lo str.lo scanners.lo filetypes.lo rtf.lo blob.lo mbox.lo message.lo snprintf.lo table.lo text.lo ole2_extract.lo vba_extract.lo msexpand.lo pe.lo upx.lo htmlnorm.lo chmunpack.lo rebuildpe.lo petite.lo wwunpack.lo suecrypt.lo unsp.lo packlibs.lo fsg.lo mew.lo upack.lo line.lo untar.lo unzip.lo special.lo binhex.lo is_tar.lo tnef.lo unrar15.lo unrarvm.lo unrar.lo unrarfilter.lo unrarppm.lo unrar20.lo unrarcmd.lo pdf.lo spin.lo yc.lo elf.lo sis.lo uuencode.lo phishcheck.lo phish_domaincheck_db.lo phish_whitelist.lo regex_list.lo sha256.lo mspack.lo cab.lo entconv.lo hashtab.lo dconf.lo lockdb.lo -liconv -lz -lbz2 -lgmp -L/usr/local/lib -lcurl -rpath=/usr/lib:/usr/local/lib -lssl -lcrypto -lz -lpthread -lc_r
cc -shared .libs/matcher-ac.o .libs/matcher-bm.o .libs/matcher-ncore.o .libs/matcher.o .libs/md5.o .libs/others.o .libs/readdb.o .libs/cvd.o .libs/dsig.o .libs/str.o .libs/scanners.o .libs/filetypes.o .libs/rtf.o .libs/blob.o .libs/mbox.o .libs/message.o .libs/snprintf.o .libs/table.o .libs/text.o .libs/ole2_extract.o .libs/vba_extract.o .libs/msexpand.o .libs/pe.o .libs/upx.o .libs/htmlnorm.o .libs/chmunpack.o .libs/rebuildpe.o .libs/petite.o .libs/wwunpack.o .libs/suecrypt.o .libs/unsp.o .libs/packlibs.o .libs/fsg.o .libs/mew.o .libs/upack.o .libs/line.o .libs/untar.o .libs/unzip.o .libs/special.o .libs/binhex.o .libs/is_tar.o .libs/tnef.o .libs/unrar15.o .libs/unrarvm.o .libs/unrar.o .libs/unrarfilter.o .libs/unrarppm.o .libs/unrar20.o .libs/unrarcmd.o .libs/pdf.o .libs/spin.o .libs/yc.o .libs/elf.o .libs/sis.o .libs/uuencode.o .libs/phishcheck.o .libs/phish_domaincheck_db.o .libs/phish_whitelist.o .libs/regex_list.o .libs/sha256.o .libs/mspack.o .libs/cab.o .libs/entconv.o .libs/hashtab.o .libs/dconf.o .libs/lockdb.o -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib -L/usr/local/lib -pthread -liconv -lbz2 /usr/local/lib/libgmp.so /usr/local/lib/libcurl.so -lssl -lcrypto -lz -lpthread -mcpu=pentiumpro -pthread -pthread -pthread -Wl,-soname -Wl,libclamav.so.1 -o .libs/libclamav.so.1
/usr/bin/ld: cannot find -lpthread
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90/libclamav.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav.
Поиски решения привели на страничку https://wwws.clamav.net/bugzilla/show_bug.cgi?id=314, собственно всё сводится к замене lpthread на pthread.
Перехожу в /usr/ports/security/clamav/work/clamav-0.90, правим configure и здесь же делаю configure&make. Всё проходит благополучно, следом:
# make install
===> Building for clamav-0.90_2
make all-recursive
Making all in libclamav
Making all in clamscan
/usr/local/bin/bash /usr/local/bin/libtool --tag=CC --mode=link gcc -g -O2 -o clamscan output.o getopt.o memory.o cfgparser.o misc.o options.o clamscan.o others.o manager.o treewalk.o ../libclamav/libclamav.la -pthread -lc_r
gcc -g -O2 -o .libs/clamscan output.o getopt.o memory.o cfgparser.o misc.o options.o clamscan.o others.o manager.o treewalk.o -pthread ../libclamav/.libs/libclamav.so -lbz2 -L/usr/local/lib /usr/local/lib/libcurl.so -lssl -lcrypto -lz -pthread -Wl,--rpath -Wl,/usr/local/lib
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_clear'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_mul_2exp'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_set_ui'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_powm'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_init'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_tdiv_qr_ui'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_add'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_init_set_str'
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90/clamscan.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1
Stop in /usr/ports/security/clamav.
Что делать?? Как победить??