X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fcmake%2Fcpu.cmake;h=e586ecc523c70f00d810ca92caa3e7d0cd912afa;hb=72280f817a0dd8baa9711ef67ec8b795547a6f6d;hp=bdc9014d944596494f891a86f5333d8b7ecaea15;hpb=79dcbc74cd417f4caf41bc398ccba94cab7d656b;p=vpp.git diff --git a/src/cmake/cpu.cmake b/src/cmake/cpu.cmake index bdc9014d944..e586ecc523c 100644 --- a/src/cmake/cpu.cmake +++ b/src/cmake/cpu.cmake @@ -14,7 +14,12 @@ ############################################################################## # Cache line size detection ############################################################################## -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") +if(CMAKE_CROSSCOMPILING) + message(STATUS "Cross-compiling - cache line size detection disabled") + set(VPP_LOG2_CACHE_LINE_SIZE 6) +elseif(DEFINED VPP_LOG2_CACHE_LINE_SIZE) + # Cache line size assigned via cmake args +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") file(READ "/proc/cpuinfo" cpuinfo) string(REPLACE "\n" ";" cpuinfo ${cpuinfo}) foreach(l ${cpuinfo}) @@ -65,6 +70,22 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*") endif() elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") set(CMAKE_C_FLAGS "-march=armv8-a+crc ${CMAKE_C_FLAGS}") + check_c_compiler_flag("-march=armv8-a+crc+crypto -mtune=qdf24xx" compiler_flag_march_core_qdf24xx) + if(compiler_flag_march_core_qdf24xx) + list(APPEND MARCH_VARIANTS "qdf24xx\;-march=armv8-a+crc+crypto -DCLIB_N_PREFETCHES=8") + endif() + check_c_compiler_flag("-march=armv8.1-a+crc+crypto -mtune=thunderx2t99" compiler_flag_march_thunderx2t99) + if(compiler_flag_march_thunderx2t99) + if (CMAKE_C_COMPILER_VERSION VERSION_GREATER 7.3) + list(APPEND MARCH_VARIANTS "thunderx2t99\;-march=armv8.1-a+crc+crypto -mtune=thunderx2t99 -DCLIB_N_PREFETCHES=8") + else() + list(APPEND MARCH_VARIANTS "thunderx2t99\;-march=armv8.1-a+crc+crypto -DCLIB_N_PREFETCHES=8") + endif() + endif() + check_c_compiler_flag("-march=armv8-a+crc+crypto -mtune=cortex-a72" compiler_flag_march_cortexa72) + if(compiler_flag_march_cortexa72) + list(APPEND MARCH_VARIANTS "cortexa72\;-march=armv8-a+crc+crypto -mtune=cortex-a72 -DCLIB_N_PREFETCHES=6") + endif() endif() macro(vpp_library_set_multiarch_sources lib)