numam-dpdk/config/meson.build
Bruce Richardson 8a19276261 bus/dpaa2: fix default IOVA setting for meson builds
By default, the DPAA2_USE_PHYS_IOVA setting with the make build-system
is "y", which is overridden to "n" in the config file specifically for
the arm64-dpaa2-linuxapp-gcc builds. The lack of this setting in meson
builds causes issues for 32-bit build, as the alternative code paths
have compiler warnings e.g. for i686 builds. Therefore we should align
the meson and make settings, setting the value to "true" by default and
overriding it to "false" for dpaa2-specific builds.

Fixes: 6ec78c2463 ("build: add meson support for dpaaX platforms")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-07-12 12:25:20 +02:00

95 lines
2.9 KiB
Meson

# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
# set the machine type and cflags for it
if meson.is_cross_build()
machine = host_machine.cpu()
else
machine = get_option('machine')
endif
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
machine_args += '-march=' + machine
toolchain = cc.get_id()
dpdk_conf.set_quoted('RTE_TOOLCHAIN', toolchain)
dpdk_conf.set('RTE_TOOLCHAIN_' + toolchain.to_upper(), 1)
# use pthreads
add_project_link_arguments('-pthread', language: 'c')
dpdk_extra_ldflags += '-pthread'
# some libs depend on maths lib
add_project_link_arguments('-lm', language: 'c')
dpdk_extra_ldflags += '-lm'
# for linux link against dl, for bsd execinfo
if host_machine.system() == 'linux'
link_lib = 'dl'
else
link_lib = 'execinfo'
endif
add_project_link_arguments('-l' + link_lib, language: 'c')
dpdk_extra_ldflags += '-l' + link_lib
# check for libraries used in multiple places in DPDK
has_libnuma = 0
numa_dep = cc.find_library('numa', required: false)
if numa_dep.found() and cc.has_header('numaif.h')
dpdk_conf.set10('RTE_HAS_LIBNUMA', true)
has_libnuma = 1
add_project_link_arguments('-lnuma', language: 'c')
dpdk_extra_ldflags += '-lnuma'
endif
# check for strlcpy
if host_machine.system() == 'linux' and cc.find_library('bsd',
required: false).found() and cc.has_header('bsd/string.h')
dpdk_conf.set('RTE_USE_LIBBSD', 1)
add_project_link_arguments('-lbsd', language: 'c')
dpdk_extra_ldflags += '-lbsd'
endif
# add -include rte_config to cflags
add_project_arguments('-include', 'rte_config.h', language: 'c')
# enable extra warnings and disable any unwanted warnings
warning_flags = [
'-Wsign-compare',
'-Wcast-qual',
'-Wno-address-of-packed-member'
]
if cc.sizeof('void *') == 4
# for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!!
warning_flags += '-Wno-pointer-to-int-cast'
endif
foreach arg: warning_flags
if cc.has_argument(arg)
add_project_arguments(arg, language: 'c')
endif
endforeach
# set other values pulled from the build options
dpdk_conf.set('RTE_MAX_LCORE', get_option('max_lcores'))
dpdk_conf.set('RTE_MAX_NUMA_NODES', get_option('max_numa_nodes'))
dpdk_conf.set('RTE_LIBEAL_USE_HPET', get_option('use_hpet'))
dpdk_conf.set('RTE_EAL_ALLOW_INV_SOCKET_ID', get_option('allow_invalid_socket_id'))
# values which have defaults which may be overridden
dpdk_conf.set('RTE_MAX_VFIO_GROUPS', 64)
dpdk_conf.set('RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB', 64)
dpdk_conf.set('RTE_LIBRTE_DPAA2_USE_PHYS_IOVA', true)
compile_time_cpuflags = []
if host_machine.cpu_family().startswith('x86')
arch_subdir = 'x86'
elif host_machine.cpu_family().startswith('arm') or host_machine.cpu_family().startswith('aarch')
arch_subdir = 'arm'
endif
subdir(arch_subdir)
dpdk_conf.set('RTE_COMPILE_TIME_CPUFLAGS', ','.join(compile_time_cpuflags))
# set the install path for the drivers
dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)
install_headers('rte_config.h', subdir: get_option('include_subdir_arch'))