[Top][All Lists]
[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