From c0ae70df3514c696e31c2949fc9dab6bf699f616 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Thu, 3 Mar 2022 14:15:43 +0100 Subject: [PATCH] kernel/linux: get kernel version from kernel source 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 Acked-by: Bruce Richardson Tested-by: Ferruh Yigit --- kernel/linux/meson.build | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index d8fb20c1c3..16a0948994 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -12,15 +12,21 @@ 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 - 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.39.5