From patchwork Thu Mar 31 08:57:54 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Romain Izard X-Patchwork-Id: 604011 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 3qbJMQ3Q5gz9snm for ; Thu, 31 Mar 2016 19:58:26 +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=WnRupcTh; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 86CC195742; Thu, 31 Mar 2016 08:58:23 +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 6cyi45Z2ount; Thu, 31 Mar 2016 08:58:23 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 64E4895755; Thu, 31 Mar 2016 08:58:22 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 2CC171C0E44 for ; Thu, 31 Mar 2016 08:58:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 237BB33942 for ; Thu, 31 Mar 2016 08:58:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OKgPbfdPM5+I for ; Thu, 31 Mar 2016 08:58:12 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by silver.osuosl.org (Postfix) with ESMTPS id F2E6D3375B for ; Thu, 31 Mar 2016 08:58:11 +0000 (UTC) Received: by mail-wm0-f68.google.com with SMTP id 20so21677324wmh.3 for ; Thu, 31 Mar 2016 01:58:11 -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=weFLCv8gxHjHmGzQ2bcm63OkYFcIX3ro7GDF/rAoRyE=; b=WnRupcTh6XjSqZezaw3WOfKNgtjtzXXP5DYQLDQwCoCiT4ANiRIxn4DrW1wkEKH9tM yuC1EL2K8wExK59/WwvPQySo8+hHmm/Ws/Cy1UZCb8f/rQ0TV01IO9Yf0bhh7Pr50qDB U+VoFOLj0HdR6HuQyVGUFLwsgWsnaS/7ZK1000d92ypFQs3MWxrUkUfpRkPvs5+1O2HO P4vlYcOm+T5zW1jcO+PSXRzvNSuVrIM9AyGyXlA15ojfxk8+NL5iVr8cUlFBndDifgOt xOG2F7p39Shy/THBSMmR5/CdFgCJXsASyX2AGSWch26vrCOYALRhdf6XN7YORAaHvOoi 2rZQ== 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=weFLCv8gxHjHmGzQ2bcm63OkYFcIX3ro7GDF/rAoRyE=; b=BMCBebw3o5ymaANSLSm7rxaI2x/xa3r3ICoNhJCKqJhleuBg3N5gjkqYSgfQApOnfb Ob4d4l8GyBrM2O0lhC7oAKizOmDgAivWp2gTEz+pNKuMC4HFFMK8uTx7Oy9EDfgAPt1j 9hWjeGd24Jfmopgw81V7hTK6KsGB0ekSf22wv5eQ3Fv6iaPv8Vox56D5li4xfgSaj6T9 cL2sydDIIh9ZH0nwE3BxomySLvrIwJizUpjh+i74bTgbzcfJp77/x9NBg62Pbh0KKwsn 8uTTb5txXbP1tjBGefyTlDVjt9tmlweZ55bL/1WvBohSyKYErKG3TkpuAyBnK6cP31FK YabA== X-Gm-Message-State: AD7BkJLztpqgeFP9B5ISfG96mb1coVtwErLsOQTptQmL9PUBCPIcAzt6ZBw0PvXIVndRlA== X-Received: by 10.194.82.199 with SMTP id k7mr13780702wjy.63.1459414690608; Thu, 31 Mar 2016 01:58:10 -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.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 31 Mar 2016 01:58:09 -0700 (PDT) From: Romain Izard To: buildroot@buildroot.org Date: Thu, 31 Mar 2016 10:57:54 +0200 Message-Id: <1459414674-30753-5-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 oldnoconfig 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 Reviewed-by: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Romain Izard --- Changelog: v1: new patch v2: Use oldnoconfig instead of olddefconfig Fix silent mode Change the pattern in both places where it is used Use a macro to avoid redundancy v3: Do not use $(call ...) Use the $(2)_KCONFIG_MAKE variable 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