Gnuradio volk compilation error: error: ‘ mm popcnt u64’ was not declared in this scope

Hi all,

I started a fresh build from the branch next of gnuradio (revision
1047775464c1bb8a86e727487551e2b14abd476e).

Compilation currently fails within volk:

In file included from qa_64u_popcnt_aligned16.cc:4:
…/include/volk/volk_64u_popcnt_aligned16.h: In function void
volk_64u_popcnt_aligned16_sse4_2(uint64_t*, uint64_t):
…/include/volk/volk_64u_popcnt_aligned16.h:45: error: _mm_popcnt_u64
was not declared in this scope

I’ve tried including directly smmintrin.h in volk_64u_popcnt_aligned16.h
but that did not work either.

My machine is using Ubuntu 10.04 LTS (32 bits version), gcc 4.4.3,
autoconf 2.65.

CPU is an Intel quadcore i7 930.

Ruben

On Thu, Dec 16, 2010 at 6:28 PM, Ruben Merz
[email protected] wrote:

volk_64u_popcnt_aligned16_sse4_2(uint64_t*, uint64_t):

Ruben

I have the same processor at home running on 10.04 64-bit. We’ve had
issues with running 32-bit OSes on 64-bit processors. I thought these
were worked out, but there must be another issue.

Try configuring volk with "configure --with-lv_arch=“generic 64 mmx
sse sse2 sse3 ssse3 sse4_a sse4_1 sse4_2” or whatever simd flavors you
want to support. Let me know if that works.

I also need to put the --with-lv_arch as a configuration option in the
gnu radio configure.

Thanks,
Tom

Hi Tom

Thanks. Using configure --with-lv_arch=“generic mmx sse sse2 sse3 ssse3
sse4_a sse4_1” i.e. removing 64 and sse4_2 worked.

Ruben

On 12/17/10 3:08 AM, Tom R. wrote:

configure --with-lv_arch="generic 64 mmx
sse sse2 sse3 ssse3 sse4_a sse4_1 sse4_2


Ruben Merz Deutsche Telekom Laboratories
http://www.net.t-labs.tu-berlin.de/people/ruben_merz.shtml

On Fri, Dec 17, 2010 at 4:11 AM, Ruben Merz
[email protected] wrote:

Hi Tom

Thanks. Using configure --with-lv_arch=“generic mmx sse sse2 sse3 ssse3
sse4_a sse4_1” i.e. removing 64 and sse4_2 worked.

Ruben

Oh, yeah, of course. Long day; forgot which arch we were talking about.

Thanks again for the info.

Tom

Hi Tom,

Thanks. It works

Ruben

On Fri, Dec 17, 2010 at 3:11 AM, Ruben Merz
[email protected] wrote:

Hi Tom

Thanks. Using configure --with-lv_arch=“generic mmx sse sse2 sse3 ssse3
sse4_a sse4_1” i.e. removing 64 and sse4_2 worked.

Ruben

Ok, I pushed an update to next that should fix your problem. Try to
configure now without passing any --with-lv_arch and let me know how
that goes for you.

Thanks,
Tom

On Sat, Dec 18, 2010 at 6:23 AM, Ruben Merz
[email protected] wrote:

Hi Tom,

Thanks. It works

Ruben

Great, thanks!

Tom