Clang 7 changed the behavior of vec_xxpermdi in order to match GCC's
behavior. After this change, code that used to work on Clang 6 stopped
to work on Clang >= 7.
Tested on Clang 6, 7, 8 and 9.
Reference: https://bugs.llvm.org/show_bug.cgi?id=38192
Upstream fix: 361aaf77a5
if ${CRC32_LIBRARY} target has no COMPILE_FLAGS yet,
GET_TARGET_PROPERTY returns COMPILE_FLAGS-NOTFOUND, which
doesn't work very well when it's later fed back into COMPILE_FLAGS.
GET_PROPERTY() returns an empty string in this case.
Cherry-picked from 10.4 - 13e8f728ec
Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
Make mariadb crc32 lib platform independent
It looks strange that someone can make use of 2 crc libraries
(Power64 or AArch64) at the same time.
The patch sets macros 'CRC32_LIBRARY' to make platform independence as an optional crc32 library.
Change-Id: I68bbf73cafb6a12f7fb105ad57d117b114a8c4af
Signed-off-by: Yuqi Gu <yuqi.gu@arm.com>
Compiles to same vector code, just a bit simplier.
vec_crc32.c is now identical to upstream
(https://github.com/antonblanchard/crc32-vpmsum/).
C code by Rogerio Alves <rogealve@br.ibm.com>
This implemention has been tested on big endian too.
Signed-off-by: Daniel Black <daniel@linux.ibm.com>
This is never hit in practice, because the wrapper code catches it,
but fix the zero length exit to restore all the non volatile registers.
From: aaf0ac48a4
Signed-off-by: Anton Blanchard <anton@samba.org>
Move crc32-vpmsum to extra.
Compile static crc32-vpmsum instead of adding sources directly.
Make use of crc32-vpmsum via my_checksum().
Based on contribution by Daniel Black.