From 4a0dc8da7c919b964b21c002ec8ffa9e5c53a12b Mon Sep 17 00:00:00 2001 From: wuying39 <921169248@qq.com> Date: Tue, 2 Sep 2025 17:18:11 +0800 Subject: [PATCH] modify the build file and code to compatible with older version compilers --- CMakeLists.txt | 27 ++++++++++++++++++++++----- pmu/dump_perf_data.cpp | 2 +- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 95ced18..78cb57c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,12 +35,29 @@ endif() set(TOP_DIR ${PROJECT_SOURCE_DIR}) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funroll-loops -fno-plt") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -funroll-loops -fno-plt ") +include(CheckCCompilerFlag) +include(CheckCXXCompilerFlag) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -funroll-loops") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funroll-loops") -if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm|aarch64)") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8.2-a") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8.2-a") +check_c_compiler_flag("-fno-plt" C_SUPPORTS_NO_PLT) +if(C_SUPPORTS_NO_PLT) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-plt") +endif() +check_cxx_compiler_flag("-fno-plt" CXX_SUPPORTS_NO_PLT) +if(CXX_SUPPORTS_NO_PLT) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-plt") +endif() + +if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm|aarch64)") + check_c_compiler_flag("-march=armv8.2-a" C_SUPPORTS_ARM_ARCH) + if(C_SUPPORTS_ARM_ARCH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8.2-a") + endif() + check_cxx_compiler_flag("-march=armv8.2-a" CXX_SUPPORTS_ARM_ARCH) + if(CXX_SUPPORTS_ARM_ARCH) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8.2-a") + endif() endif() message("TOP_DIR is ${TOP_DIR}") diff --git a/pmu/dump_perf_data.cpp b/pmu/dump_perf_data.cpp index e6e16fd..ef1dd22 100644 --- a/pmu/dump_perf_data.cpp +++ b/pmu/dump_perf_data.cpp @@ -620,7 +620,7 @@ private: unsigned idHdrSize = 0; const char *path = nullptr; - PerfFileHeader ph = {0}; + PerfFileHeader ph = {}; int fd = 0; map evt2id; set modules; -- Gitee