clamav-users December 2010 archive
Main Archive Page > Month Archives  > clamav-users archives
clamav-users: Re: [clamav-users] 0.96.5 compilation problem on S

Re: [clamav-users] 0.96.5 compilation problem on Solaris 10

From: Török Edwin <edwintorok_at_nospam>
Date: Wed Dec 08 2010 - 17:17:03 GMT
To: ClamAV users ML <clamav-users@lists.clamav.net>

On Wed, 8 Dec 2010 17:08:15 +0000
"Armitage, Jon" <Jon.Armitage@bskyb.com> wrote:

> > On Wed, 8 Dec 2010 15:43:23 +0000
> > "Armitage, Jon" <Jon.Armitage@bskyb.com> wrote:
> >
> > > I am trying to upgrade from 0.96.3 on a box running Solaris 10.
> > >
> > > I used this configure command, which worked with 0.96.3, and has
> > > worked with 0.96.5 on another Solaris 10 box:
> > >
> > > ./configure --with-user=exim --with-group=exim
> > > LDFLAGS=-L/usr/local/lib LIBS=-liconv
> > >
> > > The make fails with the following error:
> > >
> > > CCLD clamscan
> > > ../libclamav/.libs/libclamav.so: undefined reference to
> > > `pthread_key_create@SUNW_0.9' ../libclamav/.libs/libclamav.so:
> > > undefined reference to
> >
> > Looks like you are using broken version of binutils:
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26014
> >
> > What do these commands output, and is the output different between
> > the 2 machines:
> > $ nm -D /lib/libc.so | grep pthread_key_create
> > $ nm -D /lib/libpthread.so | grep pthread_key_create
> > $ find . -name '*.la' -exec egrep
> > dependency_libs=\|relink_command {} \;
> >
> > Best regards,
> > --Edwin
> >
> On the machine which does not work:
>
> -bash-3.00$ nm -D /lib/libc.so | grep pthread_key_create
> [2019] | 783792| 260|FUNC |WEAK |0 |9
> |_pthread_key_create [2809] | 783792| 260|FUNC |WEAK |0
> |9 |pthread_key_create -bash-3.00$ nm -D /lib/libpthread.so |
> grep pthread_key_create [3] | 0| 0|FUNC |GLOB |0
> |ABS |_pthread_key_create [184] | 0| 0|FUNC |GLOB
> |0 |ABS |pthread_key_create -bash-3.00$ find . -name '*.la'
> -exec egrep \|relink_command {} \;
> relink_command="(cd /export/home/jon/clamav-0.96.5/libclamav; /bin/bash /export/home/jon/clamav-0.96.5/libtool
> --silent --tag CC --mode=relink gcc -g -O2 -module -thread-safe
> -version-info 7:7:1 -no-undefined
> -Wl,--version-script,../libclamunrar_iface/libclamunrar_iface.map
> -L/usr/local/lib -o libclamunrar_iface.la -rpath /usr/local/lib
> unrar_iface.lo libclamunrar.la -liconv -lsocket @inst_prefix_dir@)"
>
> On the machine which does work:
>
> -bash-3.00$ nm -D /lib/libc.so | grep pthread_key_create
> [2839] | 819564| 264|FUNC |WEAK |0 |9
> |_pthread_key_create [221] | 819564| 264|FUNC |WEAK |0
> |9 |pthread_key_create -bash-3.00$ nm -D /lib/libpthread.so |
> grep pthread_key_create [3] | 0| 0|FUNC |GLOB |0
> |ABS |_pthread_key_create [184] | 0| 0|FUNC |GLOB
> |0 |ABS |pthread_key_create -bash-3.00$ find . -name '*.la'
> -exec egrep \|relink_command {} \;
> relink_command="(cd /export/home/jon/clamav-0.96.5/libclamav; /bin/bash /export/home/jon/clamav-0.96.5/libtool
> --silent --tag CC --mode=relink gcc -g -O2 -module -thread-safe
> -version-info 7:7:1 -no-undefined
> -Wl,-M,../libclamunrar_iface/libclamunrar_iface.map -L/usr/local/lib
> -o libclamunrar_iface.la -rpath /usr/local/lib unrar_iface.lo
> libclamunrar.la -lnsl -liconv -lgmp -lbz2 -lsocket @inst_prefix_dir@)"

Well you're missing a bunch of these on the machine that doesn't work
(no -lnsl, and -lbz2 there). Also -lgmp is something you must have
added on your own, since ClamAV no longer uses GMP.

Check the environment vars and configure invocation (CFLAGS, LIBS,
LDFLAGS, etc.) on both machines, and make sure they match.
Also check tool versions (gcc, ld, etc.).

Best regards,
--Edwin
_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml