discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Cannot compile Volk


From: Josh Blum
Subject: Re: [Discuss-gnuradio] Cannot compile Volk
Date: Mon, 16 Jul 2012 11:15:55 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1

Alright, i have kind of a fix. Here is the diff:
http://pastebin.com/fv4tRfEF

Basically, it looks like you cant MMX on win64. So I added mmx as an
optional parameter to the 3 machine definitions that get used on
windows. When on MSVC 64bit, the mmx arch will get overruled.

On the kernel side, I added LV_HAVE_MMX to the dot prod kernel. Since
this kernel requires MMX, in this case the build system will prevent its
building when MMX is not available (aka mmx is overruled):

-josh

On 07/16/2012 10:42 AM, Josh Blum wrote:
> The problem is that volk_16i_32fc_dot_prod_32fc_a_sse is using MMX
> instructions which it seems that you cant do in 64 bit windows
> 
> These should probably be replaced with SSE equivalent functions
> m0 = _mm_set_pi16(*(aPtr+3), *(aPtr+2), *(aPtr+1), *(aPtr+0));
> m1 = _mm_set_pi16(*(aPtr+7), *(aPtr+6), *(aPtr+5), *(aPtr+4));
> 
> -josh
> 
> On 07/16/2012 10:30 AM, Josh Blum wrote:
>>
>>
>> On 07/16/2012 06:45 AM, Pol Henarejos wrote:
>>> Dear list,
>>>
>>> I am trying to compile gnuradio using MSVC2010 but I cannot compile
>>> Volk. I tried with next and master branches but no luck. Nevertheless,
>>> if I use maint branch it works correctly. I am compiling the code for
>>> x64 target. Please find the output of compiler. It is in spanish but it
>>> means "unresolved external symbol xxx".
>>>
>>
>> Hmm... looks like a win64 problem. this post seem to have the same
>> issue: http://software.intel.com/en-us/forums/showthread.php?t=62824
>>
>> It seems to suggest there is a matter of including headers in the
>> correct order. I will get back to this thread if I figure it out!
>>
>> -josh
>>
>>> Thanks for your help.
>>>
>>>
>>> 2>volk_machine_sse2.obj : error LNK2019: símbolo externo _m_punpcklwd
>>> sin resolver al que se hace referencia en la función _mm_cvtpi16_ps
>>> 2>volk_machine_avx.obj : error LNK2001: símbolo externo _m_punpcklwd sin
>>> resolver
>>> 2>volk_machine_sse2.obj : error LNK2019: símbolo externo _mm_cvt_pi2ps
>>> sin resolver al que se hace referencia en la función _mm_cvtpi16_ps
>>> 2>volk_machine_avx.obj : error LNK2001: símbolo externo _mm_cvt_pi2ps
>>> sin resolver
>>> 2>volk_machine_sse2.obj : error LNK2019: símbolo externo _m_punpckhwd
>>> sin resolver al que se hace referencia en la función _mm_cvtpi16_ps
>>> 2>volk_machine_avx.obj : error LNK2001: símbolo externo _m_punpckhwd sin
>>> resolver
>>> 2>volk_machine_sse2.obj : error LNK2019: símbolo externo _m_pcmpgtw sin
>>> resolver al que se hace referencia en la función _mm_cvtpi16_ps
>>> 2>volk_machine_avx.obj : error LNK2001: símbolo externo _m_pcmpgtw sin
>>> resolver
>>> 2>volk_machine_sse2.obj : error LNK2019: símbolo externo
>>> _mm_setzero_si64 sin resolver al que se hace referencia en la función
>>> _mm_cvtpi16_ps
>>> 2>volk_machine_avx.obj : error LNK2001: símbolo externo _mm_setzero_si64
>>> sin resolver
>>> 2>volk_machine_sse2.obj : error LNK2019: símbolo externo _mm_set_pi16
>>> sin resolver al que se hace referencia en la función "void __cdecl
>>> volk_16i_32fc_dot_prod_32fc_a_sse(class std::complex<float> *,short
>>> const *,class std::complex<float> const *,unsigned int)"
>>> (?volk_16i_32fc_dot_prod_32fc_a_sse@@address@hidden@std@@address@hidden@Z)
>>> 2>volk_machine_avx.obj : error LNK2001: símbolo externo _mm_set_pi16 sin
>>> resolver
>>>
>>>
>>>
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]