Re: [PATCH 2/2] Makefile: "make kernelrelease" should show the correctfull kernel version

From: Cong Wang
Date: Wed Aug 18 2010 - 05:15:59 EST


On 08/18/10 16:52, Brice Goglin wrote:
Le 18/08/2010 10:57, Cong Wang a écrit :
On 08/18/10 16:38, Brice Goglin wrote:
Le 18/08/2010 10:10, Cong Wang a écrit :
On 08/18/10 15:15, Brice Goglin wrote:
This patch (actually 01ab17887 in 2.6.36-rc1) reveals what looks
like a
problem to me: make kernelrelease always regenerates
include/config/kernel.release even if it's already more recent than
include/config/auto.conf. Is this the expected behavior? Do we really
need include/config/kernel.release to depend on FORCE?


I think so, because "LOCALVERSION=" can be given from command line,
so we need to regenerate it.

Or am I missing your point here?


Interesting. I assumed "make kernelrelease" was mainly here to display
the release string (which means you would not need write access to the
kernel build dir). And indeed make help says:
kernelrelease - Output the release version string
Right now, it looks like "update the version string and by the way
display it too" (and you need write access).


I believe you will also need write access even without this patch,
if you compile a fresh kernel. So your assumption is not correct.


If I revert 01ab17887f4, I don't need write access. Things always worked
fine before 2.6.36 as far I remember.


Ah, I forgot Michal checked in a slightly different patch with mine. :)

Does the attached patch work for you?


---
Signed-off-by: WANG Cong <amwang@xxxxxxxxxx>
diff --git a/Makefile b/Makefile
index f3bdff8..25da252 100644
--- a/Makefile
+++ b/Makefile
@@ -1408,8 +1408,8 @@ checkstack:
$(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
$(PERL) $(src)/scripts/checkstack.pl $(CHECKSTACK_ARCH)

-kernelrelease: include/config/kernel.release
- @echo $(KERNELRELEASE)
+kernelrelease:
+ @echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"

kernelversion:
@echo $(KERNELVERSION)