On 01/27/2010 12:48 PM, Renato Botelho wrote:
> 2010/1/26 Török Edwin <edwinto...@gmail.com>:
>   
>> On 12/22/2009 02:39 PM, Renato Botelho wrote:
>>     
>>> 2009/12/22 Török Edwin <edwinto...@gmail.com>:
>>>
>>>       
>>>> Yes, I opened a bug about that now:
>>>> https://wwws.clamav.net/bugzilla/show_bug.cgi?id=1781
>>>>
>>>> For now the workaround for the user is to set the CPU for the build to
>>>> at least i486.
>>>>
>>>>         
>>> OK, i'll mark clamav-devel port as BROKEN on FreeBSD i386 for now.
>>>       
>> Hi Renato,
>>
>> I have added the mutex workaround when building on i386, sorry for
>> taking so long to fix.
>> Also removed the Perl dependency from LLVM's configure, which would be
>> needed only if we'd use LLVM's buildsystem.
>> We don't use that, I've written a Makefile.am for LLVM.
>>
>> ClamAV should now build again on i386/FreeBSD, please test and report if
>> you still have any build problems.
>>
>> The fix is in the git master repository (if you use git). If you are
>> using a snapshot, then it will be in tomorrow's snapshot.
>>     
>
> I had started the tests, but i was thinking something, i think we just have
> a "name" problem here, FreeBSD call 32-bit arch as i386, but it doesn't
> mean that is i386, looking at FreeBSD kernel config file we have 3
> possibilities of CPU:
>
> cpu             I486_CPU
> cpu             I586_CPU
> cpu             I686_CPU
>
> As you can see, it's not really i386, so, i think we can build llvm thread 
> safe.
>   

Would this solve it in your ports makefile (or is it too late to override?):
CPUTYPE?=i586

That way the user can still set the CPUTYPE explicitly in /etc/make.conf
to something better,
and we'd get a good default (i586 instead of i386).
LLVM JIT generates code for pentium and above only, so if you really run
it on a i386/i486 ClamAV won't
use LLVM's JIT (but fallback to an interpreter).

Please add back this code to libclamav/c++/bytecode2llvm.cpp while
testing if CPUTYPE override works:
#if !defined(LLVM_MULTITHREADED) || !LLVM_MULTITHREADED
#error "Multithreading not available for llvm?"
#endif

> What do you think about it?
>   

I think the problem is how FreeBSD's gcc is built.
If gcc is built with i386-* triple, it will generate i386 code by
default. Debian's is built as i486-linux-gnu.
Anyway I don't think we can do anything about how gcc is built for old
versions of FreeBSD.

Best regards,
--Edwin
_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net

Reply via email to