From: Jiri Slaby Date: Tue, 16 Jul 2024 10:40:26 +0200 Subject: kni: fix build with Linux 6.10 Patch-mainline: submitted to dev@dpdk.org, <20240716084414.115852-1-jslaby@suse.cz> References: kernel 6.10 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=p5zSyADJw@mail.gmail.com/ Signed-off-by: Jiri Slaby --- 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