* [PATCH] build: deprecate enable_kmods option
@ 2023-08-10 13:18 Bruce Richardson
2023-08-10 15:03 ` Stephen Hemminger
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Bruce Richardson @ 2023-08-10 13:18 UTC (permalink / raw)
To: dev; +Cc: david.marchand, stephen, Bruce Richardson
With the removal of the kni kernel driver, there are no longer any
Linux kernel modules in our repository, leaving only modules for FreeBSD
present. Since:
* BSD has no issues with out-of-tree modules and
* There are no in-tree equivalents for those modules in BSD
there is no point in building for BSD without those modules.
Therefore, we can remove the enable_kmods option, always building the
kmods for BSD.
We can also remove the infrastructure for Linux kmods too, since use of
out-of-tree modules for Linux is not something the DPDK project wants to
pursue in future.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 7 ++
kernel/linux/meson.build | 103 ---------------------------
kernel/meson.build | 4 +-
meson.build | 6 +-
meson_options.txt | 4 +-
5 files changed, 14 insertions(+), 110 deletions(-)
delete mode 100644 kernel/linux/meson.build
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 317875c505..d5d04ff8d7 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -21,6 +21,13 @@ Deprecation Notices
won't be possible anymore through the use of the ``disable_libs`` build option.
A new build option for deprecated libraries will be introduced instead.
+* build: The ``enable_kmods`` option is deprecated and will be removed in a future release.
+ Setting/clearing the option has no impact on the build.
+ Instead, kernel modules will be always built for OS's where out-of-tree kernel modules
+ are required for DPDK operation.
+ Currently, this means that modules will only be build for FreeBSD.
+ No modules are shipped with DPDK for either Linux or Windows.
+
* kvargs: The function ``rte_kvargs_process`` will get a new parameter
for returning key match count. It will ease handling of no-match case.
diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build
deleted file mode 100644
index 8d47074621..0000000000
--- a/kernel/linux/meson.build
+++ /dev/null
@@ -1,103 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-subdirs = []
-
-kernel_build_dir = get_option('kernel_dir')
-kernel_source_dir = get_option('kernel_dir')
-kernel_install_dir = ''
-install = not meson.is_cross_build()
-cross_args = []
-
-if not meson.is_cross_build()
- # native build
- kernel_version = run_command('uname', '-r', check: true).stdout().strip()
- if kernel_source_dir != ''
- # Try kernel release from sources first
- r = run_command('make', '-s', '-C', kernel_source_dir, 'kernelrelease', check: false)
- if r.returncode() == 0
- kernel_version = r.stdout().strip()
- endif
- else
- # use default path for native builds
- kernel_source_dir = '/lib/modules/' + kernel_version + '/source'
- endif
- kernel_install_dir = '/lib/modules/' + kernel_version + '/extra/dpdk'
- if kernel_build_dir == ''
- # use default path for native builds
- kernel_build_dir = '/lib/modules/' + kernel_version + '/build'
- endif
-
- # test running make in kernel directory, using "make kernelversion"
- make_returncode = run_command('make', '-sC', kernel_build_dir,
- 'kernelversion', check: true).returncode()
- if make_returncode != 0
- # backward compatibility:
- # the headers could still be in the 'build' subdir
- if not kernel_build_dir.endswith('build') and not kernel_build_dir.endswith('build/')
- kernel_build_dir = join_paths(kernel_build_dir, 'build')
- make_returncode = run_command('make', '-sC', kernel_build_dir,
- 'kernelversion', check: true).returncode()
- endif
- endif
-
- if make_returncode != 0
- error('Cannot compile kernel modules as requested - are kernel headers installed?')
- endif
-
- # DO ACTUAL MODULE BUILDING
- foreach d:subdirs
- subdir(d)
- endforeach
-
- subdir_done()
-endif
-
-# cross build
-# if we are cross-compiling we need kernel_build_dir specified
-if kernel_build_dir == ''
- error('Need "kernel_dir" option for kmod compilation when cross-compiling')
-endif
-cross_compiler = find_program('c').path()
-if cross_compiler.endswith('gcc')
- cross_prefix = run_command([py3, '-c', 'print("' + cross_compiler + '"[:-3])'],
- check: true).stdout().strip()
-elif cross_compiler.endswith('clang')
- cross_prefix = ''
- found_target = false
- # search for '-target' and use the arg that follows
- # (i.e. the value of '-target') as cross_prefix
- foreach cross_c_arg : meson.get_cross_property('c_args')
- if found_target and cross_prefix == ''
- cross_prefix = cross_c_arg
- endif
- if cross_c_arg == '-target'
- found_target = true
- endif
- endforeach
- if cross_prefix == ''
- error('Did not find -target and its value in c_args in input cross-file.')
- endif
- linker = 'lld'
- foreach cross_c_link_arg : meson.get_cross_property('c_link_args')
- if cross_c_link_arg.startswith('-fuse-ld')
- linker = cross_c_link_arg.split('=')[1]
- endif
- endforeach
- cross_args += ['CC=@0@'.format(cross_compiler), 'LD=ld.@0@'.format(linker)]
-else
- error('Unsupported cross compiler: @0@'.format(cross_compiler))
-endif
-
-cross_arch = host_machine.cpu_family()
-if host_machine.cpu_family() == 'aarch64'
- cross_arch = 'arm64'
-endif
-
-cross_args += ['ARCH=@0@'.format(cross_arch),
- 'CROSS_COMPILE=@0@'.format(cross_prefix)]
-
-# DO ACTUAL MODULE BUILDING
-foreach d:subdirs
- subdir(d)
-endforeach
diff --git a/kernel/meson.build b/kernel/meson.build
index b247e2df42..417735b010 100644
--- a/kernel/meson.build
+++ b/kernel/meson.build
@@ -1,4 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
-subdir(exec_env)
+if is_freebsd
+ subdir(exec_env)
+endif
diff --git a/meson.build b/meson.build
index 70b54f0c98..edfdc7f276 100644
--- a/meson.build
+++ b/meson.build
@@ -94,10 +94,8 @@ install_subdir('examples',
install_dir: get_option('datadir') + '/dpdk',
exclude_files: ex_file_excludes)
-# build kernel modules if enabled
-if get_option('enable_kmods')
- subdir('kernel')
-endif
+# build kernel modules
+subdir('kernel')
# check header includes if requested
if get_option('check_includes')
diff --git a/meson_options.txt b/meson_options.txt
index 621e1ca9ba..f830856158 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -22,8 +22,8 @@ option('enable_drivers', type: 'string', value: '', description:
'Comma-separated list of drivers to build. If unspecified, build all drivers.')
option('enable_driver_sdk', type: 'boolean', value: false, description:
'Install headers to build drivers.')
-option('enable_kmods', type: 'boolean', value: false, description:
- 'build kernel modules')
+option('enable_kmods', type: 'boolean', value: true, description:
+ '[Deprecated - will be removed in future release] build kernel modules')
option('examples', type: 'string', value: '', description:
'Comma-separated list of examples to build by default')
option('ibverbs_link', type: 'combo', choices : ['static', 'shared', 'dlopen'], value: 'shared', description:
--
2.39.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] build: deprecate enable_kmods option
2023-08-10 13:18 [PATCH] build: deprecate enable_kmods option Bruce Richardson
@ 2023-08-10 15:03 ` Stephen Hemminger
2023-08-10 15:44 ` Morten Brørup
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2023-08-10 15:03 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, david.marchand
On Thu, 10 Aug 2023 14:18:09 +0100
Bruce Richardson <bruce.richardson@intel.com> wrote:
> With the removal of the kni kernel driver, there are no longer any
> Linux kernel modules in our repository, leaving only modules for FreeBSD
> present. Since:
>
> * BSD has no issues with out-of-tree modules and
> * There are no in-tree equivalents for those modules in BSD
>
> there is no point in building for BSD without those modules.
>
> Therefore, we can remove the enable_kmods option, always building the
> kmods for BSD.
>
> We can also remove the infrastructure for Linux kmods too, since use of
> out-of-tree modules for Linux is not something the DPDK project wants to
> pursue in future.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH] build: deprecate enable_kmods option
2023-08-10 13:18 [PATCH] build: deprecate enable_kmods option Bruce Richardson
2023-08-10 15:03 ` Stephen Hemminger
@ 2023-08-10 15:44 ` Morten Brørup
2023-08-29 9:30 ` Thomas Monjalon
2023-10-06 9:53 ` David Marchand
3 siblings, 0 replies; 5+ messages in thread
From: Morten Brørup @ 2023-08-10 15:44 UTC (permalink / raw)
To: Bruce Richardson, dev; +Cc: david.marchand, stephen
> From: Bruce Richardson [mailto:bruce.richardson@intel.com]
> Sent: Thursday, 10 August 2023 15.18
>
> With the removal of the kni kernel driver, there are no longer any
> Linux kernel modules in our repository, leaving only modules for FreeBSD
> present. Since:
>
> * BSD has no issues with out-of-tree modules and
> * There are no in-tree equivalents for those modules in BSD
>
> there is no point in building for BSD without those modules.
>
> Therefore, we can remove the enable_kmods option, always building the
> kmods for BSD.
>
> We can also remove the infrastructure for Linux kmods too, since use of
> out-of-tree modules for Linux is not something the DPDK project wants to
> pursue in future.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
Acked-by: Morten Brørup <mb@smartsharesystems.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] build: deprecate enable_kmods option
2023-08-10 13:18 [PATCH] build: deprecate enable_kmods option Bruce Richardson
2023-08-10 15:03 ` Stephen Hemminger
2023-08-10 15:44 ` Morten Brørup
@ 2023-08-29 9:30 ` Thomas Monjalon
2023-10-06 9:53 ` David Marchand
3 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2023-08-29 9:30 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, david.marchand, stephen
jeudi 10 août 2023, Bruce Richardson:
> With the removal of the kni kernel driver, there are no longer any
> Linux kernel modules in our repository, leaving only modules for FreeBSD
> present. Since:
>
> * BSD has no issues with out-of-tree modules and
> * There are no in-tree equivalents for those modules in BSD
>
> there is no point in building for BSD without those modules.
>
> Therefore, we can remove the enable_kmods option, always building the
> kmods for BSD.
>
> We can also remove the infrastructure for Linux kmods too, since use of
> out-of-tree modules for Linux is not something the DPDK project wants to
> pursue in future.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] build: deprecate enable_kmods option
2023-08-10 13:18 [PATCH] build: deprecate enable_kmods option Bruce Richardson
` (2 preceding siblings ...)
2023-08-29 9:30 ` Thomas Monjalon
@ 2023-10-06 9:53 ` David Marchand
3 siblings, 0 replies; 5+ messages in thread
From: David Marchand @ 2023-10-06 9:53 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, stephen
On Thu, Aug 10, 2023 at 3:29 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> With the removal of the kni kernel driver, there are no longer any
> Linux kernel modules in our repository, leaving only modules for FreeBSD
> present. Since:
>
> * BSD has no issues with out-of-tree modules and
> * There are no in-tree equivalents for those modules in BSD
>
> there is no point in building for BSD without those modules.
>
> Therefore, we can remove the enable_kmods option, always building the
> kmods for BSD.
>
> We can also remove the infrastructure for Linux kmods too, since use of
> out-of-tree modules for Linux is not something the DPDK project wants to
> pursue in future.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
> Acked-by: Morten Brørup <mb@smartsharesystems.com>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
Applied, thanks Bruce.
--
David Marchand
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-10-06 9:54 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-10 13:18 [PATCH] build: deprecate enable_kmods option Bruce Richardson
2023-08-10 15:03 ` Stephen Hemminger
2023-08-10 15:44 ` Morten Brørup
2023-08-29 9:30 ` Thomas Monjalon
2023-10-06 9:53 ` David Marchand
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).