* kbuild / KERNELRELEASE not rebuild correctly anymore @ 2006-01-15 9:51 René Rebe 2006-01-15 10:05 ` Sam Ravnborg 2006-01-15 10:13 ` kbuild / KERNELRELEASE not rebuild correctly anymore Grant Coady 0 siblings, 2 replies; 11+ messages in thread From: René Rebe @ 2006-01-15 9:51 UTC (permalink / raw) To: linux-kernel; +Cc: Sam Ravnborg, Linus Torvalds, Roman Zippel, akpm Hi all, with at least 2.6.15-mm{2,3,4} untaring the kernel and running make menuconfig (or most other favourite config tools) do not display a version anymore since .kernelrelease it not build as dependecy. I only noticed this because my build scripts grab the version before the build for later file names on installations and leave this string empty after configuration of latest linux kernels. Sincerely, -- René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany) http://www.exactcode.de | http://www.t2-project.org +49 (0)30 255 897 45 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 9:51 kbuild / KERNELRELEASE not rebuild correctly anymore René Rebe @ 2006-01-15 10:05 ` Sam Ravnborg 2006-01-15 10:41 ` René Rebe 2006-01-15 10:13 ` kbuild / KERNELRELEASE not rebuild correctly anymore Grant Coady 1 sibling, 1 reply; 11+ messages in thread From: Sam Ravnborg @ 2006-01-15 10:05 UTC (permalink / raw) To: Ren? Rebe; +Cc: linux-kernel, Linus Torvalds, Roman Zippel, akpm On Sun, Jan 15, 2006 at 10:51:14AM +0100, Ren? Rebe wrote: > Hi all, > > with at least 2.6.15-mm{2,3,4} untaring the kernel and running make menuconfig > (or most other favourite config tools) do not display a version anymore since > .kernelrelease it not build as dependecy. > > I only noticed this because my build scripts grab the version before the build for > later file names on installations and leave this string empty after configuration of > latest linux kernels. It is correct that "make kernelrelease" does not display correct info until you have done a proper build of the kernel or at least the prepare step. The issue here is that we shall avoid sideeffects when running "make kernelrelease" so it does not trigger all sorts of commands when running as root for instance. So the real fix is to error out when .kernelrelease does not exists. See attached patch. Sam diff --git a/Makefile b/Makefile index deedaf7..19a37a2 100644 --- a/Makefile +++ b/Makefile @@ -1301,7 +1301,8 @@ checkstack: $(PERL) $(src)/scripts/checkstack.pl $(ARCH) kernelrelease: - @echo $(KERNELRELEASE) + $(if $(wildcard .kernelrelease), $(Q)echo $(KERNELRELEASE), \ + $(error kernelrelease not valid - run 'make prepare' to update it)) kernelversion: @echo $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 10:05 ` Sam Ravnborg @ 2006-01-15 10:41 ` René Rebe 2006-01-15 11:19 ` Sam Ravnborg 0 siblings, 1 reply; 11+ messages in thread From: René Rebe @ 2006-01-15 10:41 UTC (permalink / raw) To: Sam Ravnborg; +Cc: linux-kernel, Linus Torvalds, Roman Zippel, akpm Hi, On Sunday 15 January 2006 11:05, Sam Ravnborg wrote: > On Sun, Jan 15, 2006 at 10:51:14AM +0100, Ren? Rebe wrote: > > Hi all, > > > > with at least 2.6.15-mm{2,3,4} untaring the kernel and running make > > menuconfig (or most other favourite config tools) do not display a > > version anymore since .kernelrelease it not build as dependecy. > > > > I only noticed this because my build scripts grab the version before the > > build for later file names on installations and leave this string empty > > after configuration of latest linux kernels. > > It is correct that "make kernelrelease" does not display correct info > until you have done a proper build of the kernel or at least the prepare > step. > > The issue here is that we shall avoid sideeffects when running "make > kernelrelease" so it does not trigger all sorts of commands when running > as root for instance. > > So the real fix is to error out when .kernelrelease does not exists. > See attached patch. You expect us to run make prepare before make menuconfig or simillar? That sounds a bit odd ... Yours, -- René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany) http://www.exactcode.de | http://www.t2-project.org +49 (0)30 255 897 45 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 10:41 ` René Rebe @ 2006-01-15 11:19 ` Sam Ravnborg 2006-01-15 12:12 ` René Rebe 0 siblings, 1 reply; 11+ messages in thread From: Sam Ravnborg @ 2006-01-15 11:19 UTC (permalink / raw) To: Ren? Rebe; +Cc: linux-kernel, Linus Torvalds, Roman Zippel, akpm On Sun, Jan 15, 2006 at 11:41:30AM +0100, Ren? Rebe wrote: > > > > So the real fix is to error out when .kernelrelease does not exists. > > See attached patch. > > You expect us to run make prepare before make menuconfig or simillar? > That sounds a bit odd ... The kernelrelease depends on the actual configuration. So without having completed the make *config step kbuild cannot tell the correct kernelrelease. Now with the patch attached to last mail kbuild will now error out in case there is no valid kernelrelease. Thats obviously only a hack, since we need to error out when .config has been updated and the new kernelrelease has not been created. Maybe the better approach would be always to create the .kernelrelease file as part of the configuration - based on the principle of least suprise. See attached patch. Sam diff --git a/Makefile b/Makefile index deedaf7..4ab0141 100644 --- a/Makefile +++ b/Makefile @@ -433,6 +433,7 @@ export KBUILD_DEFCONFIG config %config: scripts_basic outputmakefile FORCE $(Q)mkdir -p include/linux $(Q)$(MAKE) $(build)=scripts/kconfig $@ + $(Q)$(MAKE) .kernelrelease else # =========================================================================== @@ -783,12 +784,13 @@ endif localver-full = $(localver)$(localver-auto) # Store (new) KERNELRELASE string in .kernelrelease +quiet_cmd_kernelrelease = GEN $@ + cmd_kernelrelease = rm -f $@; echo $(kernelrelease) > $@ + kernelrelease = \ $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(localver-full) .kernelrelease: FORCE - $(Q)rm -f .kernelrelease - $(Q)echo $(kernelrelease) > .kernelrelease - $(Q)echo " Building kernel $(kernelrelease)" + $(call cmd,kernelrelease) # Things we need to do before we recursively start building the kernel @@ -808,6 +810,7 @@ kernelrelease = \ # 1) Check that make has not been executed in the kernel src $(srctree) # 2) Create the include2 directory, used for the second asm symlink prepare3: .kernelrelease + $(Q)echo " Building kernel $(kernelrelease)" ifneq ($(KBUILD_SRC),) @echo ' Using $(srctree) as source for kernel' $(Q)if [ -f $(srctree)/.config ]; then \ @@ -1301,7 +1304,8 @@ checkstack: $(PERL) $(src)/scripts/checkstack.pl $(ARCH) kernelrelease: - @echo $(KERNELRELEASE) + $(if $(wildcard .kernelrelease), $(Q)echo $(KERNELRELEASE), \ + $(error kernelrelease not valid - run 'make *config' to update it)) kernelversion: @echo $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 11:19 ` Sam Ravnborg @ 2006-01-15 12:12 ` René Rebe 2006-01-15 12:31 ` Sam Ravnborg 0 siblings, 1 reply; 11+ messages in thread From: René Rebe @ 2006-01-15 12:12 UTC (permalink / raw) To: Sam Ravnborg; +Cc: linux-kernel, Linus Torvalds, Roman Zippel, akpm Hi, On Sunday 15 January 2006 12:19, Sam Ravnborg wrote: > On Sun, Jan 15, 2006 at 11:41:30AM +0100, Ren? Rebe wrote: > > > So the real fix is to error out when .kernelrelease does not exists. > > > See attached patch. > > > > You expect us to run make prepare before make menuconfig or simillar? > > That sounds a bit odd ... > > The kernelrelease depends on the actual configuration. > So without having completed the make *config step kbuild cannot tell the > correct kernelrelease. > > Now with the patch attached to last mail kbuild will now error out in > case there is no valid kernelrelease. Thats obviously only a hack, since > we need to error out when .config has been updated and the new > kernelrelease has not been created. > > Maybe the better approach would be always to create the .kernelrelease > file as part of the configuration - based on the principle of least > suprise. Aside this "solution" still annoys me, you need at least patch the config stuff to not display an empty version string ;-) I'm curious, aside rsbac, what in the .config is altering the KERNELRELEASE? Yours, -- René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany) http://www.exactcode.de | http://www.t2-project.org +49 (0)30 255 897 45 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 12:12 ` René Rebe @ 2006-01-15 12:31 ` Sam Ravnborg 2006-01-15 14:26 ` René Rebe 0 siblings, 1 reply; 11+ messages in thread From: Sam Ravnborg @ 2006-01-15 12:31 UTC (permalink / raw) To: Ren? Rebe; +Cc: linux-kernel, Linus Torvalds, Roman Zippel, akpm > > I'm curious, aside rsbac, what in the .config is altering the KERNELRELEASE? CONFIG_LOCALVERSION CONFIG_LOCALVERSION_AUTO Sam ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 12:31 ` Sam Ravnborg @ 2006-01-15 14:26 ` René Rebe 2006-01-15 23:29 ` Kyle Moffett 2006-01-16 11:15 ` [PATCH] kbuild: create .kernelrelease at *config step Sam Ravnborg 0 siblings, 2 replies; 11+ messages in thread From: René Rebe @ 2006-01-15 14:26 UTC (permalink / raw) To: Sam Ravnborg; +Cc: linux-kernel, Linus Torvalds, Roman Zippel, akpm Hi, On Sunday 15 January 2006 13:31, Sam Ravnborg wrote: > > I'm curious, aside rsbac, what in the .config is altering the > > KERNELRELEASE? > > CONFIG_LOCALVERSION > CONFIG_LOCALVERSION_AUTO Ah, ok - I feared something less obviously more complex. Do we need this options at all? People can still just edit the EXTRAVERSION line in the Makefile - at least I always did so ... Also you have not answered if you expect to patch away the version output in the *config frontends ... Yours, -- René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany) http://www.exactcode.de | http://www.t2-project.org +49 (0)30 255 897 45 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 14:26 ` René Rebe @ 2006-01-15 23:29 ` Kyle Moffett 2006-01-16 11:15 ` [PATCH] kbuild: create .kernelrelease at *config step Sam Ravnborg 1 sibling, 0 replies; 11+ messages in thread From: Kyle Moffett @ 2006-01-15 23:29 UTC (permalink / raw) To: René Rebe Cc: Sam Ravnborg, linux-kernel, Linus Torvalds, Roman Zippel, akpm On Jan 15, 2006, at 09:26, René Rebe wrote: > Hi, > > On Sunday 15 January 2006 13:31, Sam Ravnborg wrote: >>> I'm curious, aside rsbac, what in the .config is altering the >>> KERNELRELEASE? >> >> CONFIG_LOCALVERSION >> CONFIG_LOCALVERSION_AUTO > > Ah, ok - I feared something less obviously more complex. Do we need > this options at all? People can still just edit the EXTRAVERSION > line in the Makefile - at least I always did so ... It makes it easy for people who build a lot of different kernel versions and patchsets with similar configs. When compiling a kernel for "aphrodite", I use my "config.aphrodite4" which has CONFIG_LOCALVERSION="-aphrodite4". I may patch the kernel first with -mm or another patchset for testing which modify EXTRAVERSION, and with the localversion change I get the following kernels, depending only on patchset and my config: /boot/vmlinuz-2.6.15-aphrodite4 /boot/vmlinuz-2.6.15-mm4-aphrodite4 [...etc...] Cheers, Kyle Moffett -- Somone asked me why I work on this free (http://www.fsf.org/ philosophy/) software stuff and not get a real job. Charles Schulz had the best answer: "Why do musicians compose symphonies and poets write poems? They do it because life wouldn't have any meaning for them if they didn't. That's why I draw cartoons. It's my life." -- Charles Schulz ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] kbuild: create .kernelrelease at *config step 2006-01-15 14:26 ` René Rebe 2006-01-15 23:29 ` Kyle Moffett @ 2006-01-16 11:15 ` Sam Ravnborg 1 sibling, 0 replies; 11+ messages in thread From: Sam Ravnborg @ 2006-01-16 11:15 UTC (permalink / raw) To: Ren? Rebe; +Cc: linux-kernel, Linus Torvalds, Roman Zippel, akpm I have just added following patch to my tree. It addresses all your inputs. Sam [PATCH] kbuild: create .kernelrelease at *config step To enable 'make kernelrelease' earlier now create .kernelrelease when one of the *config targets are used. Also introduce KERNELVERSION - only user is kconfig. KERNELVERSION was needed to display kernel version in menuconfig - KERNELRELEASE is not valid until configuration has completed. kconfig files modified to use KERNELVERSION. Bug reported by: Rene Rebe <rene@exactcode.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> --- Makefile | 19 ++++++++++--------- scripts/kconfig/confdata.c | 2 +- scripts/kconfig/gconf.c | 2 +- scripts/kconfig/mconf.c | 2 +- scripts/kconfig/symbol.c | 4 ++-- 5 files changed, 15 insertions(+), 14 deletions(-) 2244cbd8a9185c197ec5ba5de175aec288697223 diff --git a/Makefile b/Makefile index b3dd9db..22e322f 100644 --- a/Makefile +++ b/Makefile @@ -338,8 +338,9 @@ AFLAGS := -D__ASSEMBLY__ # Read KERNELRELEASE from .kernelrelease (if it exists) KERNELRELEASE = $(shell cat .kernelrelease 2> /dev/null) +KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) -export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE \ +export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \ ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \ CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \ HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS @@ -434,6 +435,7 @@ export KBUILD_DEFCONFIG config %config: scripts_basic outputmakefile FORCE $(Q)mkdir -p include/linux $(Q)$(MAKE) $(build)=scripts/kconfig $@ + $(Q)$(MAKE) .kernelrelease else # =========================================================================== @@ -784,12 +786,10 @@ endif localver-full = $(localver)$(localver-auto) # Store (new) KERNELRELASE string in .kernelrelease -kernelrelease = \ - $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(localver-full) +kernelrelease = $(KERNELVERSION)$(localver-full) .kernelrelease: FORCE - $(Q)rm -f .kernelrelease - $(Q)echo $(kernelrelease) > .kernelrelease - $(Q)echo " Building kernel $(kernelrelease)" + $(Q)rm -f $@ + $(Q)echo $(kernelrelease) > $@ # Things we need to do before we recursively start building the kernel @@ -899,7 +899,7 @@ define filechk_version.h ) endef -include/linux/version.h: $(srctree)/Makefile FORCE +include/linux/version.h: $(srctree)/Makefile .config FORCE $(call filechk,version.h) # --------------------------------------------------------------------------- @@ -1302,9 +1302,10 @@ checkstack: $(PERL) $(src)/scripts/checkstack.pl $(ARCH) kernelrelease: - @echo $(KERNELRELEASE) + $(if $(wildcard .kernelrelease), $(Q)echo $(KERNELRELEASE), \ + $(error kernelrelease not valid - run 'make *config' to update it)) kernelversion: - @echo $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) + @echo $(KERNELVERSION) # FIXME Should go into a make.lib or something # =========================================================================== diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index ccd4513..b0cbbe2 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -375,7 +375,7 @@ int conf_write(const char *name) if (!out_h) return 1; } - sym = sym_lookup("KERNELRELEASE", 0); + sym = sym_lookup("KERNELVERSION", 0); sym_calc_value(sym); time(&now); env = getenv("KCONFIG_NOTIMESTAMP"); diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c index 9f5aabd..665bd53 100644 --- a/scripts/kconfig/gconf.c +++ b/scripts/kconfig/gconf.c @@ -276,7 +276,7 @@ void init_main_window(const gchar * glad NULL); sprintf(title, _("Linux Kernel v%s Configuration"), - getenv("KERNELRELEASE")); + getenv("KERNELVERSION")); gtk_window_set_title(GTK_WINDOW(main_wnd), title); gtk_widget_show(main_wnd); diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index d63d7fb..7f97319 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c @@ -1051,7 +1051,7 @@ int main(int ac, char **av) conf_parse(av[1]); conf_read(NULL); - sym = sym_lookup("KERNELRELEASE", 0); + sym = sym_lookup("KERNELVERSION", 0); sym_calc_value(sym); sprintf(menu_backtitle, _("Linux Kernel v%s Configuration"), sym_get_string_value(sym)); diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c index 69c2549..3d7877a 100644 --- a/scripts/kconfig/symbol.c +++ b/scripts/kconfig/symbol.c @@ -61,10 +61,10 @@ void sym_init(void) if (p) sym_add_default(sym, p); - sym = sym_lookup("KERNELRELEASE", 0); + sym = sym_lookup("KERNELVERSION", 0); sym->type = S_STRING; sym->flags |= SYMBOL_AUTO; - p = getenv("KERNELRELEASE"); + p = getenv("KERNELVERSION"); if (p) sym_add_default(sym, p); -- 1.0.GIT ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 9:51 kbuild / KERNELRELEASE not rebuild correctly anymore René Rebe 2006-01-15 10:05 ` Sam Ravnborg @ 2006-01-15 10:13 ` Grant Coady 2006-01-15 10:42 ` René Rebe 1 sibling, 1 reply; 11+ messages in thread From: Grant Coady @ 2006-01-15 10:13 UTC (permalink / raw) To: René Rebe Cc: linux-kernel, Sam Ravnborg, Linus Torvalds, Roman Zippel, akpm On 1/15/06, René Rebe <rene@exactcode.de> wrote: > with at least 2.6.15-mm{2,3,4} untaring the kernel and running make menuconfig > (or most other favourite config tools) do not display a version anymore since > .kernelrelease it not build as dependecy. grant@sempro:~/linux/linux-2.6.15-mm4a$ cat .kernelrelease 2.6.15-mm4a Works for me ;) Grant. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: kbuild / KERNELRELEASE not rebuild correctly anymore 2006-01-15 10:13 ` kbuild / KERNELRELEASE not rebuild correctly anymore Grant Coady @ 2006-01-15 10:42 ` René Rebe 0 siblings, 0 replies; 11+ messages in thread From: René Rebe @ 2006-01-15 10:42 UTC (permalink / raw) To: Grant Coady Cc: linux-kernel, Sam Ravnborg, Linus Torvalds, Roman Zippel, akpm Hi, On Sunday 15 January 2006 11:13, Grant Coady wrote: > On 1/15/06, René Rebe <rene@exactcode.de> wrote: > > with at least 2.6.15-mm{2,3,4} untaring the kernel and running make > > menuconfig (or most other favourite config tools) do not display a > > version anymore since .kernelrelease it not build as dependecy. > > grant@sempro:~/linux/linux-2.6.15-mm4a$ cat .kernelrelease > 2.6.15-mm4a > > Works for me ;) After a build? Yes. But before? E.g. at make menuconfig time or thereafter? Yours, -- René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany) http://www.exactcode.de | http://www.t2-project.org +49 (0)30 255 897 45 ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2006-01-16 11:15 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-01-15 9:51 kbuild / KERNELRELEASE not rebuild correctly anymore René Rebe 2006-01-15 10:05 ` Sam Ravnborg 2006-01-15 10:41 ` René Rebe 2006-01-15 11:19 ` Sam Ravnborg 2006-01-15 12:12 ` René Rebe 2006-01-15 12:31 ` Sam Ravnborg 2006-01-15 14:26 ` René Rebe 2006-01-15 23:29 ` Kyle Moffett 2006-01-16 11:15 ` [PATCH] kbuild: create .kernelrelease at *config step Sam Ravnborg 2006-01-15 10:13 ` kbuild / KERNELRELEASE not rebuild correctly anymore Grant Coady 2006-01-15 10:42 ` René Rebe
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).