mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
fix fat & normal build errors on arm
This commit is contained in:
parent
55cae8c807
commit
7a2ccd7773
@ -137,6 +137,16 @@ if (BUILD_AVX512VBMI)
|
||||
set(BUILD_AVX512 ON)
|
||||
endif ()
|
||||
|
||||
if (NOT FAT_RUNTIME)
|
||||
if (BUILD_SVE2_BITPERM)
|
||||
set(BUILD_SVE2 ON)
|
||||
endif ()
|
||||
|
||||
if (BUILD_SVE2)
|
||||
set(BUILD_SVE ON)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# TODO: per platform config files?
|
||||
|
||||
# remove CMake's idea of optimisation
|
||||
@ -636,7 +646,7 @@ set (hs_exec_common_SRCS
|
||||
${hs_exec_common_SRCS}
|
||||
src/util/arch/x86/cpuid_flags.c
|
||||
)
|
||||
elseif (ARCH_ARM32 OR ARCH_AARCH64 OR ARCH_PPC64EL)
|
||||
elseif (ARCH_ARM32 OR ARCH_AARCH64)
|
||||
set (hs_exec_common_SRCS
|
||||
${hs_exec_common_SRCS}
|
||||
src/util/arch/arm/cpuid_flags.c
|
||||
@ -801,11 +811,10 @@ set (hs_exec_SRCS
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
if (FAT_RUNTIME OR (NOT FAT_RUNTIME AND NOT BUILD_SVE2))
|
||||
set (hs_exec_SRCS
|
||||
${hs_exec_SRCS}
|
||||
set (hs_exec_neon_SRCS
|
||||
src/nfa/vermicelli_simd.cpp)
|
||||
set (hs_exec_sve_SRCS
|
||||
src/nfa/vermicelli_simd.cpp)
|
||||
endif()
|
||||
|
||||
set (hs_exec_avx2_SRCS
|
||||
src/fdr/teddy_avx2.c
|
||||
@ -1264,6 +1273,10 @@ if (NOT FAT_RUNTIME)
|
||||
set(hs_exec_SRCS ${hs_exec_SRCS} ${hs_exec_avx2_SRCS})
|
||||
endif()
|
||||
|
||||
if (NOT BUILD_SVE2)
|
||||
set(hs_exec_SRCS ${hs_exec_SRCS} ${hs_exec_neon_SRCS})
|
||||
endif()
|
||||
|
||||
if (BUILD_STATIC_LIBS)
|
||||
add_library(hs_exec OBJECT ${hs_exec_SRCS})
|
||||
|
||||
@ -1416,29 +1429,31 @@ else ()
|
||||
if (ARCH_AARCH64)
|
||||
set(BUILD_WRAPPER "${PROJECT_SOURCE_DIR}/cmake/build_wrapper.sh")
|
||||
if (BUILD_STATIC_LIBS)
|
||||
add_library(hs_exec_neon OBJECT ${hs_exec_SRCS})
|
||||
set (BUILD_SVE OFF)
|
||||
set (BUILD_SVE2 OFF)
|
||||
set (BUILD_SVE2_BITPERM OFF)
|
||||
add_library(hs_exec_neon OBJECT ${hs_exec_SRCS} ${hs_exec_neon_SRCS})
|
||||
list(APPEND RUNTIME_LIBS $<TARGET_OBJECTS:hs_exec_neon>)
|
||||
set_target_properties(hs_exec_neon PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a"
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} neon ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
|
||||
if (BUILD_SVE)
|
||||
add_library(hs_exec_sve OBJECT ${hs_exec_SRCS} ${hs_exec_sve_SRCS})
|
||||
list(APPEND RUNTIME_LIBS $<TARGET_OBJECTS:hs_exec_sve>)
|
||||
set_target_properties(hs_exec_sve PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve"
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
endif (BUILD_SVE)
|
||||
if (BUILD_SVE2)
|
||||
add_library(hs_exec_sve2 OBJECT ${hs_exec_SRCS} ${hs_exec_sve2_SRCS})
|
||||
list(APPEND RUNTIME_LIBS $<TARGET_OBJECTS:hs_exec_sve2>)
|
||||
set_target_properties(hs_exec_sve2 PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve2"
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve2 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
endif (BUILD_SVE2)
|
||||
set (BUILD_SVE ON)
|
||||
add_library(hs_exec_sve OBJECT ${hs_exec_SRCS} ${hs_exec_sve_SRCS})
|
||||
list(APPEND RUNTIME_LIBS $<TARGET_OBJECTS:hs_exec_sve>)
|
||||
set_target_properties(hs_exec_sve PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve -DHAVE_SVE"
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
set (BUILD_SVE2 ON)
|
||||
set (BUILD_SVE2_BITPERM ON)
|
||||
add_library(hs_exec_sve2 OBJECT ${hs_exec_SRCS} ${hs_exec_sve2_SRCS})
|
||||
list(APPEND RUNTIME_LIBS $<TARGET_OBJECTS:hs_exec_sve2>)
|
||||
set_target_properties(hs_exec_sve2 PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve+sve2+sve2-bitperm -DHAVE_SVE -DHAVE_SVE2"
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve2 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
|
||||
add_library(hs_exec_common OBJECT
|
||||
${hs_exec_common_SRCS}
|
||||
@ -1462,10 +1477,13 @@ else ()
|
||||
endif (BUILD_STATIC_LIBS)
|
||||
|
||||
if (BUILD_STATIC_AND_SHARED OR BUILD_SHARED_LIBS)
|
||||
set (BUILD_SVE OFF)
|
||||
set (BUILD_SVE2 OFF)
|
||||
set (BUILD_SVE2_BITPERM OFF)
|
||||
# build shared libs
|
||||
add_library(hs_compile_shared OBJECT ${hs_compile_SRCS})
|
||||
set_target_properties(hs_compile_shared PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
|
||||
add_library(hs_exec_shared_neon OBJECT ${hs_exec_SRCS})
|
||||
add_library(hs_exec_shared_neon OBJECT ${hs_exec_SRCS} ${hs_exec_neon_SRCS})
|
||||
list(APPEND RUNTIME_SHLIBS $<TARGET_OBJECTS:hs_exec_shared_neon>)
|
||||
set_target_properties(hs_exec_shared_neon PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a"
|
||||
@ -1473,24 +1491,23 @@ else ()
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} neon ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
|
||||
if (BUILD_SVE)
|
||||
add_library(hs_exec_shared_sve OBJECT ${hs_exec_SRCS} ${hs_exec_sve_SRCS})
|
||||
list(APPEND RUNTIME_SHLIBS $<TARGET_OBJECTS:hs_exec_shared_sve>)
|
||||
set_target_properties(hs_exec_shared_sve PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve"
|
||||
POSITION_INDEPENDENT_CODE TRUE
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
endif (BUILD_SVE)
|
||||
if (BUILD_SVE2)
|
||||
add_library(hs_exec_shared_sve2 OBJECT ${hs_exec_SRCS} ${hs_exec_sve2_SRCS})
|
||||
list(APPEND RUNTIME_SHLIBS $<TARGET_OBJECTS:hs_exec_shared_sve2>)
|
||||
set_target_properties(hs_exec_shared_sve2 PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve2"
|
||||
POSITION_INDEPENDENT_CODE TRUE
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve2 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
endif (BUILD_SVE2)
|
||||
set (BUILD_SVE ON)
|
||||
add_library(hs_exec_shared_sve OBJECT ${hs_exec_SRCS} ${hs_exec_sve_SRCS})
|
||||
list(APPEND RUNTIME_SHLIBS $<TARGET_OBJECTS:hs_exec_shared_sve>)
|
||||
set_target_properties(hs_exec_shared_sve PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve -DHAVE_SVE"
|
||||
POSITION_INDEPENDENT_CODE TRUE
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
set (BUILD_SVE2 ON)
|
||||
set (BUILD_SVE2_BITPERM ON)
|
||||
add_library(hs_exec_shared_sve2 OBJECT ${hs_exec_SRCS} ${hs_exec_sve2_SRCS})
|
||||
list(APPEND RUNTIME_SHLIBS $<TARGET_OBJECTS:hs_exec_shared_sve2>)
|
||||
set_target_properties(hs_exec_shared_sve2 PROPERTIES
|
||||
COMPILE_FLAGS "-march=armv8-a+sve+sve2+sve2-bitperm -DHAVE_SVE -DHAVE_SVE2"
|
||||
POSITION_INDEPENDENT_CODE TRUE
|
||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} sve2 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||
)
|
||||
add_library(hs_exec_common_shared OBJECT
|
||||
${hs_exec_common_SRCS}
|
||||
src/dispatcher.c
|
||||
|
@ -35,7 +35,7 @@ if (ARCH_AARCH64)
|
||||
svuint8_t a = svbext(svdup_u8(1), svdup_u8(2));
|
||||
(void)a;
|
||||
}" HAVE_SVE2_BITPERM)
|
||||
if (HAVE_SVE2_BITPERM)
|
||||
if (HAVE_SVE2_BITPERM AND NOT FAT_RUNTIME)
|
||||
add_definitions(-DHAVE_SVE2_BITPERM)
|
||||
endif ()
|
||||
endif()
|
||||
@ -47,7 +47,7 @@ if (ARCH_AARCH64)
|
||||
(void)a;
|
||||
}" HAVE_SVE2)
|
||||
endif()
|
||||
if (HAVE_SVE2 OR HAVE_SVE2_BITPERM)
|
||||
if ((HAVE_SVE2 OR HAVE_SVE2_BITPERM) AND NOT FAT_RUNTIME)
|
||||
add_definitions(-DHAVE_SVE2)
|
||||
endif ()
|
||||
if (BUILD_SVE)
|
||||
@ -58,7 +58,7 @@ if (ARCH_AARCH64)
|
||||
(void)a;
|
||||
}" HAVE_SVE)
|
||||
endif ()
|
||||
if (HAVE_SVE OR HAVE_SVE2 OR HAVE_SVE2_BITPERM)
|
||||
if ((HAVE_SVE OR HAVE_SVE2 OR HAVE_SVE2_BITPERM) AND NOT FAT_RUNTIME)
|
||||
add_definitions(-DHAVE_SVE)
|
||||
endif ()
|
||||
set(CMAKE_C_FLAGS "${PREV_FLAGS}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user