Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] pkg-kconfig: add missing -patch dependency for defconfig
Date: Mon, 25 Jan 2016 23:40:22 +0100	[thread overview]
Message-ID: <20160125224022.GO3386@free.fr> (raw)
In-Reply-To: <1453676322-1906-1-git-send-email-arnout@mind.be>

Arnout, All,

On 2016-01-24 23:58 +0100, Arnout Vandecappelle (Essensium/Mind) spake thusly:
> Since the introduction of _KCONFIG_DEFCONFIG in 8ef62b99, the package's
> .config file no longer depends on anything (unless a fragment is
> defined). Therefore, there is no dependency anymore between .config
> and <pkg>-patch. Thus, it is possible that the .config file is
> attempted to be built before the package is extracted and patched.
> Usually this works out OK because <pkg>-patch will always be done
> before <pkg>-configure, but it will fail when the user calls
> <pkg>-menuconfig explicitly. It will also fail when we enable
> top-level parallel build.
> 
> To solve this, just add an explicit order-only dependency on
> <pkg>-patch. It really is only necessary when _KCONFIG_DEFCONFIG is
> defined and _KCONFIG_FRAGMENT_FILES is not, but it doesn't hurt to
> add it unconditionally.
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> Reported-by: FrAnKenStEiN MC <chfakht@gmail.com>
> ---
>  package/pkg-kconfig.mk | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
> index eaee572..90f3f9f 100644
> --- a/package/pkg-kconfig.mk
> +++ b/package/pkg-kconfig.mk
> @@ -72,6 +72,11 @@ $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
>  	$$(Q)yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
>  		$$($(2)_KCONFIG_OPTS) oldconfig
>  
> +# If _KCONFIG_FILE or _KCONFIG_FRAGMENT_FILES exists, this dependency is
> +# already implied, but if we only have a _KCONFIG_DEFCONFIG we have to add
> +# it explicitly. It doesn't hurt to always have it though.
> +$$($(2)_DIR)/.config: | $(1)-patch

I don't understand why this is needed.

On line 65, we have;
    $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)

and on line 52;
    $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES): | $(1)-patch

So, unless I'm missing something, $$($(2)_DIR)/.config already has a
dependency on $(1)-patch via $$($(2)_KCONFIG_FILE)

Oh, damn, I see it now... Grr...

OK, so what made me understand is the comment in the code:

   [...] if we only have a _KCONFIG_DEFCONFIG [...]

Ok, so it goes thusly:

  - if using a defconfig file, we do not have a $(2)_KCONFIG_FILE

  - if at the same time, we have no fragments, we have no rule from
    .config to $(1)-patch.

OK, fine by me. Thanks!

Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

>  # In order to get a usable, consistent configuration, some fixup may be needed.
>  # The exact rules are specified by the package .mk file.
>  define $(2)_FIXUP_DOT_CONFIG
> -- 
> 2.7.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2016-01-25 22:40 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-24 22:58 [Buildroot] [PATCH] pkg-kconfig: add missing -patch dependency for defconfig Arnout Vandecappelle
2016-01-25 22:40 ` Yann E. MORIN [this message]
2016-01-26 20:28 ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160125224022.GO3386@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox