Messages in this thread | | | From | Keith Owens <> | Subject | Re: kbuild 2.5 is ready for inclusion in the 2.5 kernel | Date | Sun, 05 May 2002 20:16:29 +1000 |
| |
On Sun, 5 May 2002 02:43:04 -0700, Mike Fedyk <mfedyk@matchmail.com> wrote: >On Thu, May 02, 2002 at 04:17:36PM +0100, Alan Cox wrote: >> The kernel release isnt useful info. Many interfaces are stable across >> multiple kernels, many interface issues depend on things other than kernel >> version. Lots of people apply patches and don't change the base kernel >> version - in fact its hard to do so > >Changing one line in Makefile is hard? I do that every time I patch my >kernels. It lets me track easily what kernels I have installed just by `ls >/boot`, and the name shows up in my kernel .deb. :)
Not hard, just expensive. From kbuild 2.5.
# 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
There are less than 10 places in the kernel that really need UTS_RELEASE. Alas it is defined in version.h which is included by 99% of the code, either directly or indirectly. Change the top level Makefile and 99% of the kernel gets recompiled.
I have deliberately not fixed this problem in kbuild 2.4. The full dependency chain goes Makefile -> version.h -> everything else. Removing the dependency of Makefile -> version.h looks like a good idea, but it exposes potential bugs that are currently hidden by the extra recompiles.
Remove that dependency and other changes to Makefile such as target changes will not cause rebuilds when they should. kbuild 2.4 does not have a complete list of dependencies on the top level Makefile, it works by accident because of the chain Makefile -> version.h -> 99% of the kernel.
All fixed in kbuild 2.5, of course.
- 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/
| |