6.10 removed the "support" (it was never supported [1]) of separate
source and build dirs for out of tree modules.

KNI uses "src=" hack for that purpose.

Instead, copy sources to the build dir and don't rely upon the
unsupported...

Intended esp. for stable/22.11. It should go wherever kni is still in
the tree.

[1] 
https://lore.kernel.org/all/CAK7LNAQ47bZpE6c6Yoz-jQS78uU611oZwU8bH+7e=p5zsya...@mail.gmail.com/

Signed-off-by: Jiri Slaby <jsl...@suse.cz>
---
 kernel/linux/kni/meson.build | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build
index 4c90069e..39ca2ade 100644
--- a/kernel/linux/kni/meson.build
+++ b/kernel/linux/kni/meson.build
@@ -11,8 +11,8 @@ if run_cmd.stdout().contains('txqueue') == true
    kmod_cflags = '-DHAVE_ARG_TX_QUEUE'
 endif
 
-
-kni_mkfile = custom_target('rte_kni_makefile',
+kni_deps = []
+kni_deps += custom_target('rte_kni_makefile',
         output: 'Makefile',
         command: ['touch', '@OUTPUT@'])
 
@@ -22,12 +22,15 @@ kni_sources = files(
         'Kbuild',
 )
 
+foreach file : kni_sources
+  kni_deps += fs.copyfile(file)
+endforeach
+
 custom_target('rte_kni',
         input: kni_sources,
         output: 'rte_kni.ko',
         command: ['make', '-j4', '-C', kernel_build_dir,
             'M=' + meson.current_build_dir(),
-            'src=' + meson.current_source_dir(),
             ' '.join(['MODULE_CFLAGS=', kmod_cflags,'-include '])
             + dpdk_source_root + '/config/rte_config.h' +
             ' -I' + dpdk_source_root + '/lib/eal/include' +
@@ -35,7 +38,7 @@ custom_target('rte_kni',
             ' -I' + dpdk_build_root +
             ' -I' + meson.current_source_dir(),
             'modules'] + cross_args,
-        depends: kni_mkfile,
+        depends: kni_deps,
         install: install,
         install_dir: kernel_install_dir,
         build_by_default: get_option('enable_kmods'))
-- 
2.45.2

Reply via email to