mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: [PATCH] kbuild: create .kernelrelease at *config step
@ 2006-01-19 18:31 Frédéric L. W. Meunier
  2006-01-19 18:57 ` Sam Ravnborg
  0 siblings, 1 reply; 3+ messages in thread
From: Frédéric L. W. Meunier @ 2006-01-19 18:31 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-kernel

Is this expected ?

$ cd /usr/local/src/kernel/linux-2.6.16
$ make O=/home/fredlwm/objdir/ oldconfig
...
make -C /usr/local/src/kernel/linux-2.6.16 O=/home/fredlwm/objdir .kernelrelease
Makefile:480: .config: No such file or directory

.config is in /home/fredlwm/objdir

.kernelrelease gets created in 
/usr/local/src/kernel/linux-2.6.16 . I thought nothing would be 
written to the sources directory. What if I were on a read-only 
filesystem ?

I didn't try to build it. Are these harmless ?

-- 
How to contact me - http://www.pervalidus.net/contact.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] kbuild: create .kernelrelease at *config step
  2006-01-19 18:31 [PATCH] kbuild: create .kernelrelease at *config step Frédéric L. W. Meunier
@ 2006-01-19 18:57 ` Sam Ravnborg
  0 siblings, 0 replies; 3+ messages in thread
From: Sam Ravnborg @ 2006-01-19 18:57 UTC (permalink / raw)
  To: Fr?d?ric L. W. Meunier; +Cc: linux-kernel

On Thu, Jan 19, 2006 at 04:31:03PM -0200, Fr?d?ric L. W. Meunier wrote:
> Is this expected ?
> 
> $ cd /usr/local/src/kernel/linux-2.6.16
> $ make O=/home/fredlwm/objdir/ oldconfig
> ...
> make -C /usr/local/src/kernel/linux-2.6.16 O=/home/fredlwm/objdir 
> .kernelrelease
> Makefile:480: .config: No such file or directory
> 
> .config is in /home/fredlwm/objdir
> 
> .kernelrelease gets created in 
> /usr/local/src/kernel/linux-2.6.16 . I thought nothing would be 
> written to the sources directory. What if I were on a read-only 
> filesystem ?
> 
> I didn't try to build it. Are these harmless ?

This is a bug, I will post a simple patch shortly to fix it.

	Sam

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] kbuild: create .kernelrelease at *config step
  2006-01-15 14:26     ` René Rebe
@ 2006-01-16 11:15       ` Sam Ravnborg
  0 siblings, 0 replies; 3+ 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	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-01-19 18:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-19 18:31 [PATCH] kbuild: create .kernelrelease at *config step Frédéric L. W. Meunier
2006-01-19 18:57 ` Sam Ravnborg
  -- strict thread matches above, loose matches on Subject: below --
2006-01-15  9:51 kbuild / KERNELRELEASE not rebuild correctly anymore René Rebe
2006-01-15 12:12 ` René Rebe
2006-01-15 12:31   ` Sam Ravnborg
2006-01-15 14:26     ` René Rebe
2006-01-16 11:15       ` [PATCH] kbuild: create .kernelrelease at *config step Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®