From d3c315703ae61a64960a4cdc66212591228c7838 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 15 Aug 2021 16:31:02 +0800 Subject: [PATCH] cmake: pass -Wunused-but-set-variable when building dpdk otherwise we have: src/spdk/dpdk/lib/librte_eal/linux/eal.c:591:11: error: variable 'total_mem' set but not used [-Werror,-Wunused-but-set-variable] uint64_t total_mem = 0; ^ 1 error generated. when building dpdk with Clang. dpdk passes -Werror to compiler, so we have to disable this option. Signed-off-by: Kefu Chai --- cmake/modules/BuildDPDK.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cmake/modules/BuildDPDK.cmake b/cmake/modules/BuildDPDK.cmake index 69aa471c374..63bd56df20c 100644 --- a/cmake/modules/BuildDPDK.cmake +++ b/cmake/modules/BuildDPDK.cmake @@ -82,11 +82,19 @@ function(do_build_dpdk dpdk_dir) set(dpdk_source_dir ${CMAKE_SOURCE_DIR}/src/spdk/dpdk) endif() + set(extra_cflags "-fPIC") + include(CheckCCompilerFlag) + check_c_compiler_flag("-Wno-unused-but-set-variable" + HAVE_UNUSED_BUT_SET_VARIABLE) + if(HAVE_UNUSED_BUT_SET_VARIABLE) + string(APPEND extra_cflags " -Wno-unused-but-set-variable") + endif() + include(ExternalProject) ExternalProject_Add(dpdk-ext SOURCE_DIR ${dpdk_source_dir} CONFIGURE_COMMAND ${make_cmd} config O=${dpdk_dir} T=${target} - BUILD_COMMAND ${make_cmd} O=${dpdk_dir} CC=${CMAKE_C_COMPILER} EXTRA_CFLAGS=-fPIC + BUILD_COMMAND ${make_cmd} O=${dpdk_dir} CC=${CMAKE_C_COMPILER} EXTRA_CFLAGS=${extra_cflags} BUILD_IN_SOURCE 1 INSTALL_COMMAND "") if(NUMA_FOUND) -- 2.39.5