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

Cong Wang
2010-08-18T09:15:55Z

[-- Attachment #1: Type: text/plain, Size: 1551 bytes --]

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@redhat.com>

[-- Attachment #2: makefile-not-regenerate-release.diff --]
[-- Type: text/x-patch, Size: 461 bytes --]

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)