From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Tue, 5 Aug 2014 21:27:15 +0200 Subject: [Buildroot] [PATCH 2 of 2 v3] infra/pkg-kconfig: incorporate oldconfig call to avoid endless rebuilds In-Reply-To: <707fc324a92e62b98ca1.1407235013@localhost> References: <707fc324a92e62b98ca1.1407235013@localhost> Message-ID: <20140805192715.GC4268@free.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net 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" > Suggested-by: "Yann E. MORIN" > Signed-off-by: Thomas De Schampheleire [tested with running multiple 'make' in sequence; tested that busybox-menuconfig still forces a fixup and a rebuild] Tested-by: "Yann E. MORIN" Acked-by: "Yann E. MORIN" 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. | '------------------------------^-------^------------------^--------------------'