[dpdk-dev] [PATCH 03/17] igb_uio: add igb_uio kmod to meson build
Luca Boccassi
luca.boccassi at gmail.com
Fri Sep 1 16:27:57 CEST 2017
On Fri, 2017-09-01 at 14:55 +0100, Bruce Richardson wrote:
> On Fri, Sep 01, 2017 at 02:32:52PM +0100, Luca Boccassi wrote:
> > On Fri, 2017-09-01 at 11:04 +0100, Bruce Richardson wrote:
> > > Support building igb_uio using meson and ninja. For this, we
> > > still
> > > use the
> > > kernel's kbuild system, by calling out to make, since it's safer
> > > and
> > > easier
> > > than trying to reproduce that in meson. A list of suitable file
> > > dependencies is given so that we have a reasonable chance of a
> > > rebuild when
> > > necessary.
> > >
> > > Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> > > ---
> > > lib/librte_eal/linuxapp/igb_uio/Kbuild | 1 +
> > > lib/librte_eal/linuxapp/igb_uio/meson.build | 47
> > > +++++++++++++++++++++++++++++
> > > lib/librte_eal/linuxapp/meson.build | 10 ++++++
> > > meson_options.txt | 2 ++
> > > 4 files changed, 60 insertions(+)
> > > create mode 100644 lib/librte_eal/linuxapp/igb_uio/Kbuild
> > > create mode 100644 lib/librte_eal/linuxapp/igb_uio/meson.build
> > >
> > > diff --git a/lib/librte_eal/linuxapp/igb_uio/Kbuild
> > > b/lib/librte_eal/linuxapp/igb_uio/Kbuild
> > > new file mode 100644
> > > index 000000000..98c98fe52
> > > --- /dev/null
> > > +++ b/lib/librte_eal/linuxapp/igb_uio/Kbuild
> > > @@ -0,0 +1 @@
> > > +obj-m := igb_uio.o
> > > diff --git a/lib/librte_eal/linuxapp/igb_uio/meson.build
> > > b/lib/librte_eal/linuxapp/igb_uio/meson.build
> > > new file mode 100644
> > > index 000000000..c046e1d66
> > > --- /dev/null
> > > +++ b/lib/librte_eal/linuxapp/igb_uio/meson.build
> > > @@ -0,0 +1,47 @@
> > > +# BSD LICENSE
> > > +#
> > > +# Copyright(c) 2017 Intel Corporation. All rights reserved.
> > > +# All rights reserved.
> > > +#
> > > +# Redistribution and use in source and binary forms, with or
> > > without
> > > +# modification, are permitted provided that the following
> > > conditions
> > > +# are met:
> > > +#
> > > +# * Redistributions of source code must retain the above
> > > copyright
> > > +# notice, this list of conditions and the following
> > > disclaimer.
> > > +# * Redistributions in binary form must reproduce the above
> > > copyright
> > > +# notice, this list of conditions and the following
> > > disclaimer
> > > in
> > > +# the documentation and/or other materials provided with
> > > the
> > > +# distribution.
> > > +# * Neither the name of Intel Corporation nor the names of
> > > its
> > > +# contributors may be used to endorse or promote products
> > > derived
> > > +# from this software without specific prior written
> > > permission.
> > > +#
> > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> > > CONTRIBUTORS
> > > +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
> > > BUT
> > > NOT
> > > +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
> > > FITNESS FOR
> > > +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> > > COPYRIGHT
> > > +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> > > INCIDENTAL,
> > > +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> > > NOT
> > > +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > > LOSS OF
> > > USE,
> > > +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
> > > AND
> > > ON ANY
> > > +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> > > OR
> > > TORT
> > > +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> > > OF
> > > THE USE
> > > +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
> > > DAMAGE.
> > > +
> > > +mkfile = custom_target('igb_uio_makefile',
> > > + output: 'Makefile',
> > > + command: ['touch', '@OUTPUT@'])
> > > +
> > > +custom_target('igb_uio',
> > > + input: ['igb_uio.c', 'Kbuild'],
> > > + output: 'igb_uio.ko',
> > > + command: ['make', '-C', kernel_dir,
> > > + 'M=' + meson.current_build_dir(),
> > > + 'src=' + meson.current_source_dir(),
> > > + 'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
> > > + '/../../common/include',
> > > + 'modules'],
> > > + depends: mkfile,
> > > + depend_files: [join_paths(kernel_dir, 'Kconfig')],
> >
> > Can this be made optional somehow?
> >
> > There's no build/Kconfig on Debian:
> >
> > $ ls /lib/modules/4.9.0-3-amd64/build
> > arch include Makefile Module.symvers scripts
> >
> > But the build works fine without that depend_files line.
> >
>
> Yep, definitely can be removed. I was just looking for some way to
> give
> meson the smarts to know when the kmod needed to be recompiled, and
> it
> seemed a likely candidate to watch for changes.
>
> /Bruce
Thanks. This is the content of build/ and the parent directory in
Debian, in case you want to try and find some common ground:
$ ls -la /lib/modules/4.9.0-3-amd64/
total 4120
drwxr-xr-x 4 root root 4096 Aug 15 11:13 .
drwxr-xr-x 4 root root 4096 Aug 25 17:55 ..
lrwxrwxrwx 1 root root 36 May 2 16:21 build -> /usr/src/linux-
headers-4.9.0-3-amd64
drwxr-xr-x 12 root root 4096 May 17 18:58 kernel
-rw-r--r-- 1 root root 1009588 Aug 15 11:13 modules.alias
-rw-r--r-- 1 root root 968576 Aug 15 11:13 modules.alias.bin
-rw-r--r-- 1 root root 4018 Aug 6 05:24 modules.builtin
-rw-r--r-- 1 root root 5327 Aug 15 11:13 modules.builtin.bin
-rw-r--r-- 1 root root 400037 Aug 15 11:13 modules.dep
-rw-r--r-- 1 root root 551081 Aug 15 11:13 modules.dep.bin
-rw-r--r-- 1 root root 402 Aug 15 11:13 modules.devname
-rw-r--r-- 1 root root 133512 Aug 6 05:24 modules.order
-rw-r--r-- 1 root root 523 Aug 15 11:13 modules.softdep
-rw-r--r-- 1 root root 495231 Aug 15 11:13 modules.symbols
-rw-r--r-- 1 root root 610575 Aug 15 11:13 modules.symbols.bin
lrwxrwxrwx 1 root root 37 May 2 16:21 source -> /usr/src/linux-
headers-4.9.0-3-common
drwxr-xr-x 3 root root 4096 May 17 18:58 updates
$ ls -la /lib/modules/4.9.0-3-amd64/build/
total 1460
drwxr-xr-x 4 root root 4096 Aug 7 10:27 .
drwxr-xr-x 9 root root 4096 Aug 25 17:55 ..
drwxr-xr-x 3 root root 4096 May 17 18:58 arch
-rw-r--r-- 1 root root 186386 Aug 6 05:24 .config
drwxr-xr-x 4 root root 4096 May 17 18:58 include
-rw-r--r-- 1 root root 242 Aug 6 05:24 .kernelvariables
-rw-r--r-- 1 root root 304 Aug 6 05:24 Makefile
-rw-r--r-- 1 root root 1278637 Aug 6 05:24 Module.symvers
lrwxrwxrwx 1 root root 34 May 2 16:21 scripts -> ../../lib/linux-
kbuild-4.9/scripts
--
Kind regards,
Luca Boccassi
More information about the dev
mailing list