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 2 of 2 v3] infra/pkg-kconfig: incorporate oldconfig call to avoid endless rebuilds
Date: Tue, 5 Aug 2014 21:27:15 +0200	[thread overview]
Message-ID: <20140805192715.GC4268@free.fr> (raw)
In-Reply-To: <707fc324a92e62b98ca1.1407235013@localhost>

Thomas?, All,

On 2014-08-05 12:36 +0200, Thomas De Schampheleire spake thusly:
> The configure step of the busybox package performs 'make oldconfig', which
> causes the .config file to be updated. Thus, the .config file is more recent
> than our stamp file .stamp_kconfig_fixup_done. On a subsequent build, our
> dependency rules would kick in, and run the config fixup again, thus
> kicking in the package's configure, build and install steps yet once
> more, that, ad infinitum.
> 
> One solution is to modify kconfig-package to introduce an explicit touch of
> the .kconfig_fixup_config_done stamp file, as post-configure hook.
> 
> Another solution, implemented by this patch, is to move the oldconfig call
> from the package's .mk file to the kconfig-package infrastructure and make
> sure it is done as part of the fixup commands. This way, the stamp file will
> only be touched once, after the full fixup (including oldconfig) and no
> endless rebuilds will occur.
> 
> Reported-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

[tested with running multiple 'make' in sequence; tested that
 busybox-menuconfig still forces a fixup and a rebuild]
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
> v3: implement alternative implementation
> 
>  package/busybox/busybox.mk |  2 --
>  package/pkg-kconfig.mk     |  9 ++-------
>  package/uclibc/uclibc.mk   |  6 ------
>  3 files changed, 2 insertions(+), 15 deletions(-)
> 
> diff -r f81734945d5b -r 707fc324a92e package/busybox/busybox.mk
> --- a/package/busybox/busybox.mk	Tue Aug 05 00:06:57 2014 +0200
> +++ b/package/busybox/busybox.mk	Tue Aug 05 11:39:06 2014 +0200
> @@ -205,8 +205,6 @@
>  endef
>  
>  define BUSYBOX_CONFIGURE_CMDS
> -	@yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \
> -		-C $(@D) oldconfig
>  	$(BUSYBOX_NOCLOBBER_INSTALL)
>  endef
>  
> diff -r f81734945d5b -r 707fc324a92e package/pkg-kconfig.mk
> --- a/package/pkg-kconfig.mk	Tue Aug 05 00:06:57 2014 +0200
> +++ b/package/pkg-kconfig.mk	Tue Aug 05 11:39:06 2014 +0200
> @@ -50,6 +50,8 @@
>  # The exact rules are specified by the package .mk file.
>  $$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config
>  	$$($(2)_KCONFIG_FIXUP_CMDS)
> +	@yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
> +		$$($(2)_KCONFIG_OPT) oldconfig
>  	$$(Q)touch $$@
>  
>  # Before running configure, the configuration file should be present and fixed
> diff -r f81734945d5b -r 707fc324a92e package/uclibc/uclibc.mk
> --- a/package/uclibc/uclibc.mk	Tue Aug 05 00:06:57 2014 +0200
> +++ b/package/uclibc/uclibc.mk	Tue Aug 05 11:39:06 2014 +0200
> @@ -431,12 +431,6 @@
>  	$(UCLIBC_LOCALE_CONFIG)
>  	$(UCLIBC_WCHAR_CONFIG)
>  	$(UCLIBC_STRIP_CONFIG)
> -	yes "" | $(MAKE1) -C $(@D) \
> -		$(UCLIBC_MAKE_FLAGS) \
> -		PREFIX=$(STAGING_DIR) \
> -		DEVEL_PREFIX=/usr/ \
> -		RUNTIME_PREFIX=$(STAGING_DIR) \
> -		oldconfig
>  endef
>  
>  define UCLIBC_CONFIGURE_CMDS

-- 
.-----------------.--------------------.------------------.--------------------.
|  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:[~2014-08-05 19:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05 10:36 [Buildroot] [PATCH 0 of 2 v3] Fix pkg-kconfig infra Thomas De Schampheleire
2014-08-05 10:36 ` [Buildroot] [PATCH 1 of 2 v3] infra/pkg-kconfig: join comments to the related code-block Thomas De Schampheleire
2014-08-05 10:36 ` [Buildroot] [PATCH 2 of 2 v3] infra/pkg-kconfig: incorporate oldconfig call to avoid endless rebuilds Thomas De Schampheleire
2014-08-05 19:27   ` Yann E. MORIN [this message]
2014-08-05 19:37     ` Thomas De Schampheleire
2014-08-06 17:58 ` [Buildroot] [PATCH 0 of 2 v3] Fix pkg-kconfig infra 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=20140805192715.GC4268@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