From patchwork Thu Mar 31 08:57:53 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Romain Izard X-Patchwork-Id: 604010 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ozlabs.org (Postfix) with ESMTP id 3qbJMJ43CBz9sDC for ; Thu, 31 Mar 2016 19:58:20 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=qzJxJi4r; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 59C40953D5; Thu, 31 Mar 2016 08:58:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r+qpDUjQ-4Nr; Thu, 31 Mar 2016 08:58:18 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 85E7E95751; Thu, 31 Mar 2016 08:58:18 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id AF77C1C0E44 for ; Thu, 31 Mar 2016 08:58:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id A95678C581 for ; Thu, 31 Mar 2016 08:58:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QxP6IPB3KmRE for ; Thu, 31 Mar 2016 08:58:11 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by whitealder.osuosl.org (Postfix) with ESMTPS id C462B8916B for ; Thu, 31 Mar 2016 08:58:10 +0000 (UTC) Received: by mail-wm0-f67.google.com with SMTP id p65so21667108wmp.1 for ; Thu, 31 Mar 2016 01:58:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qtoc6B9Wmlu0EBWV4+yfLcyotAnP4u59erBzxxD99Fo=; b=qzJxJi4rcRpytoclGK//WMs6ASZr3WWhuncjzEOUoMcACn61TxtPuWdefXH2G8HvQe jwHNhaI7p+ElTObUbbIcTr3yeJmb+RRGMhTo15bEuAOO2S6ncqxjj/8BGCL90/m29wqD gMpBPcKjyDwbMueuOJGitxLspeNw1NOBcsuGBzmnztycAOvbV4aP4OX8w1tlXWz+y8Bl 6UKdlFGKuM00eXv6z209zxqi2hVPbVjDCEN69gkuxe/kuQn9uoDqmRKSZt0MJnNFU3Yr soX0wabbNY7C0s/VEOIOMFdzcCIP7mfevK6MCFm6XVDXuqDtpcole2sTRx16kqnGy0M8 jcfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qtoc6B9Wmlu0EBWV4+yfLcyotAnP4u59erBzxxD99Fo=; b=YWnVFpERw/hyEYvddcYDtQqbPM9chk2V29VuzuNy9khlA8tLaZBPGPsLgNF/bbQIDy hFsyCsdvqDZUio26juNhgN3RieQqr6w7cA2t1xKhCyzjFXmdVlvtUMubrt0yCFetgHe1 Oo2d+6g1P4HfFD9pjFSs7h2G49qFTNTn/34fBW5CwpR5rB/PxZMWYHn2S2I+TGcRfIGI 5hvZiwE6ybvzGSkNP3Sbvy7KZ+0/Yqd0L+lhbEaQPO0wpPrFAq2PLsHwjIk4f+4c7QZt TgDotCBg04nX6IQDu2COK3SmXEErgGXHdxzTtbVwZdrQ5FeggajtFg7pmUCzmfFvC7oL pEbQ== X-Gm-Message-State: AD7BkJI0oKd4IByGBulzTQ0Sx0LcaioiJ30xaJi6hBmMW+EBOgiVomfubYbGMgLR6j4d6w== X-Received: by 10.194.23.37 with SMTP id j5mr13749225wjf.171.1459414689410; Thu, 31 Mar 2016 01:58:09 -0700 (PDT) Received: from localhost.localdomain (146.187.3.109.rev.sfr.net. [109.3.187.146]) by smtp.gmail.com with ESMTPSA id 20sm892789wmv.4.2016.03.31.01.58.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 31 Mar 2016 01:58:08 -0700 (PDT) From: Romain Izard To: buildroot@buildroot.org Date: Thu, 31 Mar 2016 10:57:53 +0200 Message-Id: <1459414674-30753-4-git-send-email-romain.izard.pro@gmail.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1459414674-30753-1-git-send-email-romain.izard.pro@gmail.com> References: <1459414674-30753-1-git-send-email-romain.izard.pro@gmail.com> Cc: Thomas Petazzoni , Romain Izard , "Yann E. MORIN" Subject: [Buildroot] [PATCH v3 3/3] core/pkg-kconfig: Use olddefconfig when possible X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Using 'yes "" | make oldconfig' to regenerate a .config file from an existing defconfig does not work reliably in all cases. Specifically, it does not work well with tristate choice entries. The correct way to do it is to use 'make olddefconfig', but this target is not supported in projects that use an old version of kconfig. As most projects do not use tristate entries, there is no need for them to upgrade. 'oldnoconfig' is an alias for 'olddefconfig', but it also is the only name for this target between Linux versions 2.6.36 and 3.6. Try to use 'oldnoconfig' by default, using 'oldconfig' as a fallback Signed-off-by: Romain Izard --- package/pkg-kconfig.mk | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk index 4033915..e04cfd5 100644 --- a/package/pkg-kconfig.mk +++ b/package/pkg-kconfig.mk @@ -60,18 +60,28 @@ $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES): | $(1)-patch $(2)_KCONFIG_MAKE = \ $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) $$($(2)_KCONFIG_OPTS) +# The correct way to regenerate a .config file is to use 'make olddefconfig'. +# For historical reasons, the target name is 'oldnoconfig' between Linux kernel +# versions 2.6.36 and 3.6, and remains as an alias in later versions. +# In older versions, and in some other projects that use kconfig, the target is +# not supported at all, and we use 'yes "" | make oldconfig' as a fallback +# only, as this can fail in complex cases. +define $(2)_REGEN_DOT_CONFIG + $$(Q)$$($(2)_KCONFIG_MAKE) oldnoconfig || \ + (yes "" | $$($(2)_KCONFIG_MAKE) oldconfig) +endef + # The specified source configuration file and any additional configuration file # fragments are merged together to .config, after the package has been patched. # Since the file could be a defconfig file it needs to be expanded to a -# full .config first. We use 'make oldconfig' because this can be safely -# done even when the package does not support defconfigs. +# full .config first. $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES) $$(Q)$$(if $$($(2)_KCONFIG_DEFCONFIG), \ $$($(2)_KCONFIG_MAKE) $$($(2)_KCONFIG_DEFCONFIG), \ cp $$($(2)_KCONFIG_FILE) $$(@)) $$(Q)support/kconfig/merge_config.sh -m -O $$(@D) \ $$(@) $$($(2)_KCONFIG_FRAGMENT_FILES) - $$(Q)yes "" | $$($(2)_KCONFIG_MAKE) oldconfig + $$($(2)_REGEN_DOT_CONFIG) # 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 @@ -82,7 +92,7 @@ $$($(2)_DIR)/.config: | $(1)-patch # The exact rules are specified by the package .mk file. define $(2)_FIXUP_DOT_CONFIG $$($(2)_KCONFIG_FIXUP_CMDS) - $$(Q)yes "" | $$($(2)_KCONFIG_MAKE) oldconfig + $$($(2)_REGEN_DOT_CONFIG) $$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done endef