[PATCH] build: try to get kernel version from kernel source
Bruce Richardson
bruce.richardson at intel.com
Mon Feb 28 19:11:41 CET 2022
On Sat, Feb 26, 2022 at 10:40:45PM +0100, Ferdinand Thiessen wrote:
> When building the kernel modules, try to get the kernel
> version from the kernel sources first. This fixes the
> kernel modules installation directory if the target kernel
> version differs from the host kernel version, like for
> CI build or when packaging for linux distributions.
>
> Signed-off-by: Ferdinand Thiessen <rpm at fthiessen.de>
> ---
On initial review I don't see any problems with the overall approach taken
by this patch, but I think others more familiar with kernel build paths
could do with reviewing it too. One small comment inline below.
/Bruce
> kernel/linux/meson.build | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build
> index d8fb20c1c3..78f28ffb0c 100644
> --- a/kernel/linux/meson.build
> +++ b/kernel/linux/meson.build
> @@ -10,17 +10,23 @@ 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()
> + # native target build
> + kernel_version = run_command('uname', '-r').stdout().strip()
These two lines can be dropped from the patch, I think. The comment change
doesn't appear significant, and we definitely want to keep the "check:
true" in the run_command call to avoid meson warnings.
> + 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
> - if kernel_source_dir == ''
> - # use default path for native builds
> - kernel_source_dir = '/lib/modules/' + kernel_version + '/source'
> - endif
>
> # test running make in kernel directory, using "make kernelversion"
> make_returncode = run_command('make', '-sC', kernel_build_dir,
> --
> 2.35.1
>
More information about the dev
mailing list