Re: [PATCH] cleanup KERNEL_VERSION definition and linux/version.h

Keith Owens (kaos@ocs.com.au)
Fri, 05 Apr 2002 12:42:39 +1000


On Thu, 4 Apr 2002 18:07:52 -0800,
Mike Fedyk <mfedyk@matchmail.com> wrote:
>On Thu, Apr 04, 2002 at 11:36:06AM +1000, Keith Owens wrote:
>> On Thu, 04 Apr 2002 10:12:29 +0900,
>> Hiroyuki Toda <might@might.dyn.to> wrote:
>> >
>> >Keith> This file will change completely in 2.5 when kbuild 2.5 goes in. Why
>> >Keith> does it need to be rearranged in 2.4?
>> >
>> >Will kbuild 2.5 go in 2.4 tree also?
>>
>> No, but version.h is working at the moment in 2.4. Why change it?
>
>Why do so many drivers enable options depending on the kernel version?
>Shouldn't that be stripped out before a patch is accepted into the kernel?

# FIXME: Current kernel source includes linux/version.h, mainly to get
# KERNEL_VERSION(). version.h also includes UTS_RELEASE which changes every
# time the kernel identifiers change. The presence of UTS_RELEASE in version.h
# causes lots of unnecessary recompilations, very few places actually want
# UTS_RELEASE. The new makefile generates separate linux/version.h and
# linux/uts_release.h, with version.h including utsname.h to avoid compilation
# errors. Find all the source code that needs just UTS_RELEASE and change it to
# include uts_release.h, then remove #include <linux/uts_release.h> from the
# commands below. KAO

Unfortunately this area of kbuild 2.4 is fragile. At the moment,
changes to the top level Makefile indirectly force a rebuild,
Makefile -> version.h -> KERNEL_VERSION() -> almost everything.

Breaking that chain _might_ cause problems in 2.4 because it does not
have a complete dependency chain to pick up changes to the top level
Makefile, it only works at the moment due to the extra recompiles. I
am not willing to change this in 2.4 until I have got it stable in 2.5.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/