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 <r...@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 >