kni: fix build with Linux 6.10

Message ID 20240716084414.115852-1-jslaby@suse.cz (mailing list archive)
State New
Delegated to: Thomas Monjalon
Headers
Series kni: fix build with Linux 6.10 |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation warning apply patch failure
ci/Intel-compilation warning apply issues
ci/iol-testing warning apply patch failure

Commit Message

Jiri Slaby July 16, 2024, 8:44 a.m. UTC
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 <jslaby@suse.cz>
---
 kernel/linux/kni/meson.build | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
  

Comments

Thomas Monjalon July 18, 2024, 9:16 a.m. UTC | #1
Adding stable@dpdk.org and LTS maintainers as Cc.
It must be merged directly in LTS branches.


16/07/2024 10:44, Jiri Slaby:
> 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 <jslaby@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'))
  
Luca Boccassi July 18, 2024, 9:28 a.m. UTC | #2
Hi Jiri,

Please follow the process described in the "stable release" paragraph at:

https://core.dpdk.org/contribute/

ie, one patch per affected LTS branch must be prepared, tested and
sent individually, and then we'll apply it. Thanks.

On Thu, 18 Jul 2024 at 10:16, Thomas Monjalon <thomas@monjalon.net> wrote:
>
> Adding stable@dpdk.org and LTS maintainers as Cc.
> It must be merged directly in LTS branches.
>
>
> 16/07/2024 10:44, Jiri Slaby:
> > 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 <jslaby@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'))
>
>
>
>
  

Patch

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'))