rieck / malheur

A Tool for Automatic Analysis of Malware Behavior

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Missing -lm in LDFLAGS

p-col opened this issue · comments

When compiling malheur on my Ubuntu 15.04, I have the following issue:

gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -MT mconfig.o -MD -MP -MF .deps/mconfig.Tpo -c -o mconfig.o mconfig.c
mv -f .deps/export.Tpo .deps/export.Po
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -MT cluster.o -MD -MP -MF .deps/cluster.Tpo -c -o cluster.o cluster.c
mv -f .deps/fmath.Tpo .deps/fmath.Po
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -MT quality.o -MD -MP -MF .deps/quality.Tpo -c -o quality.o quality.c
mv -f .deps/mconfig.Tpo .deps/mconfig.Po
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -MT class.o -MD -MP -MF .deps/class.Tpo -c -o class.o class.c
mv -f .deps/class.Tpo .deps/class.Po
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -MT murmur.o -MD -MP -MF .deps/murmur.Tpo -c -o murmur.o murmur.c
mv -f .deps/farray.Tpo .deps/farray.Po
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -MT malheur.o -MD -MP -MF .deps/malheur.Tpo -c -o malheur.o malheur.c
mv -f .deps/murmur.Tpo .deps/murmur.Po
mv -f .deps/quality.Tpo .deps/quality.Po
mv -f .deps/cluster.Tpo .deps/cluster.Po
rm -f libmalheur.a
ar cru libmalheur.a md5.o util.o fvec.o ftable.o mist.o fmath.o export.o farray.o proto.o mconfig.o cluster.o quality.o class.o murmur.o
ranlib libmalheur.a
mv -f .deps/malheur.Tpo .deps/malheur.Po
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -static -o malheur md5.o util.o fvec.o ftable.o mist.o fmath.o export.o farray.o proto.o mconfig.o cluster.o quality.o class.o murmur.o malheur.o -lz -lconfig
libtool: link: gcc -g -O2 -DNDEBUG -std=c99 -fgnu89-inline -Wall -fPIC -fopenmp -o malheur md5.o util.o fvec.o ftable.o mist.o fmath.o export.o farray.o proto.o mconfig.o cluster.o quality.o class.o murmur.o malheur.o -lz -lconfig -fopenmp
util.o: In function prog_bar': /tmp/malheur/src/util.c:165: undefined reference tofloor'
/tmp/malheur/src/util.c:165: undefined reference to floor' /tmp/malheur/src/util.c:170: undefined reference toround'
/tmp/malheur/src/util.c:176: undefined reference to floor' /tmp/malheur/src/util.c:176: undefined reference tofloor'
fmath.o: In function fvec_dot': /tmp/malheur/src/fmath.c:299: undefined reference tolog2'
/tmp/malheur/src/fmath.c:299: undefined reference to ceil' fmath.o: In functionfvec_dist':
/tmp/malheur/src/fmath.c:271: undefined reference to sqrt' fmath.o: In functionfvec_norm2':
/tmp/malheur/src/fmath.c:489: undefined reference to sqrt' mconfig.o: In functionconfig_default':
/tmp/malheur/src/mconfig.c:197: undefined reference to lround' cluster.o: In functioncluster_murtagh._omp_fn.1':
/tmp/malheur/src/cluster.c:113: undefined reference to fmin' /tmp/malheur/src/cluster.c:122: undefined reference tofmax'
collect2: error: ld returned 1 exit status
Makefile:419: recipe for target 'malheur' failed
make[3]: *** [malheur] Error 1
make[3]: Leaving directory '/tmp/malheur/src'
Makefile:326: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/tmp/malheur/src'
Makefile:395: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/malheur'
Makefile:326: recipe for target 'all' failed
make: *** [all] Error 2

I think the -lm flags for linking is missing somewhere.
By adding it to LDFLAGS directly into the Makefile I can solve this issue.

Thank you

Pierre

Thanks a lot for testing the new code!