Commit 85a256d adds a new feature:
[...] When CONFIG_LOCALVERSION_AUTO is not enabled, a `+' is appended
to the kernel version to represent that the kernel has been revised
since the last release unless "make LOCALVERSION=" was used to uniquely
identify the build.
I'm finding this inconvenient for 'casual' kernel development.
For example, my usual workflow goes something like:
1) find something I suspect is a bug
2) upgrade to the latest stable or -rc kernel, to confirm
3) experiment with patch to fix it
Since 2.6.35-rc2, going from step 2 to 3 causes the version of the kernel
to change: forcing time-consuming rebuilds, installing modules, and manual
changes associated with a new version number; eg. updating the lilo/grub
config, or the distribution's initrd.
Whilst I can understand the motivation for the '+' being mandatory, the
added stages above unnecessarily raise the bar for casual developers, or
other people who need to 'dip' into the kernel and test patches. These
people are least likely to be aware of using LOCALVERSION to override it
too.
May I suggest that this particular part of the commit be reverted (example
below)? In favour of a user, if they wish, explicitly setting LOCALVERSION
or using CONFIG_LOCALVERSION_AUTO.
--
Mark
From: Mark Hills <[email protected]>
Date: Sun, 13 Jun 2010 19:16:55 +0100
Subject: [PATCH] kbuild: Do not append mandatory '+' to kernel release
Signed-off-by: Mark Hills <[email protected]>
---
Makefile | 14 --------------
1 files changed, 0 insertions(+), 14 deletions(-)
diff --git a/Makefile b/Makefile
index d49d96c..6870f6f 100644
--- a/Makefile
+++ b/Makefile
@@ -909,14 +909,6 @@ $(vmlinux-dirs): prepare scripts
# $(scm-identifier) (unique SCM tag, if one exists)
# ./scripts/setlocalversion (only with CONFIG_LOCALVERSION_AUTO)
# .scmversion (only with CONFIG_LOCALVERSION_AUTO)
-# + (only without CONFIG_LOCALVERSION_AUTO
-# and without LOCALVERSION= and
-# repository is at non-tagged commit)
-#
-# For kernels without CONFIG_LOCALVERSION_AUTO compiled from an SCM that has
-# been revised beyond a tagged commit, `+' is appended to the version string
-# when not overridden by using "make LOCALVERSION=". This indicates that the
-# kernel is not a vanilla release version and has been modified.
pattern = ".*/localversion[^~]*"
string = $(shell cat /dev/null \
@@ -942,12 +934,6 @@ endif
ifdef CONFIG_LOCALVERSION_AUTO
localver-extra = $(scm-identifier)
-else
- ifneq ($(scm-identifier),)
- ifeq ($(LOCALVERSION),)
- localver-extra = +
- endif
- endif
endif
localver-full = $(localver)$(LOCALVERSION)$(localver-extra)
--
1.7.1
On Sun, Jun 13, 2010 at 08:01:26PM +0100, Mark Hills wrote:
> Commit 85a256d adds a new feature:
>
> [...] When CONFIG_LOCALVERSION_AUTO is not enabled, a `+' is appended
> to the kernel version to represent that the kernel has been revised
> since the last release unless "make LOCALVERSION=" was used to uniquely
> identify the build.
>
> I'm finding this inconvenient for 'casual' kernel development.
>
> For example, my usual workflow goes something like:
>
> 1) find something I suspect is a bug
> 2) upgrade to the latest stable or -rc kernel, to confirm
> 3) experiment with patch to fix it
>
> Since 2.6.35-rc2, going from step 2 to 3 causes the version of the kernel
> to change: forcing time-consuming rebuilds,
init/version.c
kernel/configs.c
+ whatever patch has changed
+ vmlinux 2 or 3 times
That's not time consuming.
> installing modules, and manual
> changes associated with a new version number; eg. updating the lilo/grub
> config, or the distribution's initrd.
On Mon, 14 Jun 2010, Alexey Dobriyan wrote:
> On Sun, Jun 13, 2010 at 08:01:26PM +0100, Mark Hills wrote:
> > Commit 85a256d adds a new feature:
> >
> > [...] When CONFIG_LOCALVERSION_AUTO is not enabled, a `+' is appended
> > to the kernel version to represent that the kernel has been revised
> > since the last release unless "make LOCALVERSION=" was used to uniquely
> > identify the build.
> >
> > I'm finding this inconvenient for 'casual' kernel development.
> >
> > For example, my usual workflow goes something like:
> >
> > 1) find something I suspect is a bug
> > 2) upgrade to the latest stable or -rc kernel, to confirm
> > 3) experiment with patch to fix it
> >
> > Since 2.6.35-rc2, going from step 2 to 3 causes the version of the kernel
> > to change: forcing time-consuming rebuilds,
>
> init/version.c
> kernel/configs.c
> + whatever patch has changed
> + vmlinux 2 or 3 times
>
> That's not time consuming.
There is also the modpost step, which is most time consuming.
>
> > installing modules, and manual
> > changes associated with a new version number; eg. updating the lilo/grub
> > config, or the distribution's initrd.
>
--
Mark
On Jun. 13, 2010, 15:01 -0400, Mark Hills <[email protected]> wrote:
> Commit 85a256d adds a new feature:
>
> [...] When CONFIG_LOCALVERSION_AUTO is not enabled, a `+' is appended
> to the kernel version to represent that the kernel has been revised
> since the last release unless "make LOCALVERSION=" was used to uniquely
> identify the build.
>
> I'm finding this inconvenient for 'casual' kernel development.
>
> For example, my usual workflow goes something like:
>
FWIW, I agree with this.
If I wanted a version suffix of this sort I'd just use CONFIG_LOCALVERSION_AUTO.
Benny
> 1) find something I suspect is a bug
> 2) upgrade to the latest stable or -rc kernel, to confirm
> 3) experiment with patch to fix it
>
> Since 2.6.35-rc2, going from step 2 to 3 causes the version of the kernel
> to change: forcing time-consuming rebuilds, installing modules, and manual
> changes associated with a new version number; eg. updating the lilo/grub
> config, or the distribution's initrd.
>
> Whilst I can understand the motivation for the '+' being mandatory, the
> added stages above unnecessarily raise the bar for casual developers, or
> other people who need to 'dip' into the kernel and test patches. These
> people are least likely to be aware of using LOCALVERSION to override it
> too.
>
> May I suggest that this particular part of the commit be reverted (example
> below)? In favour of a user, if they wish, explicitly setting LOCALVERSION
> or using CONFIG_LOCALVERSION_AUTO.
>