Skip to content

Commit

Permalink
kbuild: introduce utsrelease.h
Browse files Browse the repository at this point in the history
include/linux/version.h contained both actual KERNEL version
and UTS_RELEASE that contains a subset from git SHA1 for when
kernel was compiled as part of a git repository.
This had the unfortunate side-effect that all files including version.h
would be recompiled when some git changes was made due to changes SHA1.
Split it out so we keep independent parts in separate files.

Also update checkversion.pl script to no longer check for UTS_RELEASE.

Signed-off-by: Sam Ravnborg <[email protected]>
  • Loading branch information
Sam Ravnborg committed Jul 3, 2006
1 parent 0566838 commit 63104ee
Show file tree
Hide file tree
Showing 14 changed files with 33 additions and 27 deletions.
30 changes: 18 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -812,8 +812,8 @@ endif
# prepare2 creates a makefile if using a separate output directory
prepare2: prepare3 outputmakefile

prepare1: prepare2 include/linux/version.h include/asm \
include/config/auto.conf
prepare1: prepare2 include/linux/version.h include/linux/utsrelease.h \
include/asm include/config/auto.conf
ifneq ($(KBUILD_MODULES),)
$(Q)mkdir -p $(MODVERDIR)
$(Q)rm -f $(MODVERDIR)/*
Expand Down Expand Up @@ -848,21 +848,26 @@ include/asm:
# needs to be updated, so this check is forced on all builds

uts_len := 64
define filechk_utsrelease.h
if [ `echo -n "$(KERNELRELEASE)" | wc -c ` -gt $(uts_len) ]; then \
echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \
exit 1; \
fi; \
(echo \#define UTS_RELEASE \"$(KERNELRELEASE)\";)
endef

define filechk_version.h
if [ `echo -n "$(KERNELRELEASE)" | wc -c ` -gt $(uts_len) ]; then \
echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \
exit 1; \
fi; \
(echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"; \
echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)`; \
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
)
(echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
endef

include/linux/version.h: $(srctree)/Makefile include/config/kernel.release FORCE
include/linux/version.h: $(srctree)/Makefile FORCE
$(call filechk,version.h)

include/linux/utsrelease.h: include/config/kernel.release FORCE
$(call filechk,utsrelease.h)

# ---------------------------------------------------------------------------

PHONY += depend dep
Expand Down Expand Up @@ -955,7 +960,8 @@ CLEAN_FILES += vmlinux System.map \
# Directories & files removed with 'make mrproper'
MRPROPER_DIRS += include/config include2
MRPROPER_FILES += .config .config.old include/asm .version .old_version \
include/linux/autoconf.h include/linux/version.h \
include/linux/autoconf.h include/linux/version.h \
include/linux/utsrelease.h \
Module.symvers tags TAGS cscope*

# clean - Delete most, but leave enough to build external modules
Expand Down
2 changes: 1 addition & 1 deletion arch/alpha/boot/bootp.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
*/
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/mm.h>

#include <asm/system.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/alpha/boot/bootpz.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
*/
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/mm.h>

#include <asm/system.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/alpha/boot/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/mm.h>

#include <asm/system.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/frv/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* 2 of the License, or (at your option) any later version.
*/

#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/delay.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/i386/boot/setup.S
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
*/

#include <asm/segment.h>
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/compile.h>
#include <asm/boot.h>
#include <asm/e820.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/chrp/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include <linux/reboot.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/adb.h>
#include <linux/module.h>
#include <linux/delay.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/powermac/bootx_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <asm/sections.h>
#include <asm/prom.h>
#include <asm/page.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/ppc/syslib/btext.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/version.h>
#include <linux/utsrelease.h>

#include <asm/sections.h>
#include <asm/bootx.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/x86_64/boot/setup.S
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
*/

#include <asm/segment.h>
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/compile.h>
#include <asm/boot.h>
#include <asm/e820.h>
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/bcm43xx/bcm43xx_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <linux/netdevice.h>
#include <linux/pci.h>
#include <linux/string.h>
#include <linux/version.h>
#include <linux/utsrelease.h>


static void bcm43xx_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
Expand Down
2 changes: 1 addition & 1 deletion include/linux/vermagic.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <linux/version.h>
#include <linux/utsrelease.h>
#include <linux/module.h>

/* Simply sanity version stamp for modules. */
Expand Down
1 change: 1 addition & 0 deletions init/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <linux/module.h>
#include <linux/uts.h>
#include <linux/utsname.h>
#include <linux/utsrelease.h>
#include <linux/version.h>

#define version(a) Version_ ## a
Expand Down
7 changes: 3 additions & 4 deletions scripts/checkversion.pl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#! /usr/bin/perl
#
# checkversion find uses of LINUX_VERSION_CODE, KERNEL_VERSION, or
# UTS_RELEASE without including <linux/version.h>, or cases of
# checkversion find uses of LINUX_VERSION_CODE or KERNEL_VERSION
# without including <linux/version.h>, or cases of
# including <linux/version.h> that don't need it.
# Copyright (C) 2003, Randy Dunlap <[email protected]>

Expand Down Expand Up @@ -41,8 +41,7 @@
}

# Look for uses: LINUX_VERSION_CODE, KERNEL_VERSION, UTS_RELEASE
if (($_ =~ /LINUX_VERSION_CODE/) || ($_ =~ /\WKERNEL_VERSION/) ||
($_ =~ /UTS_RELEASE/)) {
if (($_ =~ /LINUX_VERSION_CODE/) || ($_ =~ /\WKERNEL_VERSION/)) {
$fUseVersion = 1;
last LINE if $iLinuxVersion;
}
Expand Down

0 comments on commit 63104ee

Please sign in to comment.