On Fri, Jan 18, 2019 at 08:18:39PM +0000, Ian Abbott wrote:
> On 18/01/2019 17:37, Ian Abbott wrote:
> > On 13/12/2018 12:07, Ian Abbott wrote:
> > > If a local package "foo-mod" for a Linux kernel module is selected by a
> > > local tristate configuration option PTXCONF_FOO_MOD, then based on the
> > > template for Linux drivers, it would include the following in its
> > > foo-mod.make file:
> > > 
> > > ifdef PTXCONF_FOO_MOD
> > > $(STATEDIR)/kernel.targetinstall.post: $(STATEDIR)/foo-mod.targetinstall
> > > endif
> > > 
> > > However, this rule will be invoked even if the PTXCONF_FOO_MOD option
> > > has been configured with the tristate option 'm' and has not been
> > > changed to 'y' by a selected_collectionconfig.  This causes the Linux
> > > kernel module to be built and installed unintentionally.  To prevent
> > > that happening, the above lines in the foo-mod.make file can be changed
> > > as follows (using a conditional test suggested by Michael Olbrich):
> > > 
> > > ifneq ($(filter foo-mod,$(PTX_PACKAGES_SELECTED)),)
> > > $(STATEDIR)/kernel.targetinstall.post: $(STATEDIR)/foo-mod.targetinstall
> > > endif
> > > 
> > > This patch changes the template for Linux driver packages in accordance
> > > with the above change.
> > > 
> > > Signed-off-by: Ian Abbott <abbo...@mev.co.uk>
> > > Cc: Michael Olbrich <m.olbr...@pengutronix.de>
> > > ---
> > > v2: Changed the conditional test to that suggested by Michael Olbrich in
> > > Message-ID <20181212111846.zb3kxfs6jsc5r...@pengutronix.de> to avoid
> > > breaking the build if the package is configured using the tristate 'm'
> > > option and no collection is selected.
> > > 
> > >   rules/templates/template-src-linux-driver-make | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/rules/templates/template-src-linux-driver-make
> > > b/rules/templates/template-src-linux-driver-make
> > > index e06a22497..c13857924 100644
> > > --- a/rules/templates/template-src-linux-driver-make
> > > +++ b/rules/templates/template-src-linux-driver-make
> > > @@ -22,7 +22,7 @@ PACKAGES-$(PTXCONF_@PACKAGE@) += @package@
> > >   @PACKAGE@_DIR        := $(BUILDDIR)/$(@PACKAGE@)
> > >   @PACKAGE@_LICENSE    := unknown
> > > -ifdef PTXCONF_@PACKAGE@
> > > +ifneq ($(filter @package@,$(PTX_PACKAGES_SELECTED)),)
> > >   $(STATEDIR)/kernel.targetinstall.post:
> > > $(STATEDIR)/@package@.targetinstall
> > >   endif
> > > 
> > 
> > I know this is in 2019.01.0 now, but I don't think the new conditional
> > test for adding this kernel.targetinstall.post dependency is actually
> > working properly.  I've had a few `ptxdist go` commands running with the
> > -j N option, and quite often the kernel.targetinstall.post completes
> > before the @package@.targetinstall, meaning that the module does not get
> > installed to the
> > ${PTXDIST_PLATFORMDIR}/root/lib/modules/$UNAME_RELEASE/extra as it
> > should (where $UNAME_RELEASE is the kernel `uname -r` value).

Yes, this is broken. PTX_PACKAGES_SELECTED cannot be used here like this.
The expression is correct, but it only works like this in rules/post/
because it is evaluated immediately so PTX_PACKAGES_SELECTED is always
empty.

> > The conditional test from v1 of the patch:
> > 
> > ifdef PTXCONF_@PACKAGE@)
> > 
> > still works for me, but will break the build for other people.
> > 
> > I'll try and work out why the new conditional test isn't working for me
> > reliably (especially when building with parallel jobs), but I welcome
> > any suggestions to try and fix it properly.
> > 
> 
> The following conditional test seems to work, but it's quite ugly:
> 
> ifeq ($(and $(PTXCONF_@PACKAGE@),$(if
> $(PTX_COLLECTION),$(PTXCONF_@PACKAGE@),y)),y)

ifneq ($(filter $(if $(PTX_COLLECTION),y,y m),$(PTXCONF_@PACKAGE@)),)

This should work. I think the intention is a bit clearer like this.

Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to