mirror of
https://github.com/ceph/ceph
synced 2025-03-19 08:57:29 +00:00
cmake: BuildDPDK: do not build kernel modules
see also http://pkgs.fedoraproject.org/cgit/rpms/dpdk.git/tree/dpdk.spec Signed-off-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
parent
79db2c4095
commit
9964ac9251
@ -62,32 +62,11 @@ function(do_build_dpdk dpdk_dir)
|
||||
"unsupported target \"${target}\"")
|
||||
endif()
|
||||
|
||||
if(WITH_KERNEL_DIR)
|
||||
if(NOT IS_DIRECTORY ${WITH_KERNEL_DIR})
|
||||
message(FATAL "not able to build DPDK support: "
|
||||
"WITH_KERNEL_DIR=\"${WITH_KERNEL_DIR}\" does not exist")
|
||||
endif()
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND uname -r
|
||||
OUTPUT_VARIABLE kernel_release
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(kernel_header_dir "/lib/modules/${kernel_release}/build")
|
||||
if(NOT IS_DIRECTORY ${kernel_header_dir})
|
||||
message(FATAL "not able to build DPDK support: "
|
||||
"\"${kernel_header_dir}\" does not exist. DPDK uses it for building "
|
||||
"kernel modules. Please either disable WITH_DPDK and WITH_SPDK, "
|
||||
"or install linux-headers of the kernel version of the target machine, "
|
||||
"and specify \"-DWITH_RTE_KERNEL_DIR=<the-path-to-the-linux-headers-dir> "
|
||||
"when running \"cmake\"")
|
||||
endif()
|
||||
set(WITH_KERNEL_DIR ${kernel_header_dir})
|
||||
endif(WITH_KERNEL_DIR)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(dpdk-ext
|
||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/spdk/dpdk
|
||||
CONFIGURE_COMMAND $(MAKE) config O=${dpdk_dir} T=${target}
|
||||
BUILD_COMMAND env CC=${CMAKE_C_COMPILER} $(MAKE) O=${dpdk_dir} EXTRA_CFLAGS=-fPIC RTE_KERNELDIR=${WITH_KERNEL_DIR}
|
||||
BUILD_COMMAND env CC=${CMAKE_C_COMPILER} $(MAKE) O=${dpdk_dir} EXTRA_CFLAGS=-fPIC
|
||||
BUILD_IN_SOURCE 1
|
||||
INSTALL_COMMAND "true")
|
||||
ExternalProject_Add_Step(dpdk-ext patch-config
|
||||
|
46
cmake/modules/patch-dpdk-conf.sh
Executable file
46
cmake/modules/patch-dpdk-conf.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
# -*- mode:sh; tab-width:4; indent-tabs-mode:nil -*
|
||||
|
||||
setconf() {
|
||||
local key=$1
|
||||
local val=$2
|
||||
if grep -q ^$key= ${conf}; then
|
||||
sed -i "s:^$key=.*$:$key=$val:g" ${conf}
|
||||
else
|
||||
echo $key=$val >> ${conf}
|
||||
fi
|
||||
}
|
||||
|
||||
conf=$1/.config
|
||||
shift
|
||||
machine=$1
|
||||
shift
|
||||
|
||||
setconf CONFIG_RTE_MACHINE "${machine}"
|
||||
# Disable experimental features
|
||||
setconf CONFIG_RTE_NEXT_ABI n
|
||||
setconf CONFIG_RTE_LIBRTE_MBUF_OFFLOAD n
|
||||
# Disable unmaintained features
|
||||
setconf CONFIG_RTE_LIBRTE_POWER n
|
||||
|
||||
setconf CONFIG_RTE_EAL_IGB_UIO n
|
||||
setconf CONFIG_RTE_LIBRTE_KNI n
|
||||
setconf CONFIG_RTE_KNI_KMOD n
|
||||
setconf CONFIG_RTE_KNI_PREEMPT_DEFAULT n
|
||||
|
||||
# no pdump
|
||||
setconf CONFIG_RTE_LIBRTE_PDUMP n
|
||||
|
||||
# no vm support
|
||||
setconf CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT n
|
||||
setconf CONFIG_RTE_LIBRTE_VHOST n
|
||||
setconf CONFIG_RTE_LIBRTE_VMXNET3_PMD n
|
||||
setconf CONFIG_RTE_LIBRTE_PMD_VHOST n
|
||||
setconf CONFIG_RTE_APP_EVENTDEV n
|
||||
|
||||
# no test
|
||||
setconf CONFIG_RTE_APP_TEST n
|
||||
setconf CONFIG_RTE_TEST_PMD n
|
||||
|
||||
# async/dpdk does not like it
|
||||
setconf CONFIG_RTE_MBUF_REFCNT_ATOMIC n
|
Loading…
Reference in New Issue
Block a user