diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/crcutil/ya.make | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/libs/crcutil/ya.make')
-rw-r--r-- | contrib/libs/crcutil/ya.make | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/contrib/libs/crcutil/ya.make b/contrib/libs/crcutil/ya.make new file mode 100644 index 0000000000..2da8ef940f --- /dev/null +++ b/contrib/libs/crcutil/ya.make @@ -0,0 +1,70 @@ +LIBRARY() + +LICENSE(Apache-2.0) + +VERSION(1.0) + +LICENSE_TEXTS(.yandex_meta/licenses.list.txt) + +OWNER( + g:contrib + g:cpp-contrib +) + +NO_UTIL() + +NO_COMPILER_WARNINGS() + +NO_JOIN_SRC() + +IF (GCC AND USE_LTO) + CFLAGS(-DCRCUTIL_FORCE_ASM_CRC32C=1) +ENDIF() + +IF (ARCH_I386 OR ARCH_X86_64) + IF (OS_WINDOWS) + SRCS( + multiword_64_64_cl_i386_mmx.cc + ) + ELSEIF (OS_ANDROID AND ARCH_I386) + # 32-bit Android has some problems with register allocation, so we fall back to default implementation + ELSE() + IF (CLANG) + CFLAGS(-DCRCUTIL_USE_MM_CRC32=1) + IF (ARCH_I386) + # clang doesn't support this as optimization attribute and has problems with register allocation + SRC( + multiword_64_64_gcc_i386_mmx.cc + -fomit-frame-pointer + ) + ELSE() + SRCS( + multiword_64_64_gcc_i386_mmx.cc + ) + ENDIF() + ELSE() + CFLAGS( + -mcrc32 + -DCRCUTIL_USE_MM_CRC32=1 + ) + ENDIF() + SRCS( + multiword_128_64_gcc_amd64_sse2.cc + multiword_64_64_gcc_amd64_asm.cc + ) + ENDIF() + IF (OS_WINDOWS) + SRCS( + crc32c_sse4.cc + ) + ELSE() + SRC_CPP_SSE4(crc32c_sse4.cc) + ENDIF() +ENDIF() + +SRCS( + interface.cc + multiword_64_64_intrinsic_i386_mmx.cc +) + +END() |