From 3092a18f6ae7ad2bff2aa9b7887e82475d074995 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Fri, 24 Jul 2015 17:39:52 +0200 Subject: [PATCH] cmake: check for better yasm and fix isa Signed-off-by: Orit Wasserman --- src/CMakeLists.txt | 8 ++++++++ src/erasure-code/CMakeLists.txt | 4 ++-- src/erasure-code/isa/CMakeLists.txt | 19 +++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d1e0fbffe920..d879e3bd3595 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,6 +17,14 @@ message(status " ams compiler ${CMAKE_ASM_COMPILER}") set(CMAKE_ASM_FLAGS "-f elf64") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -fPIC") +execute_process(COMMAND yasm -f elf64 -i ${CMAKE_SOURCE_DIR}/src/erasure-code/isa/isa-l/include/ ${CMAKE_SOURCE_DIR}/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s -o /dev/null + RESULT_VARIABLE rc + OUTPUT_QUIET) +if(NOT rc) + set(HAVE_BETTER_YASM_ELF64 1) +endif(NOT rc) +MESSAGE("HAVE_BETTER_YASM_ELF64=" ${HAVE_BETTER_YASM_ELF64}) + set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -ftemplate-depth-1024 -Wno-invalid-offsetof -Wnon-virtual-dtor -Wno-invalid-offsetof -Wstrict-null-sentinel -Woverloaded-virtual") set(EXTRALIBS uuid rt dl ${Boost_LIBS}) diff --git a/src/erasure-code/CMakeLists.txt b/src/erasure-code/CMakeLists.txt index ba31afdd778b..484d8958423f 100644 --- a/src/erasure-code/CMakeLists.txt +++ b/src/erasure-code/CMakeLists.txt @@ -5,9 +5,9 @@ set(erasure_codelibdir ${LIBRARY_OUTPUT_PATH}/erasure-code) add_subdirectory(jerasure) add_subdirectory(lrc) -if (WITH_BETTER_YASM_ELF64) # TODO: check for yasm support +if (HAVE_BETTER_YASM_ELF64) add_subdirectory(isa) -endif (WITH_BETTER_YASM_ELF64) +endif (HAVE_BETTER_YASM_ELF64) add_library(erasure_code ErasureCodePlugin.cc) target_link_libraries(erasure_code dl) diff --git a/src/erasure-code/isa/CMakeLists.txt b/src/erasure-code/isa/CMakeLists.txt index f6eae7d669de..48605c1d431b 100644 --- a/src/erasure-code/isa/CMakeLists.txt +++ b/src/erasure-code/isa/CMakeLists.txt @@ -24,9 +24,28 @@ set(isa_srcs isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s isa-l/erasure_code/gf_vect_dot_prod_avx.asm.s isa-l/erasure_code/gf_vect_dot_prod_sse.asm.s + isa-l/erasure_code/gf_2vect_mad_avx2.asm.s + isa-l/erasure_code/gf_2vect_mad_avx.asm.s + isa-l/erasure_code/gf_2vect_mad_sse.asm.s + isa-l/erasure_code/gf_3vect_mad_avx2.asm.s + isa-l/erasure_code/gf_3vect_mad_avx.asm.s + isa-l/erasure_code/gf_3vect_mad_sse.asm.s + isa-l/erasure_code/gf_4vect_mad_avx2.asm.s + isa-l/erasure_code/gf_4vect_mad_avx.asm.s + isa-l/erasure_code/gf_4vect_mad_sse.asm.s + isa-l/erasure_code/gf_5vect_mad_avx2.asm.s + isa-l/erasure_code/gf_5vect_mad_avx.asm.s + isa-l/erasure_code/gf_5vect_mad_sse.asm.s + isa-l/erasure_code/gf_6vect_mad_avx2.asm.s + isa-l/erasure_code/gf_6vect_mad_avx.asm.s + isa-l/erasure_code/gf_6vect_mad_sse.asm.s + isa-l/erasure_code/gf_vect_mad_avx2.asm.s + isa-l/erasure_code/gf_vect_mad_avx.asm.s + isa-l/erasure_code/gf_vect_mad_sse.asm.s isa-l/erasure_code/gf_vect_mul_avx.asm.s isa-l/erasure_code/gf_vect_mul_sse.asm.s ErasureCodeIsa.cc + ErasureCodeIsaTableCache.cc ErasureCodePluginIsa.cc xor_op.cc $ -- 2.47.3