For static builds, even though the drivers are installed in the lib folder
that does not mean that that folder should be set as the EAL driver search
path. If it is, EAL will try loading all shared libraries as drivers and
fail to start. Instead, track the EAL driver path separately from the
driver install path, allowing static builds to have an empty driver path
by default.

Fixes: d8b85d98b3f7 ("build: add initial infrastructure for meson & ninja 
builds")

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>

----
NOTE: on apply will be merged into offending commit in next-build tree.
---
 config/meson.build | 3 +--
 meson.build        | 2 ++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/config/meson.build b/config/meson.build
index ce26a29f0..8e4a703c7 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -71,8 +71,7 @@ endif
 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', join_paths(
-               get_option('prefix'), driver_install_path))
+dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)
 
 # set other values pulled from the build options
 dpdk_conf.set('RTE_MAX_LCORE', get_option('max_lcores'))
diff --git a/meson.build b/meson.build
index e3d40ac38..4af057615 100644
--- a/meson.build
+++ b/meson.build
@@ -47,8 +47,10 @@ dpdk_extra_ldflags = []
 # for shared libs, put them in a driver folder
 if get_option('default_library') == 'static'
        driver_install_path = get_option('libdir')
+       eal_pmd_path = ''
 else
        driver_install_path = join_paths(get_option('libdir'), 'dpdk/drivers')
+       eal_pmd_path = join_paths(get_option('prefix'), driver_install_path)
 endif
 
 # configure the build, and make sure configs here and in config folder are
-- 
2.13.6

Reply via email to