From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751180AbdHUDaw (ORCPT ); Sun, 20 Aug 2017 23:30:52 -0400 Received: from mail.cn.fujitsu.com ([183.91.158.132]:10478 "EHLO heian.cn.fujitsu.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750962AbdHUDau (ORCPT ); Sun, 20 Aug 2017 23:30:50 -0400 X-IronPort-AV: E=Sophos;i="5.41,407,1498492800"; d="scan'208";a="24135295" Subject: Re: special handle of scripts/kconfig/zconf.tab.o To: Masahiro Yamada , Sam Ravnborg References: <5992D4DF.2080405@cn.fujitsu.com> CC: Michal Marek , "linux-kernel@vger.kernel.org" , Linux Kbuild mailing list From: Cao jin Message-ID: <599A5542.9060509@cn.fujitsu.com> Date: Mon, 21 Aug 2017 11:36:34 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.167.226.69] X-yoursite-MailScanner-ID: 93A3447243AE.A607A X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: caoj.fnst@cn.fujitsu.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Thank you both for those valuable info. On 08/19/2017 08:42 PM, Masahiro Yamada wrote: > Hi. > (+CC Sam) > > 2017-08-15 20:02 GMT+09:00 Cao jin : >> Masahiro-san, >> >> I have a question about make *config. In scripts/kconfig/Makefile, there >> is following statement: >> >> $(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c >> >> and the $(obj)/zconf.{tab,hash,lex}.c match the rule in Makefile.lib: >> >> $(obj)/%: $(src)/%_shipped >> $(call cmd,shipped) >> >> and cmd_shipped just transform the _shipped file to .c via `cat`. >> >> And zconf.tab.c includes several *other* .c files which make the whole >> process a little obscure, because there are not corresponding .o files >> for the *other* .c files. >> >> My questions is: Does this special handling has other meanings that I >> may miss? Or just legacy. > > > >> Because a straightforward way in my mind would be: >> >> rename zconf.{tab,hash,lex}.c_shipped to zconf.{tab,hash,lex}.c, then >> has following in the Makefile >> >> common-objs := zconf.tab.o zconf.hash.o zconf.lex.o util.o etc... >> conf-objs := conf.o $(common-objs) >> > > > > Here, we have one more question. > > > Can we generate zconf.{tab,hash,lex}.c from zconf.{y,gperf,l} > instead of from *_shipped? > > This is also possible, technically. > But, I do not know if it is acceptable to have > more external tool dependencies. > (So, I sent RFC patches to hear more opinions.) > I think this is good for the new comers who don't know those tools before. When I come to here. I just noticed that kbuild will cat *_shipped file to the corresponding .c file, and miss the part that the .c file is actually created by the tools. And another new-comer friendly improvement may be something like: remove "include *.c" lines in zconf.y, and modify makefile like I said above. So I will not get confused when I see symbols within certain .c file is used while don't see the certain .o file. -- Sincerely, Cao jin