Mailing List Archive

Error building clamav 0.97.1 with external llvm 2.9
Hello,

I can build 20110704 snapshot with external llvm-2.9 on FreeBSD
8.2 without problems, but on 0.97.1 i got the following error:

gmake[3]: Leaving directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libltdl'
gmake[2]: Leaving directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libltdl'
Making all in libclamav
gmake[2]: Entering directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav'
gmake all-recursive
gmake[3]: Entering directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav'
Making all in c++
gmake[4]: Entering directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav/c++'
gmake all-am
gmake[5]: Entering directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav/c++'
CXX libclamavcxx_la-bytecode2llvm.lo
/bin/sh ./libtool --silent --tag=CXX --mode=compile c++
-DHAVE_CONFIG_H -I. -I./../.. -I./.. -I./../../ -I/usr/local/include
-I./../.. -I./.. -I./../../ -I/usr/local/include -DNDEBUG
-D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2
-fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual
-fexceptions -DLLVM28 -DLLVM29 -O2 -pipe -march=i486
-fno-strict-aliasing -c -o libclamavcxx_la-bytecode2llvm.lo `test -f
'bytecode2llvm.cpp' || echo './'`bytecode2llvm.cpp
CXX libclamavcxx_la-ClamBCRTChecks.lo
/bin/sh ./libtool --silent --tag=CXX --mode=compile c++
-DHAVE_CONFIG_H -I. -I./../.. -I./.. -I./../../ -I/usr/local/include
-I./../.. -I./.. -I./../../ -I/usr/local/include -DNDEBUG
-D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2
-fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual
-fexceptions -DLLVM28 -DLLVM29 -O2 -pipe -march=i486
-fno-strict-aliasing -c -o libclamavcxx_la-ClamBCRTChecks.lo `test -f
'ClamBCRTChecks.cpp' || echo './'`ClamBCRTChecks.cpp
ClamBCRTChecks.cpp:37:29: error: PointerTracking.h: No such file or directory
ClamBCRTChecks.cpp:264: error: ISO C++ forbids declaration of
'PointerTracking' with no type
ClamBCRTChecks.cpp:264: error: expected ';' before '*' token
ClamBCRTChecks.cpp: In member function 'virtual
bool<unnamed>::PtrVerifier::runOnFunction(llvm::Function&)':
ClamBCRTChecks.cpp:130: error: 'PT' was not declared in this scope
ClamBCRTChecks.cpp:130: error: 'PointerTracking' was not declared in this scope
ClamBCRTChecks.cpp:130: error: no matching function for call to
'<unnamed>::PtrVerifier::getAnalysis()'
ClamBCRTChecks.cpp: In member function 'virtual
void<unnamed>::PtrVerifier::getAnalysisUsage(llvm::AnalysisUsage&)
const':
ClamBCRTChecks.cpp:258: error: 'PointerTracking' was not declared in this scope
ClamBCRTChecks.cpp:258: error: no matching function for call to
'llvm::AnalysisUsage::addRequired()'
ClamBCRTChecks.cpp: In member function
'llvm::Value*<unnamed>::PtrVerifier::getPointerBounds(llvm::Value*)':
ClamBCRTChecks.cpp:400: error: 'PT' was not declared in this scope
gmake[5]: *** [libclamavcxx_la-ClamBCRTChecks.lo] Error 1
gmake[5]: Leaving directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav/c++'
gmake[4]: *** [all] Error 2
gmake[4]: Leaving directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav/c++'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory
`/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/work/a/ports/security/clamav/work/clamav-0.97.1'
gmake: *** [all] Error 2
*** Error code 1

Stop in /a/ports/security/clamav.
================================================================
build of /usr/ports/security/clamav ended at Tue Jul 5 00:22:42 UTC 2011

I tried to build both in the same environment with same parameters
and same llvm installed.

I took a look at clamav's git trying to find out which commit had fixed
this but couldn't find it. Can you point me the commit that fixed this
issue and i can add the patch to FreeBSD ports collection.

Regards
--
Renato Botelho
_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net
Re: Error building clamav 0.97.1 with external llvm 2.9 [ In reply to ]
On 07/05/2011 03:32 AM, Renato Botelho wrote:
> Hello,
>
> I can build 20110704 snapshot with external llvm-2.9 on FreeBSD
> 8.2 without problems, but on 0.97.1 i got the following error:
>
> gmake[3]: Leaving directory
> `/work/a/ports/security/clamav/work/clamav-0.97.1/libltdl'
> gmake[2]: Leaving directory
> `/work/a/ports/security/clamav/work/clamav-0.97.1/libltdl'
> Making all in libclamav
> gmake[2]: Entering directory
> `/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav'
> gmake all-recursive
> gmake[3]: Entering directory
> `/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav'
> Making all in c++
> gmake[4]: Entering directory
> `/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav/c++'
> gmake all-am
> gmake[5]: Entering directory
> `/work/a/ports/security/clamav/work/clamav-0.97.1/libclamav/c++'
> CXX libclamavcxx_la-bytecode2llvm.lo
> /bin/sh ./libtool --silent --tag=CXX --mode=compile c++
> -DHAVE_CONFIG_H -I. -I./../.. -I./.. -I./../../ -I/usr/local/include
> -I./../.. -I./.. -I./../../ -I/usr/local/include -DNDEBUG
> -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2
> -fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual
> -fexceptions -DLLVM28 -DLLVM29 -O2 -pipe -march=i486
> -fno-strict-aliasing -c -o libclamavcxx_la-bytecode2llvm.lo `test -f
> 'bytecode2llvm.cpp' || echo './'`bytecode2llvm.cpp
> CXX libclamavcxx_la-ClamBCRTChecks.lo
> /bin/sh ./libtool --silent --tag=CXX --mode=compile c++
> -DHAVE_CONFIG_H -I. -I./../.. -I./.. -I./../../ -I/usr/local/include
> -I./../.. -I./.. -I./../../ -I/usr/local/include -DNDEBUG
> -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2
> -fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual
> -fexceptions -DLLVM28 -DLLVM29 -O2 -pipe -march=i486
> -fno-strict-aliasing -c -o libclamavcxx_la-ClamBCRTChecks.lo `test -f
> 'ClamBCRTChecks.cpp' || echo './'`ClamBCRTChecks.cpp
> ClamBCRTChecks.cpp:37:29: error: PointerTracking.h: No such file or directory

The file is in git in two places, but only one was in Makefile.am, and 'make dist' only included one of them, not both.
When building with internal LLVM it uses llvm/include/llvm/Analysis/PointerTracking.h, which is included in the tarball,
with external LLVM it simply wants to use PointerTracking.h, which was not.
I fixed the makefile on master, so that on next release we don't make this mistake again.

Here is the PointerTracking.h file that you can add to the ports collection:
http://git.clamav.net/gitweb?p=clamav-devel.git;a=blob_plain;f=libclamav/c%2B%2B/PointerTracking.h;hb=ba1dc7ffcbbec724f61ba9ec5c3da7df25a8bc0b
It has to go in libclamav/c++/PointerTracking.h

Best regards,
--Edwin
_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net
Re: Error building clamav 0.97.1 with external llvm 2.9 [ In reply to ]
2011/7/5 Török Edwin <edwin@clamav.net>:
>
> The file is in git in two places, but only one was in Makefile.am, and 'make dist' only included one of them, not both.
> When building with internal LLVM it uses llvm/include/llvm/Analysis/PointerTracking.h, which is included in the tarball,
> with external LLVM it simply wants to use PointerTracking.h, which was not.
> I fixed the makefile on master, so that on next release we don't make this mistake again.
>
> Here is the PointerTracking.h file that you can add to the ports collection:
> http://git.clamav.net/gitweb?p=clamav-devel.git;a=blob_plain;f=libclamav/c%2B%2B/PointerTracking.h;hb=ba1dc7ffcbbec724f61ba9ec5c3da7df25a8bc0b
> It has to go in libclamav/c++/PointerTracking.h

Thanks Török, it worked fine, i'll commit it tonight.

--
Renato Botelho
_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net