On Thu, Apr 19, 2018 at 03:46:14PM +0000, Hemant Agrawal wrote: > > -----Original Message----- > > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Bruce Richardson > > > > When cross-compiling, if no kernel_dir was specified, then the kernel > > modules > > were still being compiled for the build machine. Fix this by only building > > modules > > on cross-compile when we have a kernel_dir value set. > > > > Fixes: a52f4574f798 ("igb_uio: build with meson") > > > > Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> > > --- > > meson.build | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/meson.build b/meson.build > > index cc16595cb..9e3b44931 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -26,10 +26,14 @@ subdir('config') > > > > # build libs and drivers > > subdir('lib') > > -subdir('kernel') > > subdir('buildtools') > > subdir('drivers') > > > > +# build kernel modules if we have a kernel path, or we are not cross > > +compiling if get_option('kernel_dir') != '' or not meson.is_cross_build() > > + subdir('kernel') > > +endif > > [Hemant] actually kernel_dir may not be always available on host. > So unless kernel_dir is available - irrespective of host/cross - it > shall not try kernel compilation. >
Well, for many native builds the kernel directory can be computed by looking at `uname -r`, but which won't work for cross-compilation. Given that there is already an option to disable kernel module compilation completely, I think that the default for native builds should be try and build modules for the running kernel. However, we could certainly add in a check to see if the kernel sources are available, and optionally not build them in that case - i.e. convert the error due to non-existant kernel headers into a warning message. Do you think that might be a good compromise? /Bruce