Re: Vc Build Error
GRABNER Friedrich
[please enable javascript to see the address]
Thu Jan 28 18:33:27 CET 2016
Matthias,
I updated my binutils to:
2.26.51.20151113
However it is not my default binutils so I am linking it through ccmake...
That being said I still receive the error message:
[ 26%] Building CXX object CMakeFiles/Vc.dir/sse_sorthelper_AVX.cpp.o
[ 26%] Building CXX object CMakeFiles/Vc.dir/sse_sorthelper_AVX2+FMA+BMI2.cpp.o
[ 26%] Building CXX object CMakeFiles/Vc.dir/avx_sorthelper_AVX.cpp.o
[ 28%] Building CXX object CMakeFiles/Vc.dir/avx_sorthelper_AVX2+FMA+BMI2.cpp.o
/tmp/ccaU86J9.s: Assembler messages:
/tmp/ccaU86J9.s:12: Error: no such instruction: `vextracti128 $0x1,%ymm0,%xmm1'
/tmp/ccaU86J9.s:62: Error: no such instruction: `vinserti128 $0x1,%xmm1,%ymm0,%ymm0'
/tmp/ccaU86J9.s:81: Error: no such instruction: `vextracti128 $0x1,%ymm0,%xmm1'
/tmp/ccaU86J9.s:131: Error: no such instruction: `vinserti128 $0x1,%xmm1,%ymm0,%ymm0'
/tmp/ccaU86J9.s:150: Error: no such instruction: `vextracti128 $0x1,%ymm0,%xmm3'
/tmp/ccaU86J9.s:183: Error: no such instruction: `vinserti128 $0x1,%xmm0,%ymm2,%ymm0'
/tmp/ccaU86J9.s:189: Error: no such instruction: `vinserti128 $0x1,%xmm0,%ymm2,%ymm0'
/tmp/ccaU86J9.s:195: Error: no such instruction: `vinserti128 $0x1,%xmm2,%ymm0,%ymm0'
/tmp/ccaU86J9.s:214: Error: no such instruction: `vextracti128 $0x1,%ymm0,%xmm3'
/tmp/ccaU86J9.s:247: Error: no such instruction: `vinserti128 $0x1,%xmm0,%ymm2,%ymm0'
/tmp/ccaU86J9.s:253: Error: no such instruction: `vinserti128 $0x1,%xmm0,%ymm2,%ymm0'
/tmp/ccaU86J9.s:259: Error: no such instruction: `vinserti128 $0x1,%xmm2,%ymm0,%ymm0'
make[2]: *** [CMakeFiles/Vc.dir/avx_sorthelper_AVX2+FMA+BMI2.cpp.o] Error 1
make[1]: *** [CMakeFiles/Vc.dir/all] Error 2
make: *** [all] Error 2
Do I need to completely update binutils or should this suffice?
Thanks,
Friedrich
[please enable javascript to see the address]> wrote:
> On Monday, January 25, 2016 05:53:39 PM GRABNER Friedrich wrote:
> > Firstly I can easily build both the 0.7 and 0.8 branches however for the
> > master branch I see the following error:
> >
> > Assembler messages:
> > /tmp/ccGuLgWH.s:12: Error: no such instruction [...]
> > make[2]: *** [CMakeFiles/Vc.dir/avx_sorthelper_AVX2+FMA+BMI2.cpp.o]
>
> This tells us that the assembler does not understand said instructions. I.e.
> your binutils package is too old. Please let me know the output of 'as --
> version' so that I can add a check to the cmake files to warn others of this
> issue.
>
> You'll need to either
> 1. update your binutils package
> 2. or disable the AVX2 code in libVc (try -DVc_AVX2_INTRINSICS_BROKEN=TRUE
> when you call cmake)
> 3. or you could try to use clang 3.7, which ships its own integrated
> assembler.
>
> > Despite using the same cmake settings. Ok I don't mind using version 0.8
> > however I cannot get it to compile...
>
> There's no Vc 0.8 release. The branch was always experimental and is
> discontinued.
>
> > Using gcc-5.2, I am trying to compile the example matrix (though the
> > same/similar errors occur for all examples) as I have seen from
> > investigating the archives the reccomended compilation settings are
> > something like this:
>
> Is this for 0.8 then?
> >
> > g++ -std=c++11 -march=native -O3 -I/path/to/include -L/path/to/lib -lVc
> > main.cpp
> >
> > The error I receive is as follows:
> >
> > main.cpp:(.text+0x202): undefined reference to `Vc::RandomState'
> > [...]
>
> try putting -lVc after main.cpp.
>
> I recommend you try to get Vc 1.1 working. 0.7 is quite old and there's no
> support for newer compilers and instructions.
>
> Cheers,
> Matthias
>
> --
> ──────────────────────────────────────────────────────────────────────────
> Dr. Matthias Kretz https://www.kretzfamily.de
> GSI Helmholtzzentrum für Schwerionenforschung https://gsi.de
> SIMD easy and portable https://github.com/VcDevel/Vc
> ──────────────────────────────────────────────────────────────────────────
More information about the Vc
mailing list