From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751264Ab0CAQ1h (ORCPT ); Mon, 1 Mar 2010 11:27:37 -0500 Received: from e2.ny.us.ibm.com ([32.97.182.142]:51917 "EHLO e2.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750808Ab0CAQ1g (ORCPT ); Mon, 1 Mar 2010 11:27:36 -0500 Date: Mon, 1 Mar 2010 08:27:33 -0800 From: "Paul E. McKenney" To: Geert Uytterhoeven Cc: Frans Pop , linux-kernel@vger.kernel.org, zippel@linux-m68k.org, mingo@elte.hu, akpm@linux-foundation.org, torvalds@linux-foundation.org Subject: Re: [PATCH RFC] kconfig: place git SHA1 in .config output if in git tree Message-ID: <20100301162733.GB6758@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <20100301042249.GA12289@linux.vnet.ibm.com> <201003011042.48923.elendil@planet.nl> <10f740e81003010210k3de9851fuf9f67f55b08af4f1@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <10f740e81003010210k3de9851fuf9f67f55b08af4f1@mail.gmail.com> User-Agent: Mutt/1.5.15+20070412 (2007-04-11) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 01, 2010 at 11:10:54AM +0100, Geert Uytterhoeven wrote: > On Mon, Mar 1, 2010 at 10:42, Frans Pop wrote: > > Paul E. McKenney wrote: > >> This patch appends the SHA1 hash of the current git tree to the > >> kernel version line, or "[Not git tree]" if run from a non-git tree. > >> Uses "git log" to print the hash. > > > > Nice idea. > > > > However, I gave it a try and got: > > # Linux kernel version: 2.6.34-rc0 [Not git tree] > > > > Even though I *am* building from a git tree. It does not seem to work when > > building with KBUILD_OUTPUT set or when using 'O='. > > > > IMO that makes the practical value of the patch very limited. I'm afraid > > because of this it will increase confusion rather than add information. > > scripts/setlocalversion handles this case correctly, so you may want to > look there... Very nice, thank you!!! Here is the updated patch. Thoughts? Thanx, Paul ------------------------------------------------------------------------ [PATCH RFC] kconfig: place localversion string in .config output This patch appends the localversion string to the Linux kernel version. For example, in a git tree with uncommitted changes, the .config file might start as follows: # Automatically generated make config: don't edit # Linux kernel version: 2.6.33-01836-g90a6501-dirty # Mon Mar 1 08:21:49 2010 This patch uses the scripts/setlocalversion output, so similar output is also generated for svn and mercurial. Suggested-by: Ingo Molnar Suggested-by: Geert Uytterhoeven Cc: Roman Zippel Cc: Frans Pop Signed-off-by: Paul E. McKenney --- confdata.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index c4dec80..fba6b07 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -399,10 +399,11 @@ int conf_read(const char *name) int conf_write(const char *name) { FILE *out; + FILE *slv; struct symbol *sym; struct menu *menu; const char *basename; - char dirname[128], tmpname[128], newname[128]; + char dirname[128], tmpname[128], newname[128], localversion[128]; int type, l; const char *str; time_t now; @@ -450,12 +451,20 @@ int conf_write(const char *name) if (env && *env) use_timestamp = 0; + localversion[0] = '\0'; + slv = popen("scripts/setlocalversion 2> /dev/null", "r"); + if (slv != NULL) { + fscanf(slv, " %127s ", localversion); + pclose(slv); + } + fprintf(out, _("#\n" "# Automatically generated make config: don't edit\n" - "# Linux kernel version: %s\n" + "# Linux kernel version: %s%s\n" "%s%s" "#\n"), sym_get_string_value(sym), + localversion[0] != '\0' ? localversion : "", use_timestamp ? "# " : "", use_timestamp ? ctime(&now) : "");