faf8fd2527
Replace the use of rte_get_timer_cycles() with getentropy() for seeding the pseudo-random number generator. getentropy() provides a more truly random value. getentropy() requires glibc 2.25 and Linux kernel 3.17. In case getentropy() is not found at compile time, or the relevant syscall fails in runtime, the rdseed machine instruction will be used as a fallback. rdseed is only available on x86 (Broadwell or later). In case it is not present, rte_get_timer_cycles() will be used as a second fallback. On non-Meson builds, getentropy() will not be used. Suggested-by: Bruce Richardson <bruce.richardson@intel.com> Suggested-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
28 lines
945 B
Meson
28 lines
945 B
Meson
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2017-2019 Intel Corporation
|
|
|
|
# Custom EAL processing. EAL is complicated enough that it can't just
|
|
# have a straight list of headers and source files.
|
|
# Initially pull in common settings
|
|
eal_inc = [global_inc]
|
|
subdir('common') # defines common_sources, common_objs, etc.
|
|
|
|
# Now do OS/exec-env specific settings, including building kernel modules
|
|
# The <exec-env>/eal/meson.build file should define env_sources, etc.
|
|
dpdk_conf.set('RTE_EXEC_ENV_' + exec_env.to_upper(), 1)
|
|
subdir(exec_env + '/eal')
|
|
|
|
version = 10 # the version of the EAL API
|
|
allow_experimental_apis = true
|
|
deps += 'kvargs'
|
|
if dpdk_conf.has('RTE_USE_LIBBSD')
|
|
ext_deps += libbsd
|
|
endif
|
|
if cc.has_function('getentropy', prefix : '#include <unistd.h>')
|
|
cflags += '-DRTE_LIBEAL_USE_GETENTROPY'
|
|
endif
|
|
sources = common_sources + env_sources
|
|
objs = common_objs + env_objs
|
|
headers = common_headers + env_headers
|
|
includes = eal_inc
|