2017-04-05 08:34, Singh, Jasvinder: > Hi Thomas, > > From: Thomas Monjalon [mailto:thomas.monja...@6wind.com] > > 2017-03-30 17:15, Jasvinder Singh: > > > In some applications, CRC (Cyclic Redundancy Check) needs to be > > > computed or updated during packet processing operations. This patchset > > > adds software implementation of some common standard CRCs (32-bit > > > Ethernet CRC as per Ethernet/[ISO/IEC 8802-3] and 16-bit CCITT-CRC [ITU-T > > X.25]). > > > Two versions of each 32-bit and 16-bit CRC calculation are proposed. > > > > > > The first version presents a fast and efficient CRC generation on IA > > > processors by using the carry-less multiplication instruction > > > PCLMULQDQ (i.e SSE4.2 instrinsics). In this implementation, a > > > parallelized folding approach has been used to first reduce an > > > arbitrary length buffer to a small fixed size length buffer (16 bytes) > > > with the > > help of precomputed constants. > > > The resultant single 16-bytes chunk is further reduced by Barrett > > > reduction method to generate final CRC value. For more details on the > > > implementation, see reference [1]. > > > > > > The second version presents the fallback solution to support the CRC > > > generation without needing any specific support from CPU (for > > > examples- > > > SSE4.2 intrinsics). It is based on generic Look-Up Table(LUT) > > > algorithm that uses precomputed 256 element table as explained in > > reference[2]. > > > > > > During intialisation, all the data structures required for CRC > > > computation are initialised. Also, x86 specific crc implementation (if > > > supported by the platform) or scalar version is enabled. > > > > As you can see in patchwork, it does not compile on FreeBSD: > > http://dpdk.org/ml/archives/test-report/2017-April/016943.html > > As I stated in the cover letter notes as well that The patchset build fails > on clang version earlier than 3.7.0 due to > missing intrinsics and this issue is listed in DPDK known issue section. > FreeBSD build on gcc target should work fine.
Ah, I have not seen this explanation. However, we cannot let the build fails. It is a blocker for patch admission. Can you, at least, disable the code for some compiler versions?