Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63104eec authored by Sam Ravnborg's avatar Sam Ravnborg
Browse files

kbuild: introduce utsrelease.h



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: default avatarSam Ravnborg <sam@ravnborg.org>
parent 05668381
Loading
Loading
Loading
Loading
+18 −12
Original line number Diff line number Diff line
@@ -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)/*
@@ -848,21 +848,26 @@ include/asm:
# needs to be updated, so this check is forced on all builds

uts_len := 64

define filechk_version.h
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)\"; \
	  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 UTS_RELEASE \"$(KERNELRELEASE)\";)
endef

define filechk_version.h
	(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
@@ -956,6 +961,7 @@ CLEAN_FILES += vmlinux System.map \
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/utsrelease.h                            \
		  Module.symvers tags TAGS cscope*

# clean - Delete most, but leave enough to build external modules
+1 −1
Original line number Diff line number Diff line
@@ -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>
+1 −1
Original line number Diff line number Diff line
@@ -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>
+1 −1
Original line number Diff line number Diff line
@@ -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>
+1 −1
Original line number Diff line number Diff line
@@ -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>
Loading