cmake 3.7.1, gcc 4.8.5 (also used 4.8.2, same error), ragel 6.9, Python 2.7.13, boost 1.62.0, pcap 1.8.1 hyperscan 4.3.2
From: Hyperscan [email@example.com.
org] on behalf of Datong Li [firstname.lastname@example.org]
Sent: Friday, December 30, 2016 3:12 PM
> Hi all, had anyone encounter this problem like me below:
> [root@XXXX hs_build]# cmake --build .
> /usr/bin/make64 MAC=64
> Scanning dependencies of target ragel_Parser
> [ 0%] Generating src/parser/Parser.cpp
> [ 0%] Built target ragel_Parser
> Scanning dependencies of target hs_exec
> [ 0%] Building C object CMakeFiles/hs_exec.dir/src/
alloc.c.oI've replied to the github issue about this - it appears there is a problem with your toolchain. The compiler and assembler do not match, GCC is producing asm that the assembler doesn't understand. This can happen with a newer GCC and an old version of binutils, for example.
> [ 1%] Building C object CMakeFiles/hs_exec.dir/src/
> /tmp/ccoj8u4q.s: Assembler messages:
> /tmp/ccoj8u4q.s:460: Error: no such instruction: `vpbroadcastb %xmm2,%xmm2'
> /tmp/ccoj8u4q.s:470: Error: no such instruction: `vpbroadcastb %xmm3,%xmm3'
> when I forbidden the instruction set avx and bmi2, then it could complete the compilation, but the hyperscan 's performance is just about 500Mb/s, it's really long distance with the official numbers. I doubt that it maybe relate with theinstruction sets.
It is hard to comment on the performance you are seeing without knowing how you are getting those numbers. Can you comment on the type of patterns you are using, and the data you are scanning?