Re: [RFC] mk: filter duplicate configuration entries
From: Christian Ehrhardt <hidden>
Date: 2016-06-28 16:38:36
On Tue, Jun 28, 2016 at 6:11 PM, Ferruh Yigit [off-list ref] wrote:
On 6/13/2016 4:10 PM, Christian Ehrhardt wrote:quoted
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 <redacted> --- 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)/MakefileNot sure if this should go under this rule, or "$(RTE_OUTPUT)/.config:" and should work with ".config_tmp".quoted
$(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.
quoted
+ if [ $$(grep "^$${config}=" $(RTE_OUTPUT)/.config | wc -l)-gt 1 ]; then \ "grep -c" can be used instead of "grep | wc -l"quoted
+ sed -i "0,/$${config}/{//d}"$(RTE_OUTPUT)/.config; \quoted
+ fi; \ + done @echo "Configuration done" endif