From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Ehrhardt Subject: Re: [RFC] mk: filter duplicate configuration entries Date: Tue, 28 Jun 2016 18:38:16 +0200 Message-ID: References: <1465830632-25156-1-git-send-email-christian.ehrhardt@canonical.com> <5772A1C4.3030700@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: Thomas Monjalon , dev To: Ferruh Yigit , Christian Ehrhardt Return-path: Received: from mail-qk0-f175.google.com (mail-qk0-f175.google.com [209.85.220.175]) by dpdk.org (Postfix) with ESMTP id A6C4D2BD0 for ; Tue, 28 Jun 2016 18:38:36 +0200 (CEST) Received: by mail-qk0-f175.google.com with SMTP id q79so40008266qke.0 for ; Tue, 28 Jun 2016 09:38:36 -0700 (PDT) In-Reply-To: <5772A1C4.3030700@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Tue, Jun 28, 2016 at 6:11 PM, Ferruh Yigit wrote: > On 6/13/2016 4:10 PM, Christian Ehrhardt wrote: > > Due to the hierarchy and the demand to keep the base config shoing all > > options some options end up multiple times in the .config file. > > > > A suggested solution was to filter for duplicates at the end of the > > actual config step which is implemented here. > > > > Signed-off-by: Christian Ehrhardt > > --- > > mk/rte.sdkconfig.mk | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk > > index a3acfe6..734aa06 100644 > > --- a/mk/rte.sdkconfig.mk > > +++ b/mk/rte.sdkconfig.mk > > @@ -70,6 +70,11 @@ config: notemplate > > else > > config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile > Not sure if this should go under this rule, or "$(RTE_OUTPUT)/.config:" > and should work with ".config_tmp". > > > $(Q)$(MAKE) depdirs > > + tac $(RTE_OUTPUT)/.config | awk --field-separator '=' '!/^#/ > {print $$1}' | while read config; do \ > Why reversing file since already checking all lines one by one in > original file? > Hi, every other comment is ok I'll rebase and resubmit once I find some time again. But for this (tac) the reason is simple - to keep behaviour. Currently the last one wins. So if you have CONFIG_A=n CONFIG_A=y Essentially you have CONFIG_A=y By the tac and keeping the first occurrence we maintain behavior. It is interestingly hard to "keep the last occurrence" without such tricks, but I'm open to suggestions. > And instead of checking each line, it is possible to get list of > duplicates via "sort | uniq -d". > That would fail for the reasons outlined above. Although less important, file comments also tripled in final .config. > > > + if [ $$(grep "^$${config}=" $(RTE_OUTPUT)/.config | wc -l) > -gt 1 ]; then \ > "grep -c" can be used instead of "grep | wc -l" > > > + sed -i "0,/$${config}/{//d}" > $(RTE_OUTPUT)/.config; \ > > + fi; \ > > + done > > @echo "Configuration done" > > endif > > > > > >