discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Build error on Ubuntu 10.04 on x86


From: Nick Foster
Subject: Re: [Discuss-gnuradio] Build error on Ubuntu 10.04 on x86
Date: Thu, 31 Mar 2011 10:36:44 -0700

On Wed, 2011-03-30 at 20:44 -0400, Marcus D. Leech wrote:
> On 03/30/2011 07:33 PM, Tom Rondeau wrote: 
> > On Wed, Mar 30, 2011 at 6:17 PM, Marcus D. Leech <address@hidden>
> > wrote:
> >         Get the following build error from very-recent GIT sources,
> >         on Ubuntu 10.04, on x86 machine:
> >         
> >         libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../include
> >         -I../lib -I/usr/include -I../include -m32 -m3dnow -mmmx
> >         -msse -g -O2 -MT volk.lo -MD -MP -MF 
> >         .deps/volk.Tpo -c volk.c  -fPIC -DPIC -o .libs/volk.o 
> >         In file included
> >         from ../include/volk/volk_32fc_index_max_16u_a16.h:4, 
> >                          from volk.c:40: 
> >         ../include/volk/volk_common.h:12: error: expected
> >         specifier-qualifier-list before ā€˜__m128iā€™ 
> >         make[4]: *** [volk.lo] Error 1 
> >         make[4]: Leaving directory `/root/gnuradio/volk/lib' 
> >         make[3]: *** [all-recursive] Error 1 
> >         make[3]: Leaving directory `/root/gnuradio/volk' 
> >         make[2]: *** [all] Error 2 
> >         make[2]: Leaving directory `/root/gnuradio/volk' 
> >         make[1]: *** [all-recursive] Error 1 
> >         make[1]: Leaving directory `/root/gnuradio' 
> >         make: *** [all] Error 2 
> > 
> > 
> I suspect that the problem is that the machine in question doesn't
> have SSE2, which might mean that the __m128i intrinsic type from
>   <xmmintrin.h> simply isn't defined?  It's not clear to me how much
> is simply done based on what's in the compiler-private include
> directory,
>   and how much the compiler "knows" about the machine.
> 
> It's an Athlon XP2500 machine, which apparently has SSE, but no SSE2.
> 

That's it, all right. volk_common.h defines a union which includes
__m128i, which is only defined in SSE2 (emmintrin.h) and higher -- but
the test Volk uses for this union is only (if LV_HAS_MMX). That test
should be (if LV_HAS_SSE2). Ordinarily, on SSE2 machines, there's an
#ifdef at the end of xmmintrin.h which includes emmintrin, where __m128i
is defined.

I don't know what making that change will break on non-SSE2 machines;
can you try it?

--n

> 
> 
> 
> -- 
> Marcus Leech
> Principal Investigator
> Shirleys Bay Radio Astronomy Consortium
> http://www.sbrac.org
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio





reply via email to

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