[Buildroot] [PATCH v3] package/iqvlinux: new package
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Mon Oct 12 20:44:11 UTC 2015
Hello,
On Sat, 10 Oct 2015 17:04:57 +0200, Yann E. MORIN wrote:
> > diff --git a/package/iqvlinux/Config.in b/package/iqvlinux/Config.in
> > new file mode 100644
> > index 0000000..275c67e
> > --- /dev/null
> > +++ b/package/iqvlinux/Config.in
> > @@ -0,0 +1,18 @@
> > +config BR2_PACKAGE_IQVLINUX
> > + bool "iqvlinux"
> > + depends on BR2_LINUX_KERNEL
> > + help
> > + Intel Ethernet Adapter Debug Driver for Linux (iqvlinux),
> > + which supports kernel versions 2.6.x up through 4.0.x.
>
> What about 4.1+ ?
>
> Should we do a version-check at configure time, or is there such a check
> already done by the package itself?
I think we don't really care. There are lots of other kernel modules
or Linux kernel extensions (Xenomai, RTAI) for which we don't do such
version checks.
> > +IQVLINUX_MODULE_SUBDIRS = src/linux/driver
> > +
> > +ifeq ($(BR2_PACKAGE_IQVLINUX),y)
> > +define IQVLINUX_PCI_CHECK
> > + @if ! grep -Fqx 'CONFIG_PCI=y' $(LINUX_DIR)/.config; then \
> > + echo "ERROR: Enable CONFIG_PCI in the linux kernel config." 1>&2 ; \
> > + exit 1; \
> > + fi
> > +endef
> > +
> > +# Check if PCI is enabled in the Linux kernel build by Buildroot.
> > +LINUX_POST_CONFIGURE_HOOKS += IQVLINUX_PCI_CHECK
> > +endif
>
> I really do not like that a package meddles in the affairs of another
> package, like setting hooks for it.
>
> I'd rather we add a variable that packages could set to require specific
> kernel config options, something like:
>
> IQVLINUX_LINUX_NEEDS_CONFIG_OPTS = CONFIG_PCI
>
> Then in package/pkg-generic, in the inner-generic-package macro:
>
> LINUX_NEEDS_CONFIG_OPTS += $$($(2)_NEEDS_LINUX_CONFIG)
>
> And finally in linux/linux.mk:
>
> define LINUX_CHECK_CONFIG_OPTS
> $(foreach cfg,$(strip $(LINUX_NEEDS_CONFIG_OPTS)),\
> if ! grep -E '^$(cfg)=y$$' $(@D)/.config >/dev/null; then \
> printf "ERROR: Enable %s in your linux kernel config." "$(cfg)"; \
> exit 1; \
> fi;)
> endef
> LINUX_POST_CONFIGURE_HOOKS += LINUX_CHECK_CONFIG_OPTS
I agree on the principle, but I think we should rather handle that like
we do for other options: enable automatically the needed option.
Remember how someone proposed to check for CONFIG_MODULES=y and error
out if not available? Instead, you implemented
b7c32c98bc810b88e0391117f225658f82b44995.
So a little bit in the direction of what you proposed, what about
refactoring the LINUX_NEEDS_MODULES mechanism into a more generic
mechanism that allows package to express which kernel option(s) they
need, and automatically enable such options in linux/linux.mk when
configuring the kernel.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the buildroot
mailing list