Skip to content

Commit cdd750b

Browse files
committed
kbuild: remove 'addtree' and 'flags' magic for header search paths
The 'addtree' and 'flags' in scripts/Kbuild.include are so compilecated and ugly. As I mentioned in [1], Kbuild should stop automatic prefixing of header search path options. I fixed up (almost) all Makefiles in the kernel. Now 'addtree' and 'flags' have been removed. Kbuild still caters to add $(srctree)/$(src) and $(objtree)/$(obj) to the header search path for O= building, but never touches extra compiler options from ccflags-y etc. [1]: https://patchwork.kernel.org/patch/9632347/ Signed-off-by: Masahiro Yamada <[email protected]>
1 parent 9cc342f commit cdd750b

File tree

3 files changed

+13
-33
lines changed

3 files changed

+13
-33
lines changed

scripts/Kbuild.include

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -192,14 +192,6 @@ clean := -f $(srctree)/scripts/Makefile.clean obj
192192
# $(Q)$(MAKE) $(hdr-inst)=dir
193193
hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
194194

195-
# Prefix -I with $(srctree) if it is not an absolute path.
196-
# skip if -I has no parameter
197-
addtree = $(if $(patsubst -I%,%,$(1)), \
198-
$(if $(filter-out -I/% -I./% -I../%,$(1)),$(patsubst -I%,-I$(srctree)/%,$(1)),$(1)),$(1))
199-
200-
# Find all -I options and call addtree
201-
flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))
202-
203195
# echo command.
204196
# Short version is used, if $(quiet) equals `quiet_', otherwise full one.
205197
echo-cmd = $(if $($(quiet)cmd_$(1)),\

scripts/Makefile.host

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,16 @@ _hostc_flags = $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
6767
_hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
6868
$(HOSTCXXFLAGS_$(basetarget).o)
6969

70-
__hostc_flags = $(_hostc_flags)
71-
__hostcxx_flags = $(_hostcxx_flags)
72-
70+
# $(objtree)/$(obj) for including generated headers from checkin source files
7371
ifeq ($(KBUILD_EXTMOD),)
7472
ifneq ($(srctree),.)
75-
__hostc_flags = -I$(obj) $(call flags,_hostc_flags)
76-
__hostcxx_flags = -I$(obj) $(call flags,_hostcxx_flags)
73+
_hostc_flags += -I $(objtree)/$(obj)
74+
_hostcxx_flags += -I $(objtree)/$(obj)
7775
endif
7876
endif
7977

80-
hostc_flags = -Wp,-MD,$(depfile) $(__hostc_flags)
81-
hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags)
78+
hostc_flags = -Wp,-MD,$(depfile) $(_hostc_flags)
79+
hostcxx_flags = -Wp,-MD,$(depfile) $(_hostcxx_flags)
8280

8381
#####
8482
# Compile programs on the host

scripts/Makefile.lib

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -137,36 +137,26 @@ _c_flags += $(if $(patsubst n%,, \
137137
$(CFLAGS_KCOV))
138138
endif
139139

140-
__c_flags = $(_c_flags)
141-
__a_flags = $(_a_flags)
142-
__cpp_flags = $(_cpp_flags)
143-
144-
# If building the kernel in a separate objtree expand all occurrences
145-
# of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/').
140+
# $(srctree)/$(src) for including checkin headers from generated source files
141+
# $(objtree)/$(obj) for including generated headers from checkin source files
146142
ifeq ($(KBUILD_EXTMOD),)
147143
ifneq ($(srctree),.)
148-
149-
# -I$(obj) locates generated .h files
150-
# $(call addtree,-I$(obj)) locates .h files in srctree, from generated .c files
151-
# and locates generated .h files
152-
# FIXME: Replace both with specific CFLAGS* statements in the makefiles
153-
__c_flags = $(if $(obj),$(call addtree,-I$(src)) -I$(obj)) \
154-
$(call flags,_c_flags)
155-
__a_flags = $(call flags,_a_flags)
156-
__cpp_flags = $(call flags,_cpp_flags)
144+
_c_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj)
145+
_a_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj)
146+
_cpp_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj)
157147
endif
158148
endif
159149

160150
c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
161151
-include $(srctree)/include/linux/compiler_types.h \
162-
$(__c_flags) $(modkern_cflags) \
152+
$(_c_flags) $(modkern_cflags) \
163153
$(basename_flags) $(modname_flags)
164154

165155
a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
166-
$(__a_flags) $(modkern_aflags)
156+
$(_a_flags) $(modkern_aflags)
167157

168158
cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
169-
$(__cpp_flags)
159+
$(_cpp_flags)
170160

171161
ld_flags = $(KBUILD_LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
172162

0 commit comments

Comments
 (0)