From 77ec0c20c7e012b5ebb22197c8a329611458cdf8 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Tue, 18 Sep 2018 17:45:51 +0900 Subject: kbuild: remove VERSION and PATCHLEVEL from $(objtree)/Makefile Neither VERSION nor PATCHLEVEL is used in any useful way. Signed-off-by: Masahiro Yamada --- scripts/mkmakefile | 6 ------ 1 file changed, 6 deletions(-) (limited to 'scripts/mkmakefile') diff --git a/scripts/mkmakefile b/scripts/mkmakefile index e19d6565f245..e21064445085 100755 --- a/scripts/mkmakefile +++ b/scripts/mkmakefile @@ -7,9 +7,6 @@ # Usage # $1 - Kernel src directory # $2 - Output directory -# $3 - version -# $4 - patchlevel - test ! -r $2/Makefile -o -O $2/Makefile || exit 0 # Only overwrite automatically generated Makefiles @@ -25,9 +22,6 @@ fi cat << EOF > $2/Makefile # Automatically generated by $0: don't edit -VERSION = $3 -PATCHLEVEL = $4 - lastword = \$(word \$(words \$(1)),\$(1)) makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST))) -- cgit v1.2.3 From 74bc0c09b2da005f028510b1ad21140c9d6c9b44 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Tue, 18 Sep 2018 17:45:52 +0900 Subject: kbuild: remove user ID check in scripts/mkmakefile This line was added by commit fd5f0cd6b0ce ("kbuild: Do not overwrite makefile as anohter user"). Its commit description says the intention was to prevent $(objtree)/Makefile from being owned by root when e.g. running 'make install'. However, as commit 19514fc665ff ("arm, kbuild: make "make install" not depend on vmlinux") stated, installation targets must not modify the source tree in the first place. If they do, we are already screwed up. We must fix the root cause. Installation targets should just copy files verbatim, hence we never expect $(objtree)/Makefile is touched by root. The user ID check in scripts/mkmakefile is unneeded. Signed-off-by: Masahiro Yamada --- scripts/mkmakefile | 1 - 1 file changed, 1 deletion(-) (limited to 'scripts/mkmakefile') diff --git a/scripts/mkmakefile b/scripts/mkmakefile index e21064445085..24354284d4ad 100755 --- a/scripts/mkmakefile +++ b/scripts/mkmakefile @@ -8,7 +8,6 @@ # $1 - Kernel src directory # $2 - Output directory -test ! -r $2/Makefile -o -O $2/Makefile || exit 0 # Only overwrite automatically generated Makefiles # (so we do not overwrite kernel Makefile) if test -e $2/Makefile && ! grep -q Automatically $2/Makefile -- cgit v1.2.3 From 4fd61277f66278d7ce4a77accb662d00e800cce7 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Tue, 18 Sep 2018 17:45:53 +0900 Subject: kbuild: do not pass $(objtree) to scripts/mkmakefile Since $(objtree) is always '.', it is not useful to pass it to scripts/mkmakefile. I assume nobody wants to run this script directly. Signed-off-by: Masahiro Yamada --- Makefile | 2 +- scripts/mkmakefile | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'scripts/mkmakefile') diff --git a/Makefile b/Makefile index 182172c72441..d2de86c2eba3 100644 --- a/Makefile +++ b/Makefile @@ -494,7 +494,7 @@ PHONY += outputmakefile outputmakefile: ifneq ($(KBUILD_SRC),) $(Q)ln -fsn $(srctree) source - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree) $(objtree) + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree) endif ifeq ($(cc-name),clang) diff --git a/scripts/mkmakefile b/scripts/mkmakefile index 24354284d4ad..85995f90e5c8 100755 --- a/scripts/mkmakefile +++ b/scripts/mkmakefile @@ -6,19 +6,18 @@ # Usage # $1 - Kernel src directory -# $2 - Output directory # Only overwrite automatically generated Makefiles # (so we do not overwrite kernel Makefile) -if test -e $2/Makefile && ! grep -q Automatically $2/Makefile +if test -e Makefile && ! grep -q Automatically Makefile then exit 0 fi if [ "${quiet}" != "silent_" ]; then - echo " GEN $2/Makefile" + echo " GEN Makefile" fi -cat << EOF > $2/Makefile +cat << EOF > Makefile # Automatically generated by $0: don't edit lastword = \$(word \$(words \$(1)),\$(1)) -- cgit v1.2.3 From 80d0dda3a4e5ba00ae6a45fa840096dc9633aad7 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Tue, 18 Sep 2018 17:45:54 +0900 Subject: kbuild: simplify command line creation in scripts/mkmakefile Assuming we never invoke the generated Makefile from outside of the $(objtree) directory, $(CURDIR) points to the absolute path of $(objtree). BTW, 'lastword' is natively supported by GNU Make 3.81+, which is the current requirement for building the kernel. Signed-off-by: Masahiro Yamada --- scripts/mkmakefile | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'scripts/mkmakefile') diff --git a/scripts/mkmakefile b/scripts/mkmakefile index 85995f90e5c8..412f13fdff52 100755 --- a/scripts/mkmakefile +++ b/scripts/mkmakefile @@ -20,9 +20,6 @@ fi cat << EOF > Makefile # Automatically generated by $0: don't edit -lastword = \$(word \$(words \$(1)),\$(1)) -makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST))) - ifeq ("\$(origin V)", "command line") VERBOSE := \$(V) endif @@ -30,15 +27,12 @@ ifneq (\$(VERBOSE),1) Q := @ endif -MAKEARGS := -C $1 -MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir)) - MAKEFLAGS += --no-print-directory .PHONY: __sub-make \$(MAKECMDGOALS) __sub-make: - \$(Q)\$(MAKE) \$(MAKEARGS) \$(MAKECMDGOALS) + \$(Q)\$(MAKE) -C $1 O=\$(CURDIR) \$(MAKECMDGOALS) \$(filter-out __sub-make, \$(MAKECMDGOALS)): __sub-make @: -- cgit v1.2.3