Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'kbuild-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild

Pull Kbuild updates from Masahiro Yamada:

- remove headers_{install,check}_all targets

- remove unreasonable 'depends on !UML' from CONFIG_SAMPLES

- re-implement 'make headers_install' more cleanly

- add new header-test-y syntax to compile-test headers

- compile-test exported headers to ensure they are compilable in
user-space

- compile-test headers under include/ to ensure they are self-contained

- remove -Waggregate-return, -Wno-uninitialized, -Wno-unused-value
flags

- add -Werror=unknown-warning-option for Clang

- add 128-bit built-in types support to genksyms

- fix missed rebuild of modules.builtin

- propagate 'No space left on device' error in fixdep to Make

- allow Clang to use its integrated assembler

- improve some coccinelle scripts

- add a new flag KBUILD_ABS_SRCTREE to request Kbuild to use absolute
path for $(srctree).

- do not ignore errors when compression utility is missing

- misc cleanups

* tag 'kbuild-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (49 commits)
kbuild: use -- separater intead of $(filter-out ...) for cc-cross-prefix
kbuild: Inform user to pass ARCH= for make mrproper
kbuild: fix compression errors getting ignored
kbuild: add a flag to force absolute path for srctree
kbuild: replace KBUILD_SRCTREE with boolean building_out_of_srctree
kbuild: remove src and obj from the top Makefile
scripts/tags.sh: remove unused environment variables from comments
scripts/tags.sh: drop SUBARCH support for ARM
kbuild: compile-test kernel headers to ensure they are self-contained
kheaders: include only headers into kheaders_data.tar.xz
kheaders: remove meaningless -R option of 'ls'
kbuild: support header-test-pattern-y
kbuild: do not create wrappers for header-test-y
kbuild: compile-test exported headers to ensure they are self-contained
init/Kconfig: add CONFIG_CC_CAN_LINK
kallsyms: exclude kasan local symbols on s390
kbuild: add more hints about SUBDIRS replacement
coccinelle: api/stream_open: treat all wait_.*() calls as blocking
coccinelle: put_device: Add a cast to an expression for an assignment
coccinelle: put_device: Adjust a message construction
...

+1811 -464
-7
Documentation/kbuild/headers_install.rst
··· 40 40 An 'include' directory is automatically created inside INSTALL_HDR_PATH and 41 41 headers are installed in 'INSTALL_HDR_PATH/include'. 42 42 43 - The command "make headers_install_all" exports headers for all architectures 44 - simultaneously. (This is mostly of interest to distribution maintainers, 45 - who create an architecture-independent tarball from the resulting include 46 - directory.) You also can use HDR_ARCH_LIST to specify list of architectures. 47 - Remember to provide the appropriate linux/asm directory via "mv" or "ln -s" 48 - before building a C library with headers exported this way. 49 - 50 43 The kernel header export infrastructure is maintained by David Woodhouse 51 44 <dwmw2@infradead.org>.
+9
Documentation/kbuild/kbuild.rst
··· 200 200 201 201 The value can be overridden in which case the default value is ignored. 202 202 203 + KBUILD_ABS_SRCTREE 204 + -------------------------------------------------- 205 + Kbuild uses a relative path to point to the tree when possible. For instance, 206 + when building in the source tree, the source tree path is '.' 207 + 208 + Setting this flag requests Kbuild to use absolute path to the source tree. 209 + There are some useful cases to do so, like when generating tag files with 210 + absolute path entries etc. 211 + 203 212 KBUILD_SIGN_PIN 204 213 --------------- 205 214 This variable allows a passphrase or PIN to be passed to the sign-file
+17 -5
Documentation/kbuild/makefiles.rst
··· 999 999 ------------------------------------ 1000 1000 1001 1001 The archheaders: rule is used to generate header files that 1002 - may be installed into user space by "make header_install" or 1003 - "make headers_install_all". In order to support 1004 - "make headers_install_all", this target has to be able to run 1005 - on an unconfigured tree, or a tree configured for another 1006 - architecture. 1002 + may be installed into user space by "make header_install". 1007 1003 1008 1004 It is run before "make archprepare" when run on the 1009 1005 architecture itself. ··· 1136 1140 In this example, extra-y is used to list object files that 1137 1141 shall be built, but shall not be linked as part of built-in.a. 1138 1142 1143 + header-test-y 1144 + 1145 + header-test-y specifies headers (*.h) in the current directory that 1146 + should be compile tested to ensure they are self-contained, 1147 + i.e. compilable as standalone units. If CONFIG_HEADER_TEST is enabled, 1148 + this builds them as part of extra-y. 1149 + 1150 + header-test-pattern-y 1151 + 1152 + This works as a weaker version of header-test-y, and accepts wildcard 1153 + patterns. The typical usage is: 1154 + 1155 + header-test-pattern-y += *.h 1156 + 1157 + This specifies all the files that matches to '*.h' in the current 1158 + directory, but the files in 'header-test-' are excluded. 1139 1159 1140 1160 6.7 Commands useful for building a boot image 1141 1161 ---------------------------------------------
+66 -51
Makefile
··· 212 212 ifdef SUBDIRS 213 213 $(warning ================= WARNING ================) 214 214 $(warning 'SUBDIRS' will be removed after Linux 5.3) 215 + $(warning ) 216 + $(warning If you are building an individual subdirectory) 217 + $(warning in the kernel tree, you can do like this:) 218 + $(warning $$ make path/to/dir/you/want/to/build/) 219 + $(warning (Do not forget the trailing slash)) 220 + $(warning ) 221 + $(warning If you are building an external module,) 215 222 $(warning Please use 'M=' or 'KBUILD_EXTMOD' instead) 216 223 $(warning ==========================================) 217 224 KBUILD_EXTMOD ?= $(SUBDIRS) ··· 228 221 KBUILD_EXTMOD := $(M) 229 222 endif 230 223 224 + export KBUILD_CHECKSRC KBUILD_EXTMOD 225 + 231 226 ifeq ($(abs_srctree),$(abs_objtree)) 232 227 # building in the source tree 233 228 srctree := . 229 + building_out_of_srctree := 234 230 else 235 231 ifeq ($(abs_srctree)/,$(dir $(abs_objtree))) 236 232 # building in a subdirectory of the source tree ··· 241 231 else 242 232 srctree := $(abs_srctree) 243 233 endif 244 - 245 - # TODO: 246 - # KBUILD_SRC is only used to distinguish in-tree/out-of-tree build. 247 - # Replace it with $(srctree) or something. 248 - KBUILD_SRC := $(abs_srctree) 234 + building_out_of_srctree := 1 249 235 endif 250 236 251 - export KBUILD_CHECKSRC KBUILD_EXTMOD KBUILD_SRC 237 + ifneq ($(KBUILD_ABS_SRCTREE),) 238 + srctree := $(abs_srctree) 239 + endif 252 240 253 241 objtree := . 254 - src := $(srctree) 255 - obj := $(objtree) 256 - 257 242 VPATH := $(srctree) 258 243 259 - export srctree objtree VPATH 244 + export building_out_of_srctree srctree objtree VPATH 260 245 261 246 # To make sure we do not include .config for any of the *config targets 262 247 # catch them early, and hand them over to scripts/kconfig/Makefile ··· 267 262 clean-targets := %clean mrproper cleandocs 268 263 no-dot-config-targets := $(clean-targets) \ 269 264 cscope gtags TAGS tags help% %docs check% coccicheck \ 270 - $(version_h) headers_% archheaders archscripts \ 265 + $(version_h) headers headers_% archheaders archscripts \ 271 266 %asm-generic kernelversion %src-pkg 272 267 no-sync-config-targets := $(no-dot-config-targets) install %install \ 273 268 kernelrelease ··· 454 449 LINUXINCLUDE := \ 455 450 -I$(srctree)/arch/$(SRCARCH)/include \ 456 451 -I$(objtree)/arch/$(SRCARCH)/include/generated \ 457 - $(if $(filter .,$(srctree)),,-I$(srctree)/include) \ 452 + $(if $(building_out_of_srctree),-I$(srctree)/include) \ 458 453 -I$(objtree)/include \ 459 454 $(USERINCLUDE) 460 455 ··· 515 510 # At the same time when output Makefile generated, generate .gitignore to 516 511 # ignore whole output directory 517 512 outputmakefile: 518 - ifneq ($(srctree),.) 513 + ifdef building_out_of_srctree 519 514 $(Q)ln -fsn $(srctree) source 520 515 $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree) 521 516 $(Q)test -e .gitignore || \ ··· 532 527 ifneq ($(GCC_TOOLCHAIN),) 533 528 CLANG_FLAGS += --gcc-toolchain=$(GCC_TOOLCHAIN) 534 529 endif 530 + ifeq ($(shell $(AS) --version 2>&1 | head -n 1 | grep clang),) 535 531 CLANG_FLAGS += -no-integrated-as 532 + endif 533 + CLANG_FLAGS += -Werror=unknown-warning-option 536 534 KBUILD_CFLAGS += $(CLANG_FLAGS) 537 535 KBUILD_AFLAGS += $(CLANG_FLAGS) 538 536 export CLANG_FLAGS ··· 616 608 init-y := init/ 617 609 drivers-y := drivers/ sound/ 618 610 drivers-$(CONFIG_SAMPLES) += samples/ 611 + drivers-$(CONFIG_KERNEL_HEADER_TEST) += include/ 619 612 net-y := net/ 620 613 libs-y := lib/ 621 614 core-y := usr/ ··· 1062 1053 1063 1054 targets := vmlinux 1064 1055 1065 - # Some samples need headers_install. 1066 - samples: headers_install 1067 - 1068 1056 # The actual objects are generated when descending, 1069 1057 # make sure no implicit rule kicks in 1070 1058 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; ··· 1102 1096 # and if so do: 1103 1097 # 1) Check that make has not been executed in the kernel src $(srctree) 1104 1098 prepare3: include/config/kernel.release 1105 - ifneq ($(srctree),.) 1099 + ifdef building_out_of_srctree 1106 1100 @$(kecho) ' Using $(srctree) as source for kernel' 1107 1101 $(Q)if [ -f $(srctree)/.config -o \ 1108 1102 -d $(srctree)/include/config -o \ 1109 1103 -d $(srctree)/arch/$(SRCARCH)/include/generated ]; then \ 1110 - echo >&2 " $(srctree) is not clean, please run 'make mrproper'"; \ 1104 + echo >&2 " $(srctree) is not clean, please run 'make ARCH=$(ARCH) mrproper'"; \ 1111 1105 echo >&2 " in the '$(srctree)' directory.";\ 1112 1106 /bin/false; \ 1113 1107 fi; ··· 1187 1181 #Default location for installed headers 1188 1182 export INSTALL_HDR_PATH = $(objtree)/usr 1189 1183 1190 - # If we do an all arch process set dst to include/arch-$(SRCARCH) 1191 - hdr-dst = $(if $(KBUILD_HEADERS), dst=include/arch-$(SRCARCH), dst=include) 1184 + quiet_cmd_headers_install = INSTALL $(INSTALL_HDR_PATH)/include 1185 + cmd_headers_install = \ 1186 + mkdir -p $(INSTALL_HDR_PATH); \ 1187 + rsync -mrl --include='*/' --include='*\.h' --exclude='*' \ 1188 + usr/include $(INSTALL_HDR_PATH) 1189 + 1190 + PHONY += headers_install 1191 + headers_install: headers 1192 + $(call cmd,headers_install) 1192 1193 1193 1194 PHONY += archheaders archscripts 1194 1195 1195 - PHONY += __headers 1196 - __headers: $(version_h) scripts_basic uapi-asm-generic archheaders archscripts 1197 - $(Q)$(MAKE) $(build)=scripts build_unifdef 1196 + hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj 1198 1197 1199 - PHONY += headers_install_all 1200 - headers_install_all: 1201 - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/headers.sh install 1202 - 1203 - PHONY += headers_install 1204 - headers_install: __headers 1198 + PHONY += headers 1199 + headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts 1205 1200 $(if $(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/Kbuild),, \ 1206 1201 $(error Headers not exportable for the $(SRCARCH) architecture)) 1207 - $(Q)$(MAKE) $(hdr-inst)=include/uapi dst=include 1208 - $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi $(hdr-dst) 1209 - 1210 - PHONY += headers_check_all 1211 - headers_check_all: headers_install_all 1212 - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/headers.sh check 1202 + $(Q)$(MAKE) $(hdr-inst)=include/uapi 1203 + $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi 1213 1204 1214 1205 PHONY += headers_check 1215 - headers_check: headers_install 1216 - $(Q)$(MAKE) $(hdr-inst)=include/uapi dst=include HDRCHECK=1 1217 - $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi $(hdr-dst) HDRCHECK=1 1206 + headers_check: headers 1207 + $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 1208 + $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi HDRCHECK=1 1209 + 1210 + ifdef CONFIG_HEADERS_INSTALL 1211 + prepare: headers 1212 + endif 1218 1213 1219 1214 ifdef CONFIG_HEADERS_CHECK 1220 1215 all: headers_check 1221 1216 endif 1217 + 1218 + PHONY += scripts_unifdef 1219 + scripts_unifdef: scripts_basic 1220 + $(Q)$(MAKE) $(build)=scripts scripts/unifdef 1222 1221 1223 1222 # --------------------------------------------------------------------------- 1224 1223 # Kernel selftest ··· 1294 1283 # using awk while concatenating to the final file. 1295 1284 1296 1285 PHONY += modules 1297 - modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin 1298 - $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order 1286 + modules: $(if $(KBUILD_BUILTIN),vmlinux) modules.order modules.builtin 1299 1287 @$(kecho) ' Building modules, stage 2.'; 1300 1288 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost 1301 1289 $(Q)$(CONFIG_SHELL) $(srctree)/scripts/modules-check.sh 1302 1290 1303 - modules.builtin: $(vmlinux-dirs:%=%/modules.builtin) 1304 - $(Q)$(AWK) '!x[$$0]++' $^ > $(objtree)/modules.builtin 1291 + modules.order: $(vmlinux-dirs) 1292 + $(Q)$(AWK) '!x[$$0]++' $(addsuffix /$@, $(vmlinux-dirs)) > $@ 1305 1293 1306 - %/modules.builtin: include/config/auto.conf include/config/tristate.conf 1307 - $(Q)$(MAKE) $(modbuiltin)=$* 1294 + modbuiltin-dirs := $(addprefix _modbuiltin_, $(vmlinux-dirs)) 1308 1295 1296 + modules.builtin: $(modbuiltin-dirs) 1297 + $(Q)$(AWK) '!x[$$0]++' $(addsuffix /$@, $(vmlinux-dirs)) > $@ 1298 + 1299 + PHONY += $(modbuiltin-dirs) 1300 + # tristate.conf is not included from this Makefile. Add it as a prerequisite 1301 + # here to make it self-healing in case somebody accidentally removes it. 1302 + $(modbuiltin-dirs): include/config/tristate.conf 1303 + $(Q)$(MAKE) $(modbuiltin)=$(patsubst _modbuiltin_%,%,$@) 1309 1304 1310 1305 # Target to prepare building external modules 1311 1306 PHONY += modules_prepare ··· 1377 1360 CLEAN_FILES += modules.builtin.modinfo 1378 1361 1379 1362 # Directories & files removed with 'make mrproper' 1380 - MRPROPER_DIRS += include/config usr/include include/generated \ 1363 + MRPROPER_DIRS += include/config include/generated \ 1381 1364 arch/$(SRCARCH)/include/generated .tmp_objdiff 1382 1365 MRPROPER_FILES += .config .config.old .version \ 1383 1366 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \ ··· 1568 1551 # --------------------------------------------------------------------------- 1569 1552 1570 1553 PHONY += scripts_gdb 1571 - scripts_gdb: prepare 1554 + scripts_gdb: prepare0 1572 1555 $(Q)$(MAKE) $(build)=scripts/gdb 1573 1556 $(Q)ln -fsn $(abspath $(srctree)/scripts/gdb/vmlinux-gdb.py) 1574 1557 ··· 1715 1698 endif 1716 1699 checkstack: 1717 1700 $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \ 1718 - $(PERL) $(src)/scripts/checkstack.pl $(CHECKSTACK_ARCH) 1701 + $(PERL) $(srctree)/scripts/checkstack.pl $(CHECKSTACK_ARCH) 1719 1702 1720 1703 kernelrelease: 1721 1704 @echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))" ··· 1734 1717 1735 1718 tools/: FORCE 1736 1719 $(Q)mkdir -p $(objtree)/tools 1737 - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(src)/tools/ 1720 + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ 1738 1721 1739 1722 tools/%: FORCE 1740 1723 $(Q)mkdir -p $(objtree)/tools 1741 - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(src)/tools/ $* 1724 + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ $* 1742 1725 1743 1726 # Single targets 1744 1727 # --------------------------------------------------------------------------- ··· 1772 1755 PHONY += / 1773 1756 /: ./ 1774 1757 1775 - # Make sure the latest headers are built for Documentation 1776 - Documentation/ samples/: headers_install 1777 1758 %/: prepare FORCE 1778 1759 $(Q)$(MAKE) KBUILD_MODULES=1 $(build)=$(build-dir) 1779 1760
+1 -1
arch/arc/Makefile
··· 19 19 # any kernel headers, and missing the r25 global register 20 20 # Can't do unconditionally because of recursive include issues 21 21 # due to <linux/thread_info.h> 22 - LINUXINCLUDE += -include ${src}/arch/arc/include/asm/current.h 22 + LINUXINCLUDE += -include $(srctree)/arch/arc/include/asm/current.h 23 23 endif 24 24 25 25 cflags-y += -fsection-anchors
+1
arch/arc/configs/tb10x_defconfig
··· 94 94 CONFIG_DEBUG_INFO=y 95 95 CONFIG_STRIP_ASM_SYMS=y 96 96 CONFIG_DEBUG_FS=y 97 + CONFIG_HEADERS_INSTALL=y 97 98 CONFIG_HEADERS_CHECK=y 98 99 CONFIG_DEBUG_SECTION_MISMATCH=y 99 100 CONFIG_MAGIC_SYSRQ=y
+1
arch/nds32/configs/defconfig
··· 92 92 CONFIG_DEBUG_INFO_DWARF4=y 93 93 CONFIG_GDB_SCRIPTS=y 94 94 CONFIG_READABLE_ASM=y 95 + CONFIG_HEADERS_INSTALL=y 95 96 CONFIG_HEADERS_CHECK=y 96 97 CONFIG_DEBUG_SECTION_MISMATCH=y 97 98 CONFIG_MAGIC_SYSRQ=y
+6 -6
arch/parisc/Makefile
··· 120 120 elif [ -x /sbin/palo ]; then echo /sbin/palo; \ 121 121 fi) 122 122 123 - PALOCONF := $(shell if [ -f $(src)/palo.conf ]; then echo $(src)/palo.conf; \ 124 - else echo $(obj)/palo.conf; \ 123 + PALOCONF := $(shell if [ -f $(srctree)/palo.conf ]; then echo $(srctree)/palo.conf; \ 124 + else echo $(objtree)/palo.conf; \ 125 125 fi) 126 126 127 127 palo lifimage: vmlinuz ··· 131 131 false; \ 132 132 fi 133 133 @if test ! -f "$(PALOCONF)"; then \ 134 - cp $(src)/arch/parisc/defpalo.conf $(obj)/palo.conf; \ 135 - echo 'A generic palo config file ($(obj)/palo.conf) has been created for you.'; \ 134 + cp $(srctree)/arch/parisc/defpalo.conf $(objtree)/palo.conf; \ 135 + echo 'A generic palo config file ($(objree)/palo.conf) has been created for you.'; \ 136 136 echo 'You should check it and re-run "make palo".'; \ 137 137 echo 'WARNING: the "lifimage" file is now placed in this directory by default!'; \ 138 138 false; \ ··· 162 162 endif 163 163 164 164 install: 165 - $(CONFIG_SHELL) $(src)/arch/parisc/install.sh \ 165 + $(CONFIG_SHELL) $(srctree)/arch/parisc/install.sh \ 166 166 $(KERNELRELEASE) vmlinux System.map "$(INSTALL_PATH)" 167 167 zinstall: 168 - $(CONFIG_SHELL) $(src)/arch/parisc/install.sh \ 168 + $(CONFIG_SHELL) $(srctree)/arch/parisc/install.sh \ 169 169 $(KERNELRELEASE) vmlinuz System.map "$(INSTALL_PATH)" 170 170 171 171 CLEAN_FILES += lifimage
+1
arch/parisc/configs/a500_defconfig
··· 166 166 CONFIG_NLS_ISO8859_15=m 167 167 CONFIG_NLS_UTF8=m 168 168 CONFIG_DEBUG_FS=y 169 + CONFIG_HEADERS_INSTALL=y 169 170 CONFIG_HEADERS_CHECK=y 170 171 CONFIG_MAGIC_SYSRQ=y 171 172 # CONFIG_DEBUG_BUGVERBOSE is not set
+1
arch/parisc/configs/b180_defconfig
··· 90 90 CONFIG_NLS_ISO8859_1=m 91 91 CONFIG_NLS_ISO8859_15=m 92 92 CONFIG_NLS_UTF8=m 93 + CONFIG_HEADERS_INSTALL=y 93 94 CONFIG_HEADERS_CHECK=y 94 95 CONFIG_MAGIC_SYSRQ=y 95 96 CONFIG_DEBUG_KERNEL=y
+1
arch/parisc/configs/c3000_defconfig
··· 139 139 CONFIG_NLS_ISO8859_15=m 140 140 CONFIG_NLS_UTF8=m 141 141 CONFIG_DEBUG_FS=y 142 + CONFIG_HEADERS_INSTALL=y 142 143 CONFIG_HEADERS_CHECK=y 143 144 CONFIG_MAGIC_SYSRQ=y 144 145 CONFIG_DEBUG_MUTEXES=y
+1
arch/parisc/configs/default_defconfig
··· 183 183 CONFIG_NLS_KOI8_U=m 184 184 CONFIG_NLS_UTF8=y 185 185 CONFIG_DEBUG_FS=y 186 + CONFIG_HEADERS_INSTALL=y 186 187 CONFIG_HEADERS_CHECK=y 187 188 CONFIG_MAGIC_SYSRQ=y 188 189 CONFIG_DEBUG_KERNEL=y
+1
arch/powerpc/configs/ppc6xx_defconfig
··· 1123 1123 CONFIG_NLS_KOI8_U=m 1124 1124 CONFIG_DEBUG_INFO=y 1125 1125 CONFIG_UNUSED_SYMBOLS=y 1126 + CONFIG_HEADERS_INSTALL=y 1126 1127 CONFIG_HEADERS_CHECK=y 1127 1128 CONFIG_MAGIC_SYSRQ=y 1128 1129 CONFIG_DEBUG_KERNEL=y
+1
arch/s390/configs/debug_defconfig
··· 588 588 CONFIG_FRAME_WARN=1024 589 589 CONFIG_READABLE_ASM=y 590 590 CONFIG_UNUSED_SYMBOLS=y 591 + CONFIG_HEADERS_INSTALL=y 591 592 CONFIG_HEADERS_CHECK=y 592 593 CONFIG_DEBUG_SECTION_MISMATCH=y 593 594 CONFIG_MAGIC_SYSRQ=y
+1 -1
arch/um/Makefile
··· 73 73 USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -I%,,$(KBUILD_CFLAGS))) \ 74 74 $(ARCH_INCLUDE) $(MODE_INCLUDE) $(filter -I%,$(CFLAGS)) \ 75 75 -D_FILE_OFFSET_BITS=64 -idirafter $(srctree)/include \ 76 - -idirafter $(obj)/include -D__KERNEL__ -D__UM_HOST__ 76 + -idirafter $(objtree)/include -D__KERNEL__ -D__UM_HOST__ 77 77 78 78 #This will adjust *FLAGS accordingly to the platform. 79 79 include $(ARCH_DIR)/Makefile-os-$(OS)
-1
drivers/gpu/drm/i915/.gitignore
··· 1 - header_test_*.c
+1 -11
drivers/gpu/drm/i915/Makefile.header-test
··· 2 2 # Copyright © 2019 Intel Corporation 3 3 4 4 # Test the headers are compilable as standalone units 5 - header_test := \ 5 + header-test-$(CONFIG_DRM_I915_WERROR) := \ 6 6 i915_active_types.h \ 7 7 i915_gem_context_types.h \ 8 8 i915_priolist_types.h \ ··· 35 35 intel_sprite.h \ 36 36 intel_tv.h \ 37 37 intel_workarounds_types.h 38 - 39 - quiet_cmd_header_test = HDRTEST $@ 40 - cmd_header_test = echo "\#include \"$(<F)\"" > $@ 41 - 42 - header_test_%.c: %.h 43 - $(call cmd,header_test) 44 - 45 - i915-$(CONFIG_DRM_I915_WERROR) += $(foreach h,$(header_test),$(patsubst %.h,header_test_%.o,$(h))) 46 - 47 - clean-files += $(foreach h,$(header_test),$(patsubst %.h,header_test_%.c,$(h)))
+1270
include/Kbuild
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + 3 + # Add header-test-$(CONFIG_...) guard to headers that are only compiled 4 + # for particular architectures. 5 + # 6 + # Headers listed in header-test- are excluded from the test coverage. 7 + # Many headers are excluded for now because they fail to build. Please 8 + # consider to fix headers first before adding new ones to the blacklist. 9 + # 10 + # Sorted alphabetically. 11 + header-test- += acpi/acbuffer.h 12 + header-test- += acpi/acpi.h 13 + header-test- += acpi/acpi_bus.h 14 + header-test- += acpi/acpi_drivers.h 15 + header-test- += acpi/acpi_io.h 16 + header-test- += acpi/acpi_lpat.h 17 + header-test- += acpi/acpiosxf.h 18 + header-test- += acpi/acpixf.h 19 + header-test- += acpi/acrestyp.h 20 + header-test- += acpi/actbl.h 21 + header-test- += acpi/actbl1.h 22 + header-test- += acpi/actbl2.h 23 + header-test- += acpi/actbl3.h 24 + header-test- += acpi/actypes.h 25 + header-test- += acpi/battery.h 26 + header-test- += acpi/cppc_acpi.h 27 + header-test- += acpi/nfit.h 28 + header-test- += acpi/platform/acenv.h 29 + header-test- += acpi/platform/acenvex.h 30 + header-test- += acpi/platform/acintel.h 31 + header-test- += acpi/platform/aclinux.h 32 + header-test- += acpi/platform/aclinuxex.h 33 + header-test- += acpi/processor.h 34 + header-test- += clocksource/hyperv_timer.h 35 + header-test- += clocksource/timer-sp804.h 36 + header-test- += crypto/cast_common.h 37 + header-test- += crypto/internal/cryptouser.h 38 + header-test- += crypto/pkcs7.h 39 + header-test- += crypto/poly1305.h 40 + header-test- += crypto/sha3.h 41 + header-test- += drm/ati_pcigart.h 42 + header-test- += drm/bridge/dw_hdmi.h 43 + header-test- += drm/bridge/dw_mipi_dsi.h 44 + header-test- += drm/drm_audio_component.h 45 + header-test- += drm/drm_auth.h 46 + header-test- += drm/drm_debugfs.h 47 + header-test- += drm/drm_debugfs_crc.h 48 + header-test- += drm/drm_displayid.h 49 + header-test- += drm/drm_encoder_slave.h 50 + header-test- += drm/drm_fb_cma_helper.h 51 + header-test- += drm/drm_fb_helper.h 52 + header-test- += drm/drm_fixed.h 53 + header-test- += drm/drm_format_helper.h 54 + header-test- += drm/drm_lease.h 55 + header-test- += drm/drm_legacy.h 56 + header-test- += drm/drm_panel.h 57 + header-test- += drm/drm_plane_helper.h 58 + header-test- += drm/drm_rect.h 59 + header-test- += drm/i915_component.h 60 + header-test- += drm/intel-gtt.h 61 + header-test- += drm/tinydrm/tinydrm-helpers.h 62 + header-test- += drm/ttm/ttm_debug.h 63 + header-test- += keys/asymmetric-parser.h 64 + header-test- += keys/asymmetric-subtype.h 65 + header-test- += keys/asymmetric-type.h 66 + header-test- += keys/big_key-type.h 67 + header-test- += keys/request_key_auth-type.h 68 + header-test- += keys/trusted.h 69 + header-test- += kvm/arm_arch_timer.h 70 + header-test- += kvm/arm_pmu.h 71 + header-test-$(CONFIG_ARM) += kvm/arm_psci.h 72 + header-test-$(CONFIG_ARM64) += kvm/arm_psci.h 73 + header-test- += kvm/arm_vgic.h 74 + header-test- += linux/8250_pci.h 75 + header-test- += linux/a.out.h 76 + header-test- += linux/adxl.h 77 + header-test- += linux/agpgart.h 78 + header-test- += linux/alcor_pci.h 79 + header-test- += linux/amba/clcd.h 80 + header-test- += linux/amba/pl080.h 81 + header-test- += linux/amd-iommu.h 82 + header-test-$(CONFIG_ARM) += linux/arm-cci.h 83 + header-test-$(CONFIG_ARM64) += linux/arm-cci.h 84 + header-test- += linux/arm_sdei.h 85 + header-test- += linux/asn1_decoder.h 86 + header-test- += linux/ata_platform.h 87 + header-test- += linux/ath9k_platform.h 88 + header-test- += linux/atm_tcp.h 89 + header-test- += linux/atomic-fallback.h 90 + header-test- += linux/avf/virtchnl.h 91 + header-test- += linux/bcm47xx_sprom.h 92 + header-test- += linux/bcma/bcma_driver_gmac_cmn.h 93 + header-test- += linux/bcma/bcma_driver_mips.h 94 + header-test- += linux/bcma/bcma_driver_pci.h 95 + header-test- += linux/bcma/bcma_driver_pcie2.h 96 + header-test- += linux/bit_spinlock.h 97 + header-test- += linux/blk-mq-rdma.h 98 + header-test- += linux/blk-mq.h 99 + header-test- += linux/blktrace_api.h 100 + header-test- += linux/blockgroup_lock.h 101 + header-test- += linux/bma150.h 102 + header-test- += linux/bpf_lirc.h 103 + header-test- += linux/bpf_types.h 104 + header-test- += linux/bsg-lib.h 105 + header-test- += linux/bsg.h 106 + header-test- += linux/btf.h 107 + header-test- += linux/btree-128.h 108 + header-test- += linux/btree-type.h 109 + header-test-$(CONFIG_CPU_BIG_ENDIAN) += linux/byteorder/big_endian.h 110 + header-test- += linux/byteorder/generic.h 111 + header-test-$(CONFIG_CPU_LITTLE_ENDIAN) += linux/byteorder/little_endian.h 112 + header-test- += linux/c2port.h 113 + header-test- += linux/can/dev/peak_canfd.h 114 + header-test- += linux/can/platform/cc770.h 115 + header-test- += linux/can/platform/sja1000.h 116 + header-test- += linux/ceph/ceph_features.h 117 + header-test- += linux/ceph/ceph_frag.h 118 + header-test- += linux/ceph/ceph_fs.h 119 + header-test- += linux/ceph/debugfs.h 120 + header-test- += linux/ceph/msgr.h 121 + header-test- += linux/ceph/rados.h 122 + header-test- += linux/cgroup_subsys.h 123 + header-test- += linux/clk/sunxi-ng.h 124 + header-test- += linux/clk/ti.h 125 + header-test- += linux/cn_proc.h 126 + header-test- += linux/coda_psdev.h 127 + header-test- += linux/compaction.h 128 + header-test- += linux/console_struct.h 129 + header-test- += linux/count_zeros.h 130 + header-test- += linux/cs5535.h 131 + header-test- += linux/cuda.h 132 + header-test- += linux/cyclades.h 133 + header-test- += linux/dcookies.h 134 + header-test- += linux/delayacct.h 135 + header-test- += linux/delayed_call.h 136 + header-test- += linux/device-mapper.h 137 + header-test- += linux/devpts_fs.h 138 + header-test- += linux/dio.h 139 + header-test- += linux/dirent.h 140 + header-test- += linux/dlm_plock.h 141 + header-test- += linux/dm-dirty-log.h 142 + header-test- += linux/dm-region-hash.h 143 + header-test- += linux/dma-debug.h 144 + header-test- += linux/dma/mmp-pdma.h 145 + header-test- += linux/dma/sprd-dma.h 146 + header-test- += linux/dns_resolver.h 147 + header-test- += linux/drbd_genl.h 148 + header-test- += linux/drbd_genl_api.h 149 + header-test- += linux/dw_apb_timer.h 150 + header-test- += linux/dynamic_debug.h 151 + header-test- += linux/dynamic_queue_limits.h 152 + header-test- += linux/ecryptfs.h 153 + header-test- += linux/edma.h 154 + header-test- += linux/eeprom_93cx6.h 155 + header-test- += linux/efs_vh.h 156 + header-test- += linux/elevator.h 157 + header-test- += linux/elfcore-compat.h 158 + header-test- += linux/error-injection.h 159 + header-test- += linux/errseq.h 160 + header-test- += linux/eventpoll.h 161 + header-test- += linux/ext2_fs.h 162 + header-test- += linux/f75375s.h 163 + header-test- += linux/falloc.h 164 + header-test- += linux/fault-inject.h 165 + header-test- += linux/fbcon.h 166 + header-test- += linux/firmware/intel/stratix10-svc-client.h 167 + header-test- += linux/firmware/meson/meson_sm.h 168 + header-test- += linux/firmware/trusted_foundations.h 169 + header-test- += linux/firmware/xlnx-zynqmp.h 170 + header-test- += linux/fixp-arith.h 171 + header-test- += linux/flat.h 172 + header-test- += linux/fs_types.h 173 + header-test- += linux/fs_uart_pd.h 174 + header-test- += linux/fsi-occ.h 175 + header-test- += linux/fsi-sbefifo.h 176 + header-test- += linux/fsl/bestcomm/ata.h 177 + header-test- += linux/fsl/bestcomm/bestcomm.h 178 + header-test- += linux/fsl/bestcomm/bestcomm_priv.h 179 + header-test- += linux/fsl/bestcomm/fec.h 180 + header-test- += linux/fsl/bestcomm/gen_bd.h 181 + header-test- += linux/fsl/bestcomm/sram.h 182 + header-test- += linux/fsl_hypervisor.h 183 + header-test- += linux/fsldma.h 184 + header-test- += linux/ftrace_irq.h 185 + header-test- += linux/gameport.h 186 + header-test- += linux/genl_magic_func.h 187 + header-test- += linux/genl_magic_struct.h 188 + header-test- += linux/gpio/aspeed.h 189 + header-test- += linux/gpio/gpio-reg.h 190 + header-test- += linux/hid-debug.h 191 + header-test- += linux/hiddev.h 192 + header-test- += linux/hippidevice.h 193 + header-test- += linux/hmm.h 194 + header-test- += linux/hp_sdc.h 195 + header-test- += linux/huge_mm.h 196 + header-test- += linux/hugetlb_cgroup.h 197 + header-test- += linux/hugetlb_inline.h 198 + header-test- += linux/hwmon-vid.h 199 + header-test- += linux/hyperv.h 200 + header-test- += linux/i2c-algo-pca.h 201 + header-test- += linux/i2c-algo-pcf.h 202 + header-test- += linux/i3c/ccc.h 203 + header-test- += linux/i3c/device.h 204 + header-test- += linux/i3c/master.h 205 + header-test- += linux/i8042.h 206 + header-test- += linux/ide.h 207 + header-test- += linux/idle_inject.h 208 + header-test- += linux/if_frad.h 209 + header-test- += linux/if_rmnet.h 210 + header-test- += linux/if_tap.h 211 + header-test- += linux/iio/accel/kxcjk_1013.h 212 + header-test- += linux/iio/adc/ad_sigma_delta.h 213 + header-test- += linux/iio/buffer-dma.h 214 + header-test- += linux/iio/buffer_impl.h 215 + header-test- += linux/iio/common/st_sensors.h 216 + header-test- += linux/iio/common/st_sensors_i2c.h 217 + header-test- += linux/iio/common/st_sensors_spi.h 218 + header-test- += linux/iio/dac/ad5421.h 219 + header-test- += linux/iio/dac/ad5504.h 220 + header-test- += linux/iio/dac/ad5791.h 221 + header-test- += linux/iio/dac/max517.h 222 + header-test- += linux/iio/dac/mcp4725.h 223 + header-test- += linux/iio/frequency/ad9523.h 224 + header-test- += linux/iio/frequency/adf4350.h 225 + header-test- += linux/iio/hw-consumer.h 226 + header-test- += linux/iio/imu/adis.h 227 + header-test- += linux/iio/sysfs.h 228 + header-test- += linux/iio/timer/stm32-timer-trigger.h 229 + header-test- += linux/iio/trigger.h 230 + header-test- += linux/iio/triggered_event.h 231 + header-test- += linux/imx-media.h 232 + header-test- += linux/inet_diag.h 233 + header-test- += linux/init_ohci1394_dma.h 234 + header-test- += linux/initrd.h 235 + header-test- += linux/input/adp5589.h 236 + header-test- += linux/input/bu21013.h 237 + header-test- += linux/input/cma3000.h 238 + header-test- += linux/input/kxtj9.h 239 + header-test- += linux/input/lm8333.h 240 + header-test- += linux/input/sparse-keymap.h 241 + header-test- += linux/input/touchscreen.h 242 + header-test- += linux/input/tps6507x-ts.h 243 + header-test-$(CONFIG_X86) += linux/intel-iommu.h 244 + header-test- += linux/intel-ish-client-if.h 245 + header-test- += linux/intel-pti.h 246 + header-test- += linux/intel-svm.h 247 + header-test- += linux/interconnect-provider.h 248 + header-test- += linux/ioc3.h 249 + header-test- += linux/ipack.h 250 + header-test- += linux/irq_cpustat.h 251 + header-test- += linux/irq_poll.h 252 + header-test- += linux/irqchip/arm-gic-v3.h 253 + header-test- += linux/irqchip/arm-gic-v4.h 254 + header-test- += linux/irqchip/irq-madera.h 255 + header-test- += linux/irqchip/irq-sa11x0.h 256 + header-test- += linux/irqchip/mxs.h 257 + header-test- += linux/irqchip/versatile-fpga.h 258 + header-test- += linux/irqdesc.h 259 + header-test- += linux/irqflags.h 260 + header-test- += linux/iscsi_boot_sysfs.h 261 + header-test- += linux/isdn/capiutil.h 262 + header-test- += linux/isdn/hdlc.h 263 + header-test- += linux/isdn_ppp.h 264 + header-test- += linux/jbd2.h 265 + header-test- += linux/jump_label.h 266 + header-test- += linux/jump_label_ratelimit.h 267 + header-test- += linux/jz4740-adc.h 268 + header-test- += linux/kasan.h 269 + header-test- += linux/kcore.h 270 + header-test- += linux/kdev_t.h 271 + header-test- += linux/kernelcapi.h 272 + header-test- += linux/khugepaged.h 273 + header-test- += linux/kobj_map.h 274 + header-test- += linux/kobject_ns.h 275 + header-test- += linux/kvm_host.h 276 + header-test- += linux/kvm_irqfd.h 277 + header-test- += linux/kvm_para.h 278 + header-test- += linux/lantiq.h 279 + header-test- += linux/lapb.h 280 + header-test- += linux/latencytop.h 281 + header-test- += linux/led-lm3530.h 282 + header-test- += linux/leds-bd2802.h 283 + header-test- += linux/leds-lp3944.h 284 + header-test- += linux/leds-lp3952.h 285 + header-test- += linux/leds_pwm.h 286 + header-test- += linux/libata.h 287 + header-test- += linux/license.h 288 + header-test- += linux/lightnvm.h 289 + header-test- += linux/lis3lv02d.h 290 + header-test- += linux/list_bl.h 291 + header-test- += linux/list_lru.h 292 + header-test- += linux/list_nulls.h 293 + header-test- += linux/lockd/share.h 294 + header-test- += linux/lzo.h 295 + header-test- += linux/mailbox/zynqmp-ipi-message.h 296 + header-test- += linux/maple.h 297 + header-test- += linux/mbcache.h 298 + header-test- += linux/mbus.h 299 + header-test- += linux/mc146818rtc.h 300 + header-test- += linux/mc6821.h 301 + header-test- += linux/mdev.h 302 + header-test- += linux/mem_encrypt.h 303 + header-test- += linux/memfd.h 304 + header-test- += linux/mfd/88pm80x.h 305 + header-test- += linux/mfd/88pm860x.h 306 + header-test- += linux/mfd/abx500/ab8500-bm.h 307 + header-test- += linux/mfd/abx500/ab8500-gpadc.h 308 + header-test- += linux/mfd/adp5520.h 309 + header-test- += linux/mfd/arizona/pdata.h 310 + header-test- += linux/mfd/as3711.h 311 + header-test- += linux/mfd/as3722.h 312 + header-test- += linux/mfd/cros_ec_commands.h 313 + header-test- += linux/mfd/da903x.h 314 + header-test- += linux/mfd/da9055/pdata.h 315 + header-test- += linux/mfd/da9063/pdata.h 316 + header-test- += linux/mfd/db8500-prcmu.h 317 + header-test- += linux/mfd/dbx500-prcmu.h 318 + header-test- += linux/mfd/dln2.h 319 + header-test- += linux/mfd/dm355evm_msp.h 320 + header-test- += linux/mfd/ds1wm.h 321 + header-test- += linux/mfd/ezx-pcap.h 322 + header-test- += linux/mfd/intel_msic.h 323 + header-test- += linux/mfd/janz.h 324 + header-test- += linux/mfd/kempld.h 325 + header-test- += linux/mfd/lm3533.h 326 + header-test- += linux/mfd/lp8788-isink.h 327 + header-test- += linux/mfd/lpc_ich.h 328 + header-test- += linux/mfd/max77693.h 329 + header-test- += linux/mfd/max8998-private.h 330 + header-test- += linux/mfd/menelaus.h 331 + header-test- += linux/mfd/mt6397/core.h 332 + header-test- += linux/mfd/palmas.h 333 + header-test- += linux/mfd/pcf50633/backlight.h 334 + header-test- += linux/mfd/rc5t583.h 335 + header-test- += linux/mfd/retu.h 336 + header-test- += linux/mfd/samsung/core.h 337 + header-test- += linux/mfd/si476x-platform.h 338 + header-test- += linux/mfd/si476x-reports.h 339 + header-test- += linux/mfd/sky81452.h 340 + header-test- += linux/mfd/smsc.h 341 + header-test- += linux/mfd/sta2x11-mfd.h 342 + header-test- += linux/mfd/stmfx.h 343 + header-test- += linux/mfd/tc3589x.h 344 + header-test- += linux/mfd/tc6387xb.h 345 + header-test- += linux/mfd/tc6393xb.h 346 + header-test- += linux/mfd/tps65090.h 347 + header-test- += linux/mfd/tps6586x.h 348 + header-test- += linux/mfd/tps65910.h 349 + header-test- += linux/mfd/tps80031.h 350 + header-test- += linux/mfd/ucb1x00.h 351 + header-test- += linux/mfd/viperboard.h 352 + header-test- += linux/mfd/wm831x/core.h 353 + header-test- += linux/mfd/wm831x/otp.h 354 + header-test- += linux/mfd/wm831x/pdata.h 355 + header-test- += linux/mfd/wm8994/core.h 356 + header-test- += linux/mfd/wm8994/pdata.h 357 + header-test- += linux/mlx4/doorbell.h 358 + header-test- += linux/mlx4/srq.h 359 + header-test- += linux/mlx5/doorbell.h 360 + header-test- += linux/mlx5/eq.h 361 + header-test- += linux/mlx5/fs_helpers.h 362 + header-test- += linux/mlx5/mlx5_ifc.h 363 + header-test- += linux/mlx5/mlx5_ifc_fpga.h 364 + header-test- += linux/mm-arch-hooks.h 365 + header-test- += linux/mm_inline.h 366 + header-test- += linux/mmu_context.h 367 + header-test- += linux/mpage.h 368 + header-test- += linux/mtd/bbm.h 369 + header-test- += linux/mtd/cfi.h 370 + header-test- += linux/mtd/doc2000.h 371 + header-test- += linux/mtd/flashchip.h 372 + header-test- += linux/mtd/ftl.h 373 + header-test- += linux/mtd/gen_probe.h 374 + header-test- += linux/mtd/jedec.h 375 + header-test- += linux/mtd/nand_bch.h 376 + header-test- += linux/mtd/nand_ecc.h 377 + header-test- += linux/mtd/ndfc.h 378 + header-test- += linux/mtd/onenand.h 379 + header-test- += linux/mtd/pismo.h 380 + header-test- += linux/mtd/plat-ram.h 381 + header-test- += linux/mtd/spi-nor.h 382 + header-test- += linux/mv643xx.h 383 + header-test- += linux/mv643xx_eth.h 384 + header-test- += linux/mvebu-pmsu.h 385 + header-test- += linux/mxm-wmi.h 386 + header-test- += linux/n_r3964.h 387 + header-test- += linux/ndctl.h 388 + header-test- += linux/netfilter/ipset/ip_set.h 389 + header-test- += linux/netfilter/ipset/ip_set_bitmap.h 390 + header-test- += linux/netfilter/ipset/ip_set_comment.h 391 + header-test- += linux/netfilter/ipset/ip_set_counter.h 392 + header-test- += linux/netfilter/ipset/ip_set_getport.h 393 + header-test- += linux/netfilter/ipset/ip_set_hash.h 394 + header-test- += linux/netfilter/ipset/ip_set_list.h 395 + header-test- += linux/netfilter/ipset/ip_set_skbinfo.h 396 + header-test- += linux/netfilter/ipset/ip_set_timeout.h 397 + header-test- += linux/netfilter/nf_conntrack_amanda.h 398 + header-test- += linux/netfilter/nf_conntrack_ftp.h 399 + header-test- += linux/netfilter/nf_conntrack_h323.h 400 + header-test- += linux/netfilter/nf_conntrack_h323_asn1.h 401 + header-test- += linux/netfilter/nf_conntrack_irc.h 402 + header-test- += linux/netfilter/nf_conntrack_pptp.h 403 + header-test- += linux/netfilter/nf_conntrack_proto_gre.h 404 + header-test- += linux/netfilter/nf_conntrack_sip.h 405 + header-test- += linux/netfilter/nf_conntrack_snmp.h 406 + header-test- += linux/netfilter/nf_conntrack_tftp.h 407 + header-test- += linux/netfilter/x_tables.h 408 + header-test- += linux/netfilter_arp/arp_tables.h 409 + header-test- += linux/netfilter_bridge/ebtables.h 410 + header-test- += linux/netfilter_ipv4/ip4_tables.h 411 + header-test- += linux/netfilter_ipv4/ip_tables.h 412 + header-test- += linux/netfilter_ipv6/ip6_tables.h 413 + header-test- += linux/nfs.h 414 + header-test- += linux/nfs_fs_i.h 415 + header-test- += linux/nfs_fs_sb.h 416 + header-test- += linux/nfs_page.h 417 + header-test- += linux/nfs_xdr.h 418 + header-test- += linux/nfsacl.h 419 + header-test- += linux/nl802154.h 420 + header-test- += linux/ns_common.h 421 + header-test- += linux/nsc_gpio.h 422 + header-test- += linux/ntb_transport.h 423 + header-test- += linux/nubus.h 424 + header-test- += linux/nvme-fc-driver.h 425 + header-test- += linux/nvme-fc.h 426 + header-test- += linux/nvme-rdma.h 427 + header-test- += linux/nvram.h 428 + header-test- += linux/objagg.h 429 + header-test- += linux/of_clk.h 430 + header-test- += linux/of_net.h 431 + header-test- += linux/of_pdt.h 432 + header-test- += linux/olpc-ec.h 433 + header-test- += linux/omap-dma.h 434 + header-test- += linux/omap-dmaengine.h 435 + header-test- += linux/omap-gpmc.h 436 + header-test- += linux/omap-iommu.h 437 + header-test- += linux/omap-mailbox.h 438 + header-test- += linux/once.h 439 + header-test- += linux/osq_lock.h 440 + header-test- += linux/overflow.h 441 + header-test- += linux/page-flags-layout.h 442 + header-test- += linux/page-isolation.h 443 + header-test- += linux/page_ext.h 444 + header-test- += linux/page_owner.h 445 + header-test- += linux/parport_pc.h 446 + header-test- += linux/parser.h 447 + header-test- += linux/pci-acpi.h 448 + header-test- += linux/pci-dma-compat.h 449 + header-test- += linux/pci_hotplug.h 450 + header-test- += linux/pda_power.h 451 + header-test- += linux/perf/arm_pmu.h 452 + header-test- += linux/perf_regs.h 453 + header-test- += linux/phy/omap_control_phy.h 454 + header-test- += linux/phy/tegra/xusb.h 455 + header-test- += linux/phy/ulpi_phy.h 456 + header-test- += linux/phy_fixed.h 457 + header-test- += linux/pinctrl/pinconf-generic.h 458 + header-test- += linux/pinctrl/pinconf.h 459 + header-test- += linux/pinctrl/pinctrl.h 460 + header-test- += linux/pipe_fs_i.h 461 + header-test- += linux/pktcdvd.h 462 + header-test- += linux/pl320-ipc.h 463 + header-test- += linux/pl353-smc.h 464 + header-test- += linux/platform_data/ad5449.h 465 + header-test- += linux/platform_data/ad5755.h 466 + header-test- += linux/platform_data/ad7266.h 467 + header-test- += linux/platform_data/ad7291.h 468 + header-test- += linux/platform_data/ad7298.h 469 + header-test- += linux/platform_data/ad7303.h 470 + header-test- += linux/platform_data/ad7791.h 471 + header-test- += linux/platform_data/ad7793.h 472 + header-test- += linux/platform_data/ad7887.h 473 + header-test- += linux/platform_data/adau17x1.h 474 + header-test- += linux/platform_data/adp8870.h 475 + header-test- += linux/platform_data/ads1015.h 476 + header-test- += linux/platform_data/ads7828.h 477 + header-test- += linux/platform_data/apds990x.h 478 + header-test- += linux/platform_data/arm-ux500-pm.h 479 + header-test- += linux/platform_data/asoc-s3c.h 480 + header-test- += linux/platform_data/at91_adc.h 481 + header-test- += linux/platform_data/ata-pxa.h 482 + header-test- += linux/platform_data/atmel.h 483 + header-test- += linux/platform_data/bh1770glc.h 484 + header-test- += linux/platform_data/brcmfmac.h 485 + header-test- += linux/platform_data/clk-u300.h 486 + header-test- += linux/platform_data/cyttsp4.h 487 + header-test- += linux/platform_data/dma-coh901318.h 488 + header-test- += linux/platform_data/dma-imx-sdma.h 489 + header-test- += linux/platform_data/dma-mcf-edma.h 490 + header-test- += linux/platform_data/dma-s3c24xx.h 491 + header-test- += linux/platform_data/dmtimer-omap.h 492 + header-test- += linux/platform_data/dsa.h 493 + header-test- += linux/platform_data/edma.h 494 + header-test- += linux/platform_data/elm.h 495 + header-test- += linux/platform_data/emif_plat.h 496 + header-test- += linux/platform_data/fsa9480.h 497 + header-test- += linux/platform_data/g762.h 498 + header-test- += linux/platform_data/gpio-ath79.h 499 + header-test- += linux/platform_data/gpio-davinci.h 500 + header-test- += linux/platform_data/gpio-dwapb.h 501 + header-test- += linux/platform_data/gpio-htc-egpio.h 502 + header-test- += linux/platform_data/gpmc-omap.h 503 + header-test- += linux/platform_data/hsmmc-omap.h 504 + header-test- += linux/platform_data/hwmon-s3c.h 505 + header-test- += linux/platform_data/i2c-davinci.h 506 + header-test- += linux/platform_data/i2c-imx.h 507 + header-test- += linux/platform_data/i2c-mux-reg.h 508 + header-test- += linux/platform_data/i2c-ocores.h 509 + header-test- += linux/platform_data/i2c-xiic.h 510 + header-test- += linux/platform_data/intel-spi.h 511 + header-test- += linux/platform_data/invensense_mpu6050.h 512 + header-test- += linux/platform_data/irda-pxaficp.h 513 + header-test- += linux/platform_data/irda-sa11x0.h 514 + header-test- += linux/platform_data/itco_wdt.h 515 + header-test- += linux/platform_data/jz4740/jz4740_nand.h 516 + header-test- += linux/platform_data/keyboard-pxa930_rotary.h 517 + header-test- += linux/platform_data/keypad-omap.h 518 + header-test- += linux/platform_data/leds-lp55xx.h 519 + header-test- += linux/platform_data/leds-omap.h 520 + header-test- += linux/platform_data/lp855x.h 521 + header-test- += linux/platform_data/lp8727.h 522 + header-test- += linux/platform_data/max197.h 523 + header-test- += linux/platform_data/max3421-hcd.h 524 + header-test- += linux/platform_data/max732x.h 525 + header-test- += linux/platform_data/mcs.h 526 + header-test- += linux/platform_data/mdio-bcm-unimac.h 527 + header-test- += linux/platform_data/mdio-gpio.h 528 + header-test- += linux/platform_data/media/si4713.h 529 + header-test- += linux/platform_data/mlxreg.h 530 + header-test- += linux/platform_data/mmc-omap.h 531 + header-test- += linux/platform_data/mmc-sdhci-s3c.h 532 + header-test- += linux/platform_data/mmp_audio.h 533 + header-test- += linux/platform_data/mtd-orion_nand.h 534 + header-test- += linux/platform_data/mv88e6xxx.h 535 + header-test- += linux/platform_data/net-cw1200.h 536 + header-test- += linux/platform_data/omap-twl4030.h 537 + header-test- += linux/platform_data/omapdss.h 538 + header-test- += linux/platform_data/pcf857x.h 539 + header-test- += linux/platform_data/pixcir_i2c_ts.h 540 + header-test- += linux/platform_data/pwm_omap_dmtimer.h 541 + header-test- += linux/platform_data/pxa2xx_udc.h 542 + header-test- += linux/platform_data/pxa_sdhci.h 543 + header-test- += linux/platform_data/remoteproc-omap.h 544 + header-test- += linux/platform_data/sa11x0-serial.h 545 + header-test- += linux/platform_data/sc18is602.h 546 + header-test- += linux/platform_data/sdhci-pic32.h 547 + header-test- += linux/platform_data/serial-sccnxp.h 548 + header-test- += linux/platform_data/sht3x.h 549 + header-test- += linux/platform_data/shtc1.h 550 + header-test- += linux/platform_data/si5351.h 551 + header-test- += linux/platform_data/sky81452-backlight.h 552 + header-test- += linux/platform_data/spi-davinci.h 553 + header-test- += linux/platform_data/spi-ep93xx.h 554 + header-test- += linux/platform_data/spi-mt65xx.h 555 + header-test- += linux/platform_data/spi-nuc900.h 556 + header-test- += linux/platform_data/st_sensors_pdata.h 557 + header-test- += linux/platform_data/ti-sysc.h 558 + header-test- += linux/platform_data/timer-ixp4xx.h 559 + header-test- += linux/platform_data/touchscreen-s3c2410.h 560 + header-test- += linux/platform_data/tsc2007.h 561 + header-test- += linux/platform_data/tsl2772.h 562 + header-test- += linux/platform_data/uio_pruss.h 563 + header-test- += linux/platform_data/usb-davinci.h 564 + header-test- += linux/platform_data/usb-ehci-mxc.h 565 + header-test- += linux/platform_data/usb-ehci-orion.h 566 + header-test- += linux/platform_data/usb-mx2.h 567 + header-test- += linux/platform_data/usb-ohci-s3c2410.h 568 + header-test- += linux/platform_data/usb-omap.h 569 + header-test- += linux/platform_data/usb-s3c2410_udc.h 570 + header-test- += linux/platform_data/usb3503.h 571 + header-test- += linux/platform_data/ux500_wdt.h 572 + header-test- += linux/platform_data/video-clcd-versatile.h 573 + header-test- += linux/platform_data/video-imxfb.h 574 + header-test- += linux/platform_data/video-nuc900fb.h 575 + header-test- += linux/platform_data/video-pxafb.h 576 + header-test- += linux/platform_data/video_s3c.h 577 + header-test- += linux/platform_data/voltage-omap.h 578 + header-test- += linux/platform_data/x86/apple.h 579 + header-test- += linux/platform_data/x86/clk-pmc-atom.h 580 + header-test- += linux/platform_data/x86/pmc_atom.h 581 + header-test- += linux/platform_data/xtalk-bridge.h 582 + header-test- += linux/pm2301_charger.h 583 + header-test- += linux/pm_wakeirq.h 584 + header-test- += linux/pm_wakeup.h 585 + header-test- += linux/pmbus.h 586 + header-test- += linux/pmu.h 587 + header-test- += linux/posix_acl.h 588 + header-test- += linux/posix_acl_xattr.h 589 + header-test- += linux/power/ab8500.h 590 + header-test- += linux/power/bq27xxx_battery.h 591 + header-test- += linux/power/generic-adc-battery.h 592 + header-test- += linux/power/jz4740-battery.h 593 + header-test- += linux/power/max17042_battery.h 594 + header-test- += linux/power/max8903_charger.h 595 + header-test- += linux/ppp-comp.h 596 + header-test- += linux/pps-gpio.h 597 + header-test- += linux/pr.h 598 + header-test- += linux/proc_ns.h 599 + header-test- += linux/processor.h 600 + header-test- += linux/psi.h 601 + header-test- += linux/psp-sev.h 602 + header-test- += linux/pstore.h 603 + header-test- += linux/ptr_ring.h 604 + header-test- += linux/ptrace.h 605 + header-test- += linux/qcom-geni-se.h 606 + header-test- += linux/qed/eth_common.h 607 + header-test- += linux/qed/fcoe_common.h 608 + header-test- += linux/qed/iscsi_common.h 609 + header-test- += linux/qed/iwarp_common.h 610 + header-test- += linux/qed/qed_eth_if.h 611 + header-test- += linux/qed/qed_fcoe_if.h 612 + header-test- += linux/qed/rdma_common.h 613 + header-test- += linux/qed/storage_common.h 614 + header-test- += linux/qed/tcp_common.h 615 + header-test- += linux/qnx6_fs.h 616 + header-test- += linux/quicklist.h 617 + header-test- += linux/ramfs.h 618 + header-test- += linux/range.h 619 + header-test- += linux/rcu_node_tree.h 620 + header-test- += linux/rculist_bl.h 621 + header-test- += linux/rculist_nulls.h 622 + header-test- += linux/rcutiny.h 623 + header-test- += linux/rcutree.h 624 + header-test- += linux/reboot-mode.h 625 + header-test- += linux/regulator/fixed.h 626 + header-test- += linux/regulator/gpio-regulator.h 627 + header-test- += linux/regulator/max8973-regulator.h 628 + header-test- += linux/regulator/of_regulator.h 629 + header-test- += linux/regulator/tps51632-regulator.h 630 + header-test- += linux/regulator/tps62360.h 631 + header-test- += linux/regulator/tps6507x.h 632 + header-test- += linux/regulator/userspace-consumer.h 633 + header-test- += linux/remoteproc/st_slim_rproc.h 634 + header-test- += linux/reset/socfpga.h 635 + header-test- += linux/reset/sunxi.h 636 + header-test- += linux/rtc/m48t59.h 637 + header-test- += linux/rtc/rtc-omap.h 638 + header-test- += linux/rtc/sirfsoc_rtciobrg.h 639 + header-test- += linux/rwlock.h 640 + header-test- += linux/rwlock_types.h 641 + header-test- += linux/scc.h 642 + header-test- += linux/sched/deadline.h 643 + header-test- += linux/sched/smt.h 644 + header-test- += linux/sched/sysctl.h 645 + header-test- += linux/sched_clock.h 646 + header-test- += linux/scpi_protocol.h 647 + header-test- += linux/scx200_gpio.h 648 + header-test- += linux/seccomp.h 649 + header-test- += linux/sed-opal.h 650 + header-test- += linux/seg6_iptunnel.h 651 + header-test- += linux/selection.h 652 + header-test- += linux/set_memory.h 653 + header-test- += linux/shrinker.h 654 + header-test- += linux/sirfsoc_dma.h 655 + header-test- += linux/skb_array.h 656 + header-test- += linux/slab_def.h 657 + header-test- += linux/slub_def.h 658 + header-test- += linux/sm501.h 659 + header-test- += linux/smc91x.h 660 + header-test- += linux/static_key.h 661 + header-test- += linux/soc/actions/owl-sps.h 662 + header-test- += linux/soc/amlogic/meson-canvas.h 663 + header-test- += linux/soc/brcmstb/brcmstb.h 664 + header-test- += linux/soc/ixp4xx/npe.h 665 + header-test- += linux/soc/mediatek/infracfg.h 666 + header-test- += linux/soc/qcom/smd-rpm.h 667 + header-test- += linux/soc/qcom/smem.h 668 + header-test- += linux/soc/qcom/smem_state.h 669 + header-test- += linux/soc/qcom/wcnss_ctrl.h 670 + header-test- += linux/soc/renesas/rcar-rst.h 671 + header-test- += linux/soc/samsung/exynos-pmu.h 672 + header-test- += linux/soc/sunxi/sunxi_sram.h 673 + header-test- += linux/soc/ti/ti-msgmgr.h 674 + header-test- += linux/soc/ti/ti_sci_inta_msi.h 675 + header-test- += linux/soc/ti/ti_sci_protocol.h 676 + header-test- += linux/soundwire/sdw.h 677 + header-test- += linux/soundwire/sdw_intel.h 678 + header-test- += linux/soundwire/sdw_type.h 679 + header-test- += linux/spi/ad7877.h 680 + header-test- += linux/spi/ads7846.h 681 + header-test- += linux/spi/at86rf230.h 682 + header-test- += linux/spi/ds1305.h 683 + header-test- += linux/spi/libertas_spi.h 684 + header-test- += linux/spi/lms283gf05.h 685 + header-test- += linux/spi/max7301.h 686 + header-test- += linux/spi/mcp23s08.h 687 + header-test- += linux/spi/rspi.h 688 + header-test- += linux/spi/s3c24xx.h 689 + header-test- += linux/spi/sh_msiof.h 690 + header-test- += linux/spi/spi-fsl-dspi.h 691 + header-test- += linux/spi/spi_bitbang.h 692 + header-test- += linux/spi/spi_gpio.h 693 + header-test- += linux/spi/xilinx_spi.h 694 + header-test- += linux/spinlock_api_smp.h 695 + header-test- += linux/spinlock_api_up.h 696 + header-test- += linux/spinlock_types.h 697 + header-test- += linux/splice.h 698 + header-test- += linux/sram.h 699 + header-test- += linux/srcutiny.h 700 + header-test- += linux/srcutree.h 701 + header-test- += linux/ssb/ssb_driver_chipcommon.h 702 + header-test- += linux/ssb/ssb_driver_extif.h 703 + header-test- += linux/ssb/ssb_driver_mips.h 704 + header-test- += linux/ssb/ssb_driver_pci.h 705 + header-test- += linux/ssbi.h 706 + header-test- += linux/stackdepot.h 707 + header-test- += linux/stmp3xxx_rtc_wdt.h 708 + header-test- += linux/string_helpers.h 709 + header-test- += linux/sungem_phy.h 710 + header-test- += linux/sunrpc/msg_prot.h 711 + header-test- += linux/sunrpc/rpc_pipe_fs.h 712 + header-test- += linux/sunrpc/xprtmultipath.h 713 + header-test- += linux/sunrpc/xprtsock.h 714 + header-test- += linux/sunxi-rsb.h 715 + header-test- += linux/svga.h 716 + header-test- += linux/sw842.h 717 + header-test- += linux/swapfile.h 718 + header-test- += linux/swapops.h 719 + header-test- += linux/swiotlb.h 720 + header-test- += linux/sysv_fs.h 721 + header-test- += linux/t10-pi.h 722 + header-test- += linux/task_io_accounting.h 723 + header-test- += linux/tick.h 724 + header-test- += linux/timb_dma.h 725 + header-test- += linux/timekeeping.h 726 + header-test- += linux/timekeeping32.h 727 + header-test- += linux/ts-nbus.h 728 + header-test- += linux/tsacct_kern.h 729 + header-test- += linux/tty_flip.h 730 + header-test- += linux/tty_ldisc.h 731 + header-test- += linux/ucb1400.h 732 + header-test- += linux/usb/association.h 733 + header-test- += linux/usb/cdc-wdm.h 734 + header-test- += linux/usb/cdc_ncm.h 735 + header-test- += linux/usb/ezusb.h 736 + header-test- += linux/usb/gadget_configfs.h 737 + header-test- += linux/usb/gpio_vbus.h 738 + header-test- += linux/usb/hcd.h 739 + header-test- += linux/usb/iowarrior.h 740 + header-test- += linux/usb/irda.h 741 + header-test- += linux/usb/isp116x.h 742 + header-test- += linux/usb/isp1362.h 743 + header-test- += linux/usb/musb.h 744 + header-test- += linux/usb/net2280.h 745 + header-test- += linux/usb/ohci_pdriver.h 746 + header-test- += linux/usb/otg-fsm.h 747 + header-test- += linux/usb/pd_ado.h 748 + header-test- += linux/usb/r8a66597.h 749 + header-test- += linux/usb/rndis_host.h 750 + header-test- += linux/usb/serial.h 751 + header-test- += linux/usb/sl811.h 752 + header-test- += linux/usb/storage.h 753 + header-test- += linux/usb/uas.h 754 + header-test- += linux/usb/usb338x.h 755 + header-test- += linux/usb/usbnet.h 756 + header-test- += linux/usb/wusb-wa.h 757 + header-test- += linux/usb/xhci-dbgp.h 758 + header-test- += linux/usb_usual.h 759 + header-test- += linux/user-return-notifier.h 760 + header-test- += linux/userfaultfd_k.h 761 + header-test- += linux/verification.h 762 + header-test- += linux/vgaarb.h 763 + header-test- += linux/via_core.h 764 + header-test- += linux/via_i2c.h 765 + header-test- += linux/virtio_byteorder.h 766 + header-test- += linux/virtio_ring.h 767 + header-test- += linux/visorbus.h 768 + header-test- += linux/vme.h 769 + header-test- += linux/vmstat.h 770 + header-test- += linux/vmw_vmci_api.h 771 + header-test- += linux/vmw_vmci_defs.h 772 + header-test- += linux/vringh.h 773 + header-test- += linux/vt_buffer.h 774 + header-test- += linux/zorro.h 775 + header-test- += linux/zpool.h 776 + header-test- += math-emu/double.h 777 + header-test- += math-emu/op-common.h 778 + header-test- += math-emu/quad.h 779 + header-test- += math-emu/single.h 780 + header-test- += math-emu/soft-fp.h 781 + header-test- += media/davinci/dm355_ccdc.h 782 + header-test- += media/davinci/dm644x_ccdc.h 783 + header-test- += media/davinci/isif.h 784 + header-test- += media/davinci/vpbe_osd.h 785 + header-test- += media/davinci/vpbe_types.h 786 + header-test- += media/davinci/vpif_types.h 787 + header-test- += media/demux.h 788 + header-test- += media/drv-intf/soc_mediabus.h 789 + header-test- += media/dvb_net.h 790 + header-test- += media/fwht-ctrls.h 791 + header-test- += media/i2c/ad9389b.h 792 + header-test- += media/i2c/adv7343.h 793 + header-test- += media/i2c/adv7511.h 794 + header-test- += media/i2c/adv7842.h 795 + header-test- += media/i2c/m5mols.h 796 + header-test- += media/i2c/mt9m032.h 797 + header-test- += media/i2c/mt9t112.h 798 + header-test- += media/i2c/mt9v032.h 799 + header-test- += media/i2c/ov2659.h 800 + header-test- += media/i2c/ov7670.h 801 + header-test- += media/i2c/rj54n1cb0c.h 802 + header-test- += media/i2c/saa6588.h 803 + header-test- += media/i2c/saa7115.h 804 + header-test- += media/i2c/sr030pc30.h 805 + header-test- += media/i2c/tc358743.h 806 + header-test- += media/i2c/tda1997x.h 807 + header-test- += media/i2c/ths7303.h 808 + header-test- += media/i2c/tvaudio.h 809 + header-test- += media/i2c/tvp514x.h 810 + header-test- += media/i2c/tvp7002.h 811 + header-test- += media/i2c/wm8775.h 812 + header-test- += media/imx.h 813 + header-test- += media/media-dev-allocator.h 814 + header-test- += media/mpeg2-ctrls.h 815 + header-test- += media/rcar-fcp.h 816 + header-test- += media/tuner-types.h 817 + header-test- += media/tveeprom.h 818 + header-test- += media/v4l2-flash-led-class.h 819 + header-test- += misc/altera.h 820 + header-test- += misc/cxl-base.h 821 + header-test- += misc/cxllib.h 822 + header-test- += net/9p/9p.h 823 + header-test- += net/9p/client.h 824 + header-test- += net/9p/transport.h 825 + header-test- += net/af_vsock.h 826 + header-test- += net/ax88796.h 827 + header-test- += net/bluetooth/hci.h 828 + header-test- += net/bluetooth/hci_core.h 829 + header-test- += net/bluetooth/hci_mon.h 830 + header-test- += net/bluetooth/hci_sock.h 831 + header-test- += net/bluetooth/l2cap.h 832 + header-test- += net/bluetooth/mgmt.h 833 + header-test- += net/bluetooth/rfcomm.h 834 + header-test- += net/bluetooth/sco.h 835 + header-test- += net/bond_options.h 836 + header-test- += net/caif/cfsrvl.h 837 + header-test- += net/codel_impl.h 838 + header-test- += net/codel_qdisc.h 839 + header-test- += net/compat.h 840 + header-test- += net/datalink.h 841 + header-test- += net/dcbevent.h 842 + header-test- += net/dcbnl.h 843 + header-test- += net/dn_dev.h 844 + header-test- += net/dn_fib.h 845 + header-test- += net/dn_neigh.h 846 + header-test- += net/dn_nsp.h 847 + header-test- += net/dn_route.h 848 + header-test- += net/erspan.h 849 + header-test- += net/esp.h 850 + header-test- += net/ethoc.h 851 + header-test- += net/firewire.h 852 + header-test- += net/flow_offload.h 853 + header-test- += net/fq.h 854 + header-test- += net/fq_impl.h 855 + header-test- += net/garp.h 856 + header-test- += net/gtp.h 857 + header-test- += net/gue.h 858 + header-test- += net/hwbm.h 859 + header-test- += net/ila.h 860 + header-test- += net/inet6_connection_sock.h 861 + header-test- += net/inet_common.h 862 + header-test- += net/inet_frag.h 863 + header-test- += net/ip6_route.h 864 + header-test- += net/ip_vs.h 865 + header-test- += net/ipcomp.h 866 + header-test- += net/ipconfig.h 867 + header-test- += net/iucv/af_iucv.h 868 + header-test- += net/iucv/iucv.h 869 + header-test- += net/lapb.h 870 + header-test- += net/llc_c_ac.h 871 + header-test- += net/llc_c_st.h 872 + header-test- += net/llc_s_ac.h 873 + header-test- += net/llc_s_ev.h 874 + header-test- += net/llc_s_st.h 875 + header-test- += net/mpls_iptunnel.h 876 + header-test- += net/mrp.h 877 + header-test- += net/ncsi.h 878 + header-test- += net/netevent.h 879 + header-test- += net/netfilter/br_netfilter.h 880 + header-test- += net/netfilter/ipv4/nf_dup_ipv4.h 881 + header-test- += net/netfilter/ipv6/nf_defrag_ipv6.h 882 + header-test- += net/netfilter/ipv6/nf_dup_ipv6.h 883 + header-test- += net/netfilter/nf_conntrack.h 884 + header-test- += net/netfilter/nf_conntrack_acct.h 885 + header-test- += net/netfilter/nf_conntrack_bridge.h 886 + header-test- += net/netfilter/nf_conntrack_core.h 887 + header-test- += net/netfilter/nf_conntrack_count.h 888 + header-test- += net/netfilter/nf_conntrack_ecache.h 889 + header-test- += net/netfilter/nf_conntrack_expect.h 890 + header-test- += net/netfilter/nf_conntrack_extend.h 891 + header-test- += net/netfilter/nf_conntrack_helper.h 892 + header-test- += net/netfilter/nf_conntrack_l4proto.h 893 + header-test- += net/netfilter/nf_conntrack_labels.h 894 + header-test- += net/netfilter/nf_conntrack_seqadj.h 895 + header-test- += net/netfilter/nf_conntrack_synproxy.h 896 + header-test- += net/netfilter/nf_conntrack_timeout.h 897 + header-test- += net/netfilter/nf_conntrack_timestamp.h 898 + header-test- += net/netfilter/nf_conntrack_tuple.h 899 + header-test- += net/netfilter/nf_dup_netdev.h 900 + header-test- += net/netfilter/nf_flow_table.h 901 + header-test- += net/netfilter/nf_nat.h 902 + header-test- += net/netfilter/nf_nat_helper.h 903 + header-test- += net/netfilter/nf_nat_masquerade.h 904 + header-test- += net/netfilter/nf_nat_redirect.h 905 + header-test- += net/netfilter/nf_queue.h 906 + header-test- += net/netfilter/nf_reject.h 907 + header-test- += net/netfilter/nf_synproxy.h 908 + header-test- += net/netfilter/nf_tables.h 909 + header-test- += net/netfilter/nf_tables_core.h 910 + header-test- += net/netfilter/nf_tables_ipv4.h 911 + header-test- += net/netfilter/nf_tables_ipv6.h 912 + header-test- += net/netfilter/nft_fib.h 913 + header-test- += net/netfilter/nft_meta.h 914 + header-test- += net/netfilter/nft_reject.h 915 + header-test- += net/netns/can.h 916 + header-test- += net/netns/generic.h 917 + header-test- += net/netns/ieee802154_6lowpan.h 918 + header-test- += net/netns/ipv4.h 919 + header-test- += net/netns/ipv6.h 920 + header-test- += net/netns/mpls.h 921 + header-test- += net/netns/nftables.h 922 + header-test- += net/netns/sctp.h 923 + header-test- += net/netrom.h 924 + header-test- += net/p8022.h 925 + header-test- += net/phonet/pep.h 926 + header-test- += net/phonet/phonet.h 927 + header-test- += net/phonet/pn_dev.h 928 + header-test- += net/pptp.h 929 + header-test- += net/psample.h 930 + header-test- += net/psnap.h 931 + header-test- += net/regulatory.h 932 + header-test- += net/rose.h 933 + header-test- += net/sctp/auth.h 934 + header-test- += net/sctp/stream_interleave.h 935 + header-test- += net/sctp/stream_sched.h 936 + header-test- += net/sctp/tsnmap.h 937 + header-test- += net/sctp/ulpevent.h 938 + header-test- += net/sctp/ulpqueue.h 939 + header-test- += net/secure_seq.h 940 + header-test- += net/smc.h 941 + header-test- += net/stp.h 942 + header-test- += net/transp_v6.h 943 + header-test- += net/tun_proto.h 944 + header-test- += net/udplite.h 945 + header-test- += net/xdp.h 946 + header-test- += net/xdp_priv.h 947 + header-test- += pcmcia/cistpl.h 948 + header-test- += pcmcia/ds.h 949 + header-test- += rdma/ib.h 950 + header-test- += rdma/iw_portmap.h 951 + header-test- += rdma/opa_port_info.h 952 + header-test- += rdma/rdma_counter.h 953 + header-test- += rdma/rdmavt_cq.h 954 + header-test- += rdma/restrack.h 955 + header-test- += rdma/signature.h 956 + header-test- += rdma/tid_rdma_defs.h 957 + header-test- += scsi/fc/fc_encaps.h 958 + header-test- += scsi/fc/fc_fc2.h 959 + header-test- += scsi/fc/fc_fcoe.h 960 + header-test- += scsi/fc/fc_fip.h 961 + header-test- += scsi/fc_encode.h 962 + header-test- += scsi/fc_frame.h 963 + header-test- += scsi/iser.h 964 + header-test- += scsi/libfc.h 965 + header-test- += scsi/libfcoe.h 966 + header-test- += scsi/libsas.h 967 + header-test- += scsi/sas_ata.h 968 + header-test- += scsi/scsi_cmnd.h 969 + header-test- += scsi/scsi_dbg.h 970 + header-test- += scsi/scsi_device.h 971 + header-test- += scsi/scsi_dh.h 972 + header-test- += scsi/scsi_eh.h 973 + header-test- += scsi/scsi_host.h 974 + header-test- += scsi/scsi_ioctl.h 975 + header-test- += scsi/scsi_request.h 976 + header-test- += scsi/scsi_tcq.h 977 + header-test- += scsi/scsi_transport.h 978 + header-test- += scsi/scsi_transport_fc.h 979 + header-test- += scsi/scsi_transport_sas.h 980 + header-test- += scsi/scsi_transport_spi.h 981 + header-test- += scsi/scsi_transport_srp.h 982 + header-test- += scsi/scsicam.h 983 + header-test- += scsi/sg.h 984 + header-test- += soc/arc/aux.h 985 + header-test- += soc/arc/mcip.h 986 + header-test- += soc/arc/timers.h 987 + header-test- += soc/brcmstb/common.h 988 + header-test- += soc/fsl/bman.h 989 + header-test- += soc/fsl/qe/qe.h 990 + header-test- += soc/fsl/qe/qe_ic.h 991 + header-test- += soc/fsl/qe/qe_tdm.h 992 + header-test- += soc/fsl/qe/ucc.h 993 + header-test- += soc/fsl/qe/ucc_fast.h 994 + header-test- += soc/fsl/qe/ucc_slow.h 995 + header-test- += soc/fsl/qman.h 996 + header-test- += soc/nps/common.h 997 + header-test-$(CONFIG_ARC) += soc/nps/mtm.h 998 + header-test- += soc/qcom/cmd-db.h 999 + header-test- += soc/qcom/rpmh.h 1000 + header-test- += soc/qcom/tcs.h 1001 + header-test- += soc/tegra/ahb.h 1002 + header-test- += soc/tegra/bpmp-abi.h 1003 + header-test- += soc/tegra/common.h 1004 + header-test- += soc/tegra/flowctrl.h 1005 + header-test- += soc/tegra/fuse.h 1006 + header-test- += soc/tegra/mc.h 1007 + header-test- += sound/ac97/compat.h 1008 + header-test- += sound/aci.h 1009 + header-test- += sound/ad1843.h 1010 + header-test- += sound/adau1373.h 1011 + header-test- += sound/ak4113.h 1012 + header-test- += sound/ak4114.h 1013 + header-test- += sound/ak4117.h 1014 + header-test- += sound/cs35l33.h 1015 + header-test- += sound/cs35l34.h 1016 + header-test- += sound/cs35l35.h 1017 + header-test- += sound/cs35l36.h 1018 + header-test- += sound/cs4271.h 1019 + header-test- += sound/cs42l52.h 1020 + header-test- += sound/cs8427.h 1021 + header-test- += sound/da7218.h 1022 + header-test- += sound/da7219-aad.h 1023 + header-test- += sound/da7219.h 1024 + header-test- += sound/da9055.h 1025 + header-test- += sound/emu8000.h 1026 + header-test- += sound/emux_synth.h 1027 + header-test- += sound/hda_component.h 1028 + header-test- += sound/hda_hwdep.h 1029 + header-test- += sound/hda_i915.h 1030 + header-test- += sound/hwdep.h 1031 + header-test- += sound/i2c.h 1032 + header-test- += sound/l3.h 1033 + header-test- += sound/max98088.h 1034 + header-test- += sound/max98095.h 1035 + header-test- += sound/mixer_oss.h 1036 + header-test- += sound/omap-hdmi-audio.h 1037 + header-test- += sound/pcm_drm_eld.h 1038 + header-test- += sound/pcm_iec958.h 1039 + header-test- += sound/pcm_oss.h 1040 + header-test- += sound/pxa2xx-lib.h 1041 + header-test- += sound/rt286.h 1042 + header-test- += sound/rt298.h 1043 + header-test- += sound/rt5645.h 1044 + header-test- += sound/rt5659.h 1045 + header-test- += sound/rt5660.h 1046 + header-test- += sound/rt5665.h 1047 + header-test- += sound/rt5670.h 1048 + header-test- += sound/s3c24xx_uda134x.h 1049 + header-test- += sound/seq_device.h 1050 + header-test- += sound/seq_kernel.h 1051 + header-test- += sound/seq_midi_emul.h 1052 + header-test- += sound/seq_oss.h 1053 + header-test- += sound/soc-acpi-intel-match.h 1054 + header-test- += sound/soc-dai.h 1055 + header-test- += sound/soc-dapm.h 1056 + header-test- += sound/soc-dpcm.h 1057 + header-test- += sound/sof/control.h 1058 + header-test- += sound/sof/dai-intel.h 1059 + header-test- += sound/sof/dai.h 1060 + header-test- += sound/sof/header.h 1061 + header-test- += sound/sof/info.h 1062 + header-test- += sound/sof/pm.h 1063 + header-test- += sound/sof/stream.h 1064 + header-test- += sound/sof/topology.h 1065 + header-test- += sound/sof/trace.h 1066 + header-test- += sound/sof/xtensa.h 1067 + header-test- += sound/spear_spdif.h 1068 + header-test- += sound/sta32x.h 1069 + header-test- += sound/sta350.h 1070 + header-test- += sound/tea6330t.h 1071 + header-test- += sound/tlv320aic32x4.h 1072 + header-test- += sound/tlv320dac33-plat.h 1073 + header-test- += sound/uda134x.h 1074 + header-test- += sound/wavefront.h 1075 + header-test- += sound/wm8903.h 1076 + header-test- += sound/wm8904.h 1077 + header-test- += sound/wm8960.h 1078 + header-test- += sound/wm8962.h 1079 + header-test- += sound/wm8993.h 1080 + header-test- += sound/wm8996.h 1081 + header-test- += sound/wm9081.h 1082 + header-test- += sound/wm9090.h 1083 + header-test- += target/iscsi/iscsi_target_stat.h 1084 + header-test- += trace/bpf_probe.h 1085 + header-test- += trace/events/9p.h 1086 + header-test- += trace/events/afs.h 1087 + header-test- += trace/events/asoc.h 1088 + header-test- += trace/events/bcache.h 1089 + header-test- += trace/events/block.h 1090 + header-test- += trace/events/cachefiles.h 1091 + header-test- += trace/events/cgroup.h 1092 + header-test- += trace/events/clk.h 1093 + header-test- += trace/events/cma.h 1094 + header-test- += trace/events/ext4.h 1095 + header-test- += trace/events/f2fs.h 1096 + header-test- += trace/events/fs_dax.h 1097 + header-test- += trace/events/fscache.h 1098 + header-test- += trace/events/fsi.h 1099 + header-test- += trace/events/fsi_master_ast_cf.h 1100 + header-test- += trace/events/fsi_master_gpio.h 1101 + header-test- += trace/events/huge_memory.h 1102 + header-test- += trace/events/ib_mad.h 1103 + header-test- += trace/events/ib_umad.h 1104 + header-test- += trace/events/iscsi.h 1105 + header-test- += trace/events/jbd2.h 1106 + header-test- += trace/events/kvm.h 1107 + header-test- += trace/events/kyber.h 1108 + header-test- += trace/events/libata.h 1109 + header-test- += trace/events/mce.h 1110 + header-test- += trace/events/mdio.h 1111 + header-test- += trace/events/migrate.h 1112 + header-test- += trace/events/mmflags.h 1113 + header-test- += trace/events/nbd.h 1114 + header-test- += trace/events/nilfs2.h 1115 + header-test- += trace/events/pwc.h 1116 + header-test- += trace/events/rdma.h 1117 + header-test- += trace/events/rpcgss.h 1118 + header-test- += trace/events/rpcrdma.h 1119 + header-test- += trace/events/rxrpc.h 1120 + header-test- += trace/events/scsi.h 1121 + header-test- += trace/events/siox.h 1122 + header-test- += trace/events/spi.h 1123 + header-test- += trace/events/swiotlb.h 1124 + header-test- += trace/events/syscalls.h 1125 + header-test- += trace/events/target.h 1126 + header-test- += trace/events/thermal_power_allocator.h 1127 + header-test- += trace/events/timer.h 1128 + header-test- += trace/events/wbt.h 1129 + header-test- += trace/events/xen.h 1130 + header-test- += trace/perf.h 1131 + header-test- += trace/trace_events.h 1132 + header-test- += uapi/drm/vmwgfx_drm.h 1133 + header-test- += uapi/linux/a.out.h 1134 + header-test- += uapi/linux/coda.h 1135 + header-test- += uapi/linux/coda_psdev.h 1136 + header-test- += uapi/linux/errqueue.h 1137 + header-test- += uapi/linux/eventpoll.h 1138 + header-test- += uapi/linux/hdlc/ioctl.h 1139 + header-test- += uapi/linux/input.h 1140 + header-test- += uapi/linux/kvm.h 1141 + header-test- += uapi/linux/kvm_para.h 1142 + header-test- += uapi/linux/lightnvm.h 1143 + header-test- += uapi/linux/mic_common.h 1144 + header-test- += uapi/linux/mman.h 1145 + header-test- += uapi/linux/netfilter/ipset/ip_set_bitmap.h 1146 + header-test- += uapi/linux/netfilter/ipset/ip_set_hash.h 1147 + header-test- += uapi/linux/netfilter/ipset/ip_set_list.h 1148 + header-test- += uapi/linux/netfilter/nf_synproxy.h 1149 + header-test- += uapi/linux/netfilter/xt_policy.h 1150 + header-test- += uapi/linux/netfilter/xt_set.h 1151 + header-test- += uapi/linux/netfilter_arp/arp_tables.h 1152 + header-test- += uapi/linux/netfilter_arp/arpt_mangle.h 1153 + header-test- += uapi/linux/netfilter_ipv4/ip_tables.h 1154 + header-test- += uapi/linux/netfilter_ipv4/ipt_LOG.h 1155 + header-test- += uapi/linux/netfilter_ipv6/ip6_tables.h 1156 + header-test- += uapi/linux/netfilter_ipv6/ip6t_LOG.h 1157 + header-test- += uapi/linux/nilfs2_ondisk.h 1158 + header-test- += uapi/linux/patchkey.h 1159 + header-test- += uapi/linux/ptrace.h 1160 + header-test- += uapi/linux/scc.h 1161 + header-test- += uapi/linux/seg6_iptunnel.h 1162 + header-test- += uapi/linux/smc_diag.h 1163 + header-test- += uapi/linux/timex.h 1164 + header-test- += uapi/linux/videodev2.h 1165 + header-test- += uapi/scsi/scsi_bsg_fc.h 1166 + header-test- += uapi/sound/asound.h 1167 + header-test- += uapi/sound/sof/eq.h 1168 + header-test- += uapi/sound/sof/fw.h 1169 + header-test- += uapi/sound/sof/header.h 1170 + header-test- += uapi/sound/sof/manifest.h 1171 + header-test- += uapi/sound/sof/trace.h 1172 + header-test- += uapi/xen/evtchn.h 1173 + header-test- += uapi/xen/gntdev.h 1174 + header-test- += uapi/xen/privcmd.h 1175 + header-test- += vdso/vsyscall.h 1176 + header-test- += video/broadsheetfb.h 1177 + header-test- += video/cvisionppc.h 1178 + header-test- += video/gbe.h 1179 + header-test- += video/kyro.h 1180 + header-test- += video/maxinefb.h 1181 + header-test- += video/metronomefb.h 1182 + header-test- += video/neomagic.h 1183 + header-test- += video/of_display_timing.h 1184 + header-test- += video/omapvrfb.h 1185 + header-test- += video/s1d13xxxfb.h 1186 + header-test- += video/sstfb.h 1187 + header-test- += video/tgafb.h 1188 + header-test- += video/udlfb.h 1189 + header-test- += video/uvesafb.h 1190 + header-test- += video/vga.h 1191 + header-test- += video/w100fb.h 1192 + header-test- += xen/acpi.h 1193 + header-test- += xen/arm/hypercall.h 1194 + header-test- += xen/arm/page-coherent.h 1195 + header-test- += xen/arm/page.h 1196 + header-test- += xen/balloon.h 1197 + header-test- += xen/events.h 1198 + header-test- += xen/features.h 1199 + header-test- += xen/grant_table.h 1200 + header-test- += xen/hvm.h 1201 + header-test- += xen/interface/callback.h 1202 + header-test- += xen/interface/event_channel.h 1203 + header-test- += xen/interface/grant_table.h 1204 + header-test- += xen/interface/hvm/dm_op.h 1205 + header-test- += xen/interface/hvm/hvm_op.h 1206 + header-test- += xen/interface/hvm/hvm_vcpu.h 1207 + header-test- += xen/interface/hvm/params.h 1208 + header-test- += xen/interface/hvm/start_info.h 1209 + header-test- += xen/interface/io/9pfs.h 1210 + header-test- += xen/interface/io/blkif.h 1211 + header-test- += xen/interface/io/console.h 1212 + header-test- += xen/interface/io/displif.h 1213 + header-test- += xen/interface/io/fbif.h 1214 + header-test- += xen/interface/io/kbdif.h 1215 + header-test- += xen/interface/io/netif.h 1216 + header-test- += xen/interface/io/pciif.h 1217 + header-test- += xen/interface/io/protocols.h 1218 + header-test- += xen/interface/io/pvcalls.h 1219 + header-test- += xen/interface/io/ring.h 1220 + header-test- += xen/interface/io/sndif.h 1221 + header-test- += xen/interface/io/tpmif.h 1222 + header-test- += xen/interface/io/vscsiif.h 1223 + header-test- += xen/interface/io/xs_wire.h 1224 + header-test- += xen/interface/memory.h 1225 + header-test- += xen/interface/nmi.h 1226 + header-test- += xen/interface/physdev.h 1227 + header-test- += xen/interface/platform.h 1228 + header-test- += xen/interface/sched.h 1229 + header-test- += xen/interface/vcpu.h 1230 + header-test- += xen/interface/version.h 1231 + header-test- += xen/interface/xen-mca.h 1232 + header-test- += xen/interface/xen.h 1233 + header-test- += xen/interface/xenpmu.h 1234 + header-test- += xen/mem-reservation.h 1235 + header-test- += xen/page.h 1236 + header-test- += xen/platform_pci.h 1237 + header-test- += xen/swiotlb-xen.h 1238 + header-test- += xen/xen-front-pgdir-shbuf.h 1239 + header-test- += xen/xen-ops.h 1240 + header-test- += xen/xen.h 1241 + header-test- += xen/xenbus.h 1242 + 1243 + # Do not include directly 1244 + header-test- += linux/compiler-clang.h 1245 + header-test- += linux/compiler-gcc.h 1246 + header-test- += linux/patchkey.h 1247 + header-test- += linux/rwlock_api_smp.h 1248 + header-test- += linux/spinlock_types_up.h 1249 + header-test- += linux/spinlock_up.h 1250 + header-test- += linux/wimax/debug.h 1251 + header-test- += rdma/uverbs_named_ioctl.h 1252 + 1253 + # asm-generic/*.h is used by asm/*.h, and should not be included directly 1254 + header-test- += asm-generic/% uapi/asm-generic/% 1255 + 1256 + # Timestamp files touched by Kconfig 1257 + header-test- += config/% 1258 + 1259 + # Timestamp files touched by scripts/adjust_autoksyms.sh 1260 + header-test- += ksym/% 1261 + 1262 + # You could compile-test these, but maybe not so useful... 1263 + header-test- += dt-bindings/% 1264 + 1265 + # Do not test generated headers. Stale headers are often left over when you 1266 + # traverse the git history without cleaning. 1267 + header-test- += generated/% 1268 + 1269 + # The rest are compile-tested 1270 + header-test-pattern-y += */*.h */*/*.h */*/*/*.h */*/*/*/*.h
+3 -3
include/uapi/linux/Kbuild include/uapi/Kbuild
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h),) 3 - no-export-headers += a.out.h 3 + no-export-headers += linux/a.out.h 4 4 endif 5 5 6 6 ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h),) 7 - no-export-headers += kvm.h 7 + no-export-headers += linux/kvm.h 8 8 endif 9 9 10 10 ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h),) 11 11 ifeq ($(wildcard $(objtree)/arch/$(SRCARCH)/include/generated/uapi/asm/kvm_para.h),) 12 - no-export-headers += kvm_para.h 12 + no-export-headers += linux/kvm_para.h 13 13 endif 14 14 endif
+33
init/Kconfig
··· 24 24 int 25 25 default $(shell,$(srctree)/scripts/clang-version.sh $(CC)) 26 26 27 + config CC_CAN_LINK 28 + def_bool $(success,$(srctree)/scripts/cc-can-link.sh $(CC)) 29 + 27 30 config CC_HAS_ASM_GOTO 28 31 def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC)) 29 32 ··· 98 95 If you are a developer and want to build everything available, say Y 99 96 here. If you are a user/distributor, say N here to exclude useless 100 97 drivers to be distributed. 98 + 99 + config HEADER_TEST 100 + bool "Compile test headers that should be standalone compilable" 101 + help 102 + Compile test headers listed in header-test-y target to ensure they are 103 + self-contained, i.e. compilable as standalone units. 104 + 105 + If you are a developer or tester and want to ensure the requested 106 + headers are self-contained, say Y here. Otherwise, choose N. 107 + 108 + config KERNEL_HEADER_TEST 109 + bool "Compile test kernel headers" 110 + depends on HEADER_TEST 111 + help 112 + Headers in include/ are used to build external moduls. 113 + Compile test them to ensure they are self-contained, i.e. 114 + compilable as standalone units. 115 + 116 + If you are a developer or tester and want to ensure the headers 117 + in include/ are self-contained, say Y here. Otherwise, choose N. 118 + 119 + config UAPI_HEADER_TEST 120 + bool "Compile test UAPI headers" 121 + depends on HEADER_TEST && HEADERS_INSTALL && CC_CAN_LINK 122 + help 123 + Compile test headers exported to user-space to ensure they are 124 + self-contained, i.e. compilable as standalone units. 125 + 126 + If you are a developer or tester and want to ensure the exported 127 + headers are self-contained, say Y here. Otherwise, choose N. 101 128 102 129 config LOCALVERSION 103 130 string "Local version - append to kernel release"
+18 -33
kernel/gen_kheaders.sh
··· 4 4 # This script generates an archive consisting of kernel headers 5 5 # for CONFIG_IKHEADERS. 6 6 set -e 7 - spath="$(dirname "$(readlink -f "$0")")" 8 - kroot="$spath/.." 7 + sfile="$(readlink -f "$0")" 9 8 outdir="$(pwd)" 10 9 tarfile=$1 11 10 cpio_dir=$outdir/$tarfile.tmp 12 11 13 - # Script filename relative to the kernel source root 14 - # We add it to the archive because it is small and any changes 15 - # to this script will also cause a rebuild of the archive. 16 - sfile="$(realpath --relative-to $kroot "$(readlink -f "$0")")" 17 - 18 - src_file_list=" 19 - include/ 20 - arch/$SRCARCH/include/ 21 - $sfile 22 - " 23 - 24 - obj_file_list=" 12 + dir_list=" 25 13 include/ 26 14 arch/$SRCARCH/include/ 27 15 " ··· 21 33 # Uncomment it for debugging. 22 34 # if [ ! -f /tmp/iter ]; then iter=1; echo 1 > /tmp/iter; 23 35 # else iter=$(($(cat /tmp/iter) + 1)); echo $iter > /tmp/iter; fi 24 - # find $src_file_list -type f | xargs ls -lR > /tmp/src-ls-$iter 25 - # find $obj_file_list -type f | xargs ls -lR > /tmp/obj-ls-$iter 36 + # find $src_file_list -name "*.h" | xargs ls -l > /tmp/src-ls-$iter 37 + # find $obj_file_list -name "*.h" | xargs ls -l > /tmp/obj-ls-$iter 26 38 27 39 # include/generated/compile.h is ignored because it is touched even when none 28 40 # of the source files changed. This causes pointless regeneration, so let us 29 41 # ignore them for md5 calculation. 30 - pushd $kroot > /dev/null 31 - src_files_md5="$(find $src_file_list -type f | 42 + pushd $srctree > /dev/null 43 + src_files_md5="$(find $dir_list -name "*.h" | 32 44 grep -v "include/generated/compile.h" | 33 45 grep -v "include/generated/autoconf.h" | 34 - grep -v "include/config/auto.conf" | 35 - grep -v "include/config/auto.conf.cmd" | 36 - grep -v "include/config/tristate.conf" | 37 - xargs ls -lR | md5sum | cut -d ' ' -f1)" 46 + xargs ls -l | md5sum | cut -d ' ' -f1)" 38 47 popd > /dev/null 39 - obj_files_md5="$(find $obj_file_list -type f | 48 + obj_files_md5="$(find $dir_list -name "*.h" | 40 49 grep -v "include/generated/compile.h" | 41 50 grep -v "include/generated/autoconf.h" | 42 - grep -v "include/config/auto.conf" | 43 - grep -v "include/config/auto.conf.cmd" | 44 - grep -v "include/config/tristate.conf" | 45 - xargs ls -lR | md5sum | cut -d ' ' -f1)" 46 - 51 + xargs ls -l | md5sum | cut -d ' ' -f1)" 52 + # Any changes to this script will also cause a rebuild of the archive. 53 + this_file_md5="$(ls -l $sfile | md5sum | cut -d ' ' -f1)" 47 54 if [ -f $tarfile ]; then tarfile_md5="$(md5sum $tarfile | cut -d ' ' -f1)"; fi 48 55 if [ -f kernel/kheaders.md5 ] && 49 56 [ "$(cat kernel/kheaders.md5|head -1)" == "$src_files_md5" ] && 50 57 [ "$(cat kernel/kheaders.md5|head -2|tail -1)" == "$obj_files_md5" ] && 58 + [ "$(cat kernel/kheaders.md5|head -3|tail -1)" == "$this_file_md5" ] && 51 59 [ "$(cat kernel/kheaders.md5|tail -1)" == "$tarfile_md5" ]; then 52 60 exit 53 61 fi ··· 55 71 rm -rf $cpio_dir 56 72 mkdir $cpio_dir 57 73 58 - pushd $kroot > /dev/null 59 - for f in $src_file_list; 60 - do find "$f" ! -name "*.cmd" ! -name ".*"; 74 + pushd $srctree > /dev/null 75 + for f in $dir_list; 76 + do find "$f" -name "*.h"; 61 77 done | cpio --quiet -pd $cpio_dir 62 78 popd > /dev/null 63 79 64 80 # The second CPIO can complain if files already exist which can 65 81 # happen with out of tree builds. Just silence CPIO for now. 66 - for f in $obj_file_list; 67 - do find "$f" ! -name "*.cmd" ! -name ".*"; 82 + for f in $dir_list; 83 + do find "$f" -name "*.h"; 68 84 done | cpio --quiet -pd $cpio_dir >/dev/null 2>&1 69 85 70 86 # Remove comments except SDPX lines ··· 75 91 76 92 echo "$src_files_md5" > kernel/kheaders.md5 77 93 echo "$obj_files_md5" >> kernel/kheaders.md5 94 + echo "$this_file_md5" >> kernel/kheaders.md5 78 95 echo "$(md5sum $tarfile | cut -d ' ' -f1)" >> kernel/kheaders.md5 79 96 80 97 rm -rf $cpio_dir
+16 -9
lib/Kconfig.debug
··· 305 305 306 306 If unsure, say N. 307 307 308 - config HEADERS_CHECK 309 - bool "Run 'make headers_check' when building vmlinux" 308 + config HEADERS_INSTALL 309 + bool "Install uapi headers to usr/include" 310 310 depends on !UML 311 311 help 312 - This option will extract the user-visible kernel headers whenever 313 - building the kernel, and will run basic sanity checks on them to 314 - ensure that exported files do not attempt to include files which 315 - were not exported, etc. 312 + This option will install uapi headers (headers exported to user-space) 313 + into the usr/include directory for use during the kernel build. 314 + This is unneeded for building the kernel itself, but needed for some 315 + user-space program samples. It is also needed by some features such 316 + as uapi header sanity checks. 317 + 318 + config HEADERS_CHECK 319 + bool "Run sanity checks on uapi headers when building 'all'" 320 + depends on HEADERS_INSTALL 321 + help 322 + This option will run basic sanity checks on uapi headers when 323 + building the 'all' target, for example, ensure that they do not 324 + attempt to include files which were not exported, etc. 316 325 317 326 If you're making modifications to header files which are 318 - relevant for userspace, say 'Y', and check the headers 319 - exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in 320 - your build tree), to make sure they're suitable. 327 + relevant for userspace, say 'Y'. 321 328 322 329 config OPTIMIZE_INLINING 323 330 bool "Allow compiler to uninline functions marked 'inline'"
+11 -87
lib/raid6/Makefile
··· 12 12 13 13 hostprogs-y += mktables 14 14 15 - quiet_cmd_unroll = UNROLL $@ 16 - cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) < $< > $@ 17 - 18 15 ifeq ($(CONFIG_ALTIVEC),y) 19 16 altivec_flags := -maltivec $(call cc-option,-mabi=altivec) 20 17 ··· 22 25 CFLAGS_REMOVE_altivec1.o += -msoft-float 23 26 CFLAGS_REMOVE_altivec2.o += -msoft-float 24 27 CFLAGS_REMOVE_altivec4.o += -msoft-float 25 - CFLAGS_REMOVE_altivec8.o += -msoft-float 26 28 CFLAGS_REMOVE_altivec8.o += -msoft-float 27 29 CFLAGS_REMOVE_vpermxor1.o += -msoft-float 28 30 CFLAGS_REMOVE_vpermxor2.o += -msoft-float ··· 47 51 endif 48 52 endif 49 53 50 - targets += int1.c 51 - $(obj)/int1.c: UNROLL := 1 52 - $(obj)/int1.c: $(src)/int.uc $(src)/unroll.awk FORCE 53 - $(call if_changed,unroll) 54 + quiet_cmd_unroll = UNROLL $@ 55 + cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$* < $< > $@ 54 56 55 - targets += int2.c 56 - $(obj)/int2.c: UNROLL := 2 57 - $(obj)/int2.c: $(src)/int.uc $(src)/unroll.awk FORCE 58 - $(call if_changed,unroll) 59 - 60 - targets += int4.c 61 - $(obj)/int4.c: UNROLL := 4 62 - $(obj)/int4.c: $(src)/int.uc $(src)/unroll.awk FORCE 63 - $(call if_changed,unroll) 64 - 65 - targets += int8.c 66 - $(obj)/int8.c: UNROLL := 8 67 - $(obj)/int8.c: $(src)/int.uc $(src)/unroll.awk FORCE 68 - $(call if_changed,unroll) 69 - 70 - targets += int16.c 71 - $(obj)/int16.c: UNROLL := 16 72 - $(obj)/int16.c: $(src)/int.uc $(src)/unroll.awk FORCE 73 - $(call if_changed,unroll) 74 - 75 - targets += int32.c 76 - $(obj)/int32.c: UNROLL := 32 77 - $(obj)/int32.c: $(src)/int.uc $(src)/unroll.awk FORCE 57 + targets += int1.c int2.c int4.c int8.c int16.c int32.c 58 + $(obj)/int%.c: $(src)/int.uc $(src)/unroll.awk FORCE 78 59 $(call if_changed,unroll) 79 60 80 61 CFLAGS_altivec1.o += $(altivec_flags) 81 - targets += altivec1.c 82 - $(obj)/altivec1.c: UNROLL := 1 83 - $(obj)/altivec1.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 84 - $(call if_changed,unroll) 85 - 86 62 CFLAGS_altivec2.o += $(altivec_flags) 87 - targets += altivec2.c 88 - $(obj)/altivec2.c: UNROLL := 2 89 - $(obj)/altivec2.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 90 - $(call if_changed,unroll) 91 - 92 63 CFLAGS_altivec4.o += $(altivec_flags) 93 - targets += altivec4.c 94 - $(obj)/altivec4.c: UNROLL := 4 95 - $(obj)/altivec4.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 96 - $(call if_changed,unroll) 97 - 98 64 CFLAGS_altivec8.o += $(altivec_flags) 99 - targets += altivec8.c 100 - $(obj)/altivec8.c: UNROLL := 8 101 - $(obj)/altivec8.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 65 + targets += altivec1.c altivec2.c altivec4.c altivec8.c 66 + $(obj)/altivec%.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 102 67 $(call if_changed,unroll) 103 68 104 69 CFLAGS_vpermxor1.o += $(altivec_flags) 105 - targets += vpermxor1.c 106 - $(obj)/vpermxor1.c: UNROLL := 1 107 - $(obj)/vpermxor1.c: $(src)/vpermxor.uc $(src)/unroll.awk FORCE 108 - $(call if_changed,unroll) 109 - 110 70 CFLAGS_vpermxor2.o += $(altivec_flags) 111 - targets += vpermxor2.c 112 - $(obj)/vpermxor2.c: UNROLL := 2 113 - $(obj)/vpermxor2.c: $(src)/vpermxor.uc $(src)/unroll.awk FORCE 114 - $(call if_changed,unroll) 115 - 116 71 CFLAGS_vpermxor4.o += $(altivec_flags) 117 - targets += vpermxor4.c 118 - $(obj)/vpermxor4.c: UNROLL := 4 119 - $(obj)/vpermxor4.c: $(src)/vpermxor.uc $(src)/unroll.awk FORCE 120 - $(call if_changed,unroll) 121 - 122 72 CFLAGS_vpermxor8.o += $(altivec_flags) 123 - targets += vpermxor8.c 124 - $(obj)/vpermxor8.c: UNROLL := 8 125 - $(obj)/vpermxor8.c: $(src)/vpermxor.uc $(src)/unroll.awk FORCE 73 + targets += vpermxor1.o vpermxor2.o vpermxor4.o vpermxor8.o 74 + $(obj)/vpermxor%.c: $(src)/vpermxor.uc $(src)/unroll.awk FORCE 126 75 $(call if_changed,unroll) 127 76 128 77 CFLAGS_neon1.o += $(NEON_FLAGS) 129 - targets += neon1.c 130 - $(obj)/neon1.c: UNROLL := 1 131 - $(obj)/neon1.c: $(src)/neon.uc $(src)/unroll.awk FORCE 132 - $(call if_changed,unroll) 133 - 134 78 CFLAGS_neon2.o += $(NEON_FLAGS) 135 - targets += neon2.c 136 - $(obj)/neon2.c: UNROLL := 2 137 - $(obj)/neon2.c: $(src)/neon.uc $(src)/unroll.awk FORCE 138 - $(call if_changed,unroll) 139 - 140 79 CFLAGS_neon4.o += $(NEON_FLAGS) 141 - targets += neon4.c 142 - $(obj)/neon4.c: UNROLL := 4 143 - $(obj)/neon4.c: $(src)/neon.uc $(src)/unroll.awk FORCE 144 - $(call if_changed,unroll) 145 - 146 80 CFLAGS_neon8.o += $(NEON_FLAGS) 147 - targets += neon8.c 148 - $(obj)/neon8.c: UNROLL := 8 149 - $(obj)/neon8.c: $(src)/neon.uc $(src)/unroll.awk FORCE 81 + targets += neon1.c neon2.c neon4.c neon8.c 82 + $(obj)/neon%.c: $(src)/neon.uc $(src)/unroll.awk FORCE 150 83 $(call if_changed,unroll) 151 84 152 85 targets += s390vx8.c 153 - $(obj)/s390vx8.c: UNROLL := 8 154 - $(obj)/s390vx8.c: $(src)/s390vx.uc $(src)/unroll.awk FORCE 86 + $(obj)/s390vx%.c: $(src)/s390vx.uc $(src)/unroll.awk FORCE 155 87 $(call if_changed,unroll) 156 88 157 89 quiet_cmd_mktable = TABLE $@
+1 -1
net/bpfilter/Kconfig
··· 9 9 if BPFILTER 10 10 config BPFILTER_UMH 11 11 tristate "bpfilter kernel module with user mode helper" 12 - depends on $(success,$(srctree)/scripts/cc-can-link.sh $(CC)) 12 + depends on CC_CAN_LINK 13 13 default m 14 14 help 15 15 This builds bpfilter kernel module with embedded user mode helper
+11 -3
samples/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 menuconfig SAMPLES 3 3 bool "Sample kernel code" 4 - depends on !UML 5 4 help 6 5 You can build and test sample kernel code here. 7 6 ··· 94 95 95 96 config SAMPLE_CONNECTOR 96 97 tristate "Build connector sample -- loadable modules only" 97 - depends on CONNECTOR && m 98 + depends on CONNECTOR && HEADERS_INSTALL && m 98 99 help 99 100 When enabled, this builds both a sample kernel module for 100 101 the connector interface and a user space tool to communicate 101 102 with it. 102 103 See also Documentation/connector/connector.txt 103 104 105 + config SAMPLE_HIDRAW 106 + bool "hidraw sample" 107 + depends on HEADERS_INSTALL 108 + 109 + config SAMPLE_PIDFD 110 + bool "pidfd sample" 111 + depends on HEADERS_INSTALL 112 + 104 113 config SAMPLE_SECCOMP 105 114 bool "Build seccomp sample code" 106 - depends on SECCOMP_FILTER 115 + depends on SECCOMP_FILTER && HEADERS_INSTALL 107 116 help 108 117 Build samples of seccomp filters using various methods of 109 118 BPF filter construction. ··· 163 156 164 157 config SAMPLE_VFS 165 158 bool "Build example programs that use new VFS system calls" 159 + depends on HEADERS_INSTALL 166 160 help 167 161 Build example userspace programs that use new VFS system calls such 168 162 as mount API and statx(). Note that this is restricted to the x86
+2 -2
samples/Makefile
··· 4 4 obj-$(CONFIG_SAMPLE_ANDROID_BINDERFS) += binderfs/ 5 5 obj-$(CONFIG_SAMPLE_CONFIGFS) += configfs/ 6 6 obj-$(CONFIG_SAMPLE_CONNECTOR) += connector/ 7 - subdir-y += hidraw 7 + subdir-$(CONFIG_SAMPLE_HIDRAW) += hidraw 8 8 obj-$(CONFIG_SAMPLE_HW_BREAKPOINT) += hw_breakpoint/ 9 9 obj-$(CONFIG_SAMPLE_KDB) += kdb/ 10 10 obj-$(CONFIG_SAMPLE_KFIFO) += kfifo/ 11 11 obj-$(CONFIG_SAMPLE_KOBJECT) += kobject/ 12 12 obj-$(CONFIG_SAMPLE_KPROBES) += kprobes/ 13 13 obj-$(CONFIG_SAMPLE_LIVEPATCH) += livepatch/ 14 - subdir-y += pidfd 14 + subdir-$(CONFIG_SAMPLE_PIDFD) += pidfd 15 15 obj-$(CONFIG_SAMPLE_QMI_CLIENT) += qmi/ 16 16 obj-$(CONFIG_SAMPLE_RPMSG_CLIENT) += rpmsg/ 17 17 subdir-$(CONFIG_SAMPLE_SECCOMP) += seccomp
+11 -17
scripts/Kbuild.include
··· 79 79 # would try to directly execute the shell builtin 'command'. This workaround 80 80 # should be kept for a long time since this issue was fixed only after the 81 81 # GNU Make 4.2.1 release. 82 - cc-cross-prefix = $(firstword $(foreach c, $(filter-out -%, $(1)), \ 83 - $(if $(shell command -v $(c)gcc 2>/dev/null), $(c)))) 82 + cc-cross-prefix = $(firstword $(foreach c, $(1), \ 83 + $(if $(shell command -v -- $(c)gcc 2>/dev/null), $(c)))) 84 84 85 85 # output directory for tests below 86 86 TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/) ··· 187 187 # $(Q)$(MAKE) $(clean)=dir 188 188 clean := -f $(srctree)/scripts/Makefile.clean obj 189 189 190 - ### 191 - # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.headersinst obj= 192 - # Usage: 193 - # $(Q)$(MAKE) $(hdr-inst)=dir 194 - hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj 195 - 196 190 # echo command. 197 191 # Short version is used, if $(quiet) equals `quiet_', otherwise full one. 198 192 echo-cmd = $(if $($(quiet)cmd_$(1)),\ ··· 207 213 # See Documentation/kbuild/makefiles.rst for more info 208 214 209 215 ifneq ($(KBUILD_NOCMDDEP),1) 210 - # Check if both arguments are the same including their order. Result is empty 216 + # Check if both commands are the same including their order. Result is empty 211 217 # string if equal. User may override this check using make KBUILD_NOCMDDEP=1 212 - arg-check = $(filter-out $(subst $(space),$(space_escape),$(strip $(cmd_$@))), \ 218 + cmd-check = $(filter-out $(subst $(space),$(space_escape),$(strip $(cmd_$@))), \ 213 219 $(subst $(space),$(space_escape),$(strip $(cmd_$1)))) 214 220 else 215 - arg-check = $(if $(strip $(cmd_$@)),,1) 221 + cmd-check = $(if $(strip $(cmd_$@)),,1) 216 222 endif 217 223 218 224 # Replace >$< with >$$< to preserve $ when reloading the .cmd file ··· 225 231 226 232 # Find any prerequisites that is newer than target or that does not exist. 227 233 # PHONY targets skipped in both cases. 228 - any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^) 234 + any-prereq = $(filter-out $(PHONY),$?)$(filter-out $(PHONY) $(wildcard $^),$^) 229 235 230 236 # Execute command if command has changed or prerequisite(s) are updated. 231 - if_changed = $(if $(strip $(any-prereq) $(arg-check)), \ 237 + if_changed = $(if $(any-prereq)$(cmd-check), \ 232 238 $(cmd); \ 233 239 printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:) 234 240 235 241 # Execute the command and also postprocess generated .d dependencies file. 236 - if_changed_dep = $(if $(strip $(any-prereq) $(arg-check)),$(cmd_and_fixdep),@:) 242 + if_changed_dep = $(if $(any-prereq)$(cmd-check),$(cmd_and_fixdep),@:) 237 243 238 244 cmd_and_fixdep = \ 239 245 $(cmd); \ ··· 243 249 # Usage: $(call if_changed_rule,foo) 244 250 # Will check if $(cmd_foo) or any of the prerequisites changed, 245 251 # and if so will execute $(rule_foo). 246 - if_changed_rule = $(if $(strip $(any-prereq) $(arg-check)),$(rule_$(1)),@:) 252 + if_changed_rule = $(if $(any-prereq)$(cmd-check),$(rule_$(1)),@:) 247 253 248 254 ### 249 255 # why - tell why a target got built ··· 268 274 why = \ 269 275 $(if $(filter $@, $(PHONY)),- due to target is PHONY, \ 270 276 $(if $(wildcard $@), \ 271 - $(if $(strip $(any-prereq)),- due to: $(any-prereq), \ 272 - $(if $(arg-check), \ 277 + $(if $(any-prereq),- due to: $(any-prereq), \ 278 + $(if $(cmd-check), \ 273 279 $(if $(cmd_$@),- due to command line change, \ 274 280 $(if $(filter $@, $(targets)), \ 275 281 - due to missing .cmd file, \
-5
scripts/Makefile
··· 31 31 # The following hostprogs-y programs are only build on demand 32 32 hostprogs-y += unifdef 33 33 34 - # These targets are used internally to avoid "is up to date" messages 35 - PHONY += build_unifdef 36 - build_unifdef: $(obj)/unifdef 37 - @: 38 - 39 34 subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins 40 35 subdir-$(CONFIG_MODVERSIONS) += genksyms 41 36 subdir-$(CONFIG_SECURITY_SELINUX) += selinux
+10 -1
scripts/Makefile.build
··· 294 294 $(obj)/%.lst: $(src)/%.c FORCE 295 295 $(call if_changed_dep,cc_lst_c) 296 296 297 + # header test (header-test-y target) 298 + # --------------------------------------------------------------------------- 299 + 300 + quiet_cmd_cc_s_h = CC $@ 301 + cmd_cc_s_h = $(CC) $(c_flags) -S -o $@ -x c /dev/null -include $< 302 + 303 + $(obj)/%.h.s: $(src)/%.h FORCE 304 + $(call if_changed_dep,cc_s_h) 305 + 297 306 # Compile assembler sources (.S) 298 307 # --------------------------------------------------------------------------- 299 308 ··· 513 504 514 505 -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd) 515 506 516 - ifneq ($(srctree),.) 507 + ifdef building_out_of_srctree 517 508 # Create directories for object files if they do not exist 518 509 obj-dirs := $(sort $(obj) $(patsubst %/,%, $(dir $(targets)))) 519 510 # If targets exist, their directories apparently exist. Skip mkdir.
-3
scripts/Makefile.extrawarn
··· 34 34 warning-1 += -Wno-missing-field-initializers 35 35 warning-1 += -Wno-sign-compare 36 36 37 - warning-2 := -Waggregate-return 38 37 warning-2 += -Wcast-align 39 38 warning-2 += -Wdisabled-optimization 40 39 warning-2 += -Wnested-externs ··· 67 68 68 69 ifdef CONFIG_CC_IS_CLANG 69 70 KBUILD_CFLAGS += -Wno-initializer-overrides 70 - KBUILD_CFLAGS += -Wno-unused-value 71 71 KBUILD_CFLAGS += -Wno-format 72 72 KBUILD_CFLAGS += -Wno-sign-compare 73 73 KBUILD_CFLAGS += -Wno-format-zero-length 74 - KBUILD_CFLAGS += -Wno-uninitialized 75 74 endif 76 75 endif
+63 -83
scripts/Makefile.headersinst
··· 14 14 15 15 include scripts/Kbuild.include 16 16 17 - srcdir := $(srctree)/$(obj) 17 + src := $(srctree)/$(obj) 18 + gen := $(objtree)/$(subst include/,include/generated/,$(obj)) 19 + dst := usr/include 18 20 19 - # When make is run under a fakechroot environment, the function 20 - # $(wildcard $(srcdir)/*/.) doesn't only return directories, but also regular 21 - # files. So, we are using a combination of sort/dir/wildcard which works 22 - # with fakechroot. 23 - subdirs := $(patsubst $(srcdir)/%/,%,\ 24 - $(filter-out $(srcdir)/,\ 25 - $(sort $(dir $(wildcard $(srcdir)/*/))))) 21 + -include $(src)/Kbuild 26 22 27 - # Recursion 28 - __headers: $(subdirs) 23 + # $(filter %/, ...) is a workaround for GNU Make <= 4.2.1, where 24 + # $(wildcard $(src)/*/) contains not only directories but also regular files. 25 + src-subdirs := $(patsubst $(src)/%/,%,$(filter %/, $(wildcard $(src)/*/))) 26 + gen-subdirs := $(patsubst $(gen)/%/,%,$(filter %/, $(wildcard $(gen)/*/))) 27 + all-subdirs := $(sort $(src-subdirs) $(gen-subdirs)) 29 28 30 - PHONY += $(subdirs) 31 - $(subdirs): 32 - $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(dst)/$@ 29 + src-headers := $(if $(src-subdirs), $(shell cd $(src) && find $(src-subdirs) -name '*.h')) 30 + src-headers := $(filter-out $(no-export-headers), $(src-headers)) 31 + gen-headers := $(if $(gen-subdirs), $(shell cd $(gen) && find $(gen-subdirs) -name '*.h')) 32 + gen-headers := $(filter-out $(no-export-headers), $(gen-headers)) 33 33 34 - # Skip header install/check for include/uapi and arch/$(SRCARCH)/include/uapi. 35 - # We have only sub-directories there. 36 - skip-inst := $(if $(filter %/uapi,$(obj)),1) 34 + # If the same header is exported from source and generated directories, 35 + # the former takes precedence, but this should be warned. 36 + duplicated := $(filter $(gen-headers), $(src-headers)) 37 + $(if $(duplicated), $(warning duplicated header export: $(duplicated))) 37 38 38 - ifeq ($(skip-inst),) 39 + gen-headers := $(filter-out $(duplicated), $(gen-headers)) 39 40 40 - # Kbuild file is optional 41 - kbuild-file := $(srctree)/$(obj)/Kbuild 42 - -include $(kbuild-file) 43 - 44 - installdir := $(INSTALL_HDR_PATH)/$(dst) 45 - gendir := $(objtree)/$(subst include/,include/generated/,$(obj)) 46 - header-files := $(notdir $(wildcard $(srcdir)/*.h)) 47 - header-files := $(filter-out $(no-export-headers), $(header-files)) 48 - genhdr-files := $(notdir $(wildcard $(gendir)/*.h)) 49 - genhdr-files := $(filter-out $(header-files), $(genhdr-files)) 50 - 51 - # files used to track state of install/check 52 - install-file := $(installdir)/.install 53 - check-file := $(installdir)/.check 54 - 55 - # all headers files for this dir 56 - all-files := $(header-files) $(genhdr-files) 57 - output-files := $(addprefix $(installdir)/, $(all-files)) 41 + # Add dst path prefix 42 + all-subdirs := $(addprefix $(dst)/, $(all-subdirs)) 43 + src-headers := $(addprefix $(dst)/, $(src-headers)) 44 + gen-headers := $(addprefix $(dst)/, $(gen-headers)) 45 + all-headers := $(src-headers) $(gen-headers) 58 46 59 47 # Work out what needs to be removed 60 - oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h)) 61 - unwanted := $(filter-out $(all-files),$(oldheaders)) 48 + old-subdirs := $(wildcard $(all-subdirs)) 49 + old-headers := $(if $(old-subdirs),$(shell find $(old-subdirs) -name '*.h')) 50 + unwanted := $(filter-out $(all-headers), $(old-headers)) 62 51 63 - # Prefix unwanted with full paths to $(INSTALL_HDR_PATH) 64 - unwanted-file := $(addprefix $(installdir)/, $(unwanted)) 52 + # Create directories 53 + existing-dirs := $(sort $(dir $(old-headers))) 54 + wanted-dirs := $(sort $(dir $(all-headers))) 55 + new-dirs := $(filter-out $(existing-dirs), $(wanted-dirs)) 56 + $(if $(new-dirs), $(shell mkdir -p $(new-dirs))) 65 57 66 - printdir = $(patsubst $(INSTALL_HDR_PATH)/%/,%,$(dir $@)) 67 - 68 - quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\ 69 - file$(if $(word 2, $(all-files)),s)) 70 - cmd_install = \ 71 - $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(header-files); \ 72 - $(CONFIG_SHELL) $< $(installdir) $(gendir) $(genhdr-files); \ 73 - touch $@ 74 - 75 - quiet_cmd_remove = REMOVE $(unwanted) 76 - cmd_remove = rm -f $(unwanted-file) 77 - 78 - quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files) 79 - # Headers list can be pretty long, xargs helps to avoid 80 - # the "Argument list too long" error. 81 - cmd_check = for f in $(all-files); do \ 82 - echo "$(installdir)/$${f}"; done \ 83 - | xargs \ 84 - $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \ 85 - touch $@ 58 + # Rules 86 59 87 60 ifndef HDRCHECK 88 - # Rules for installing headers 89 - __headers: $(install-file) 90 - @: 91 61 92 - targets += $(install-file) 93 - $(install-file): scripts/headers_install.sh \ 94 - $(addprefix $(srcdir)/,$(header-files)) \ 95 - $(addprefix $(gendir)/,$(genhdr-files)) FORCE 96 - $(if $(unwanted),$(call cmd,remove),) 97 - $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@))) 62 + quiet_cmd_install = HDRINST $@ 63 + cmd_install = $(CONFIG_SHELL) $(srctree)/scripts/headers_install.sh $< $@ 64 + 65 + $(src-headers): $(dst)/%.h: $(src)/%.h $(srctree)/scripts/headers_install.sh FORCE 98 66 $(call if_changed,install) 99 67 100 - else 101 - __headers: $(check-file) 68 + $(gen-headers): $(dst)/%.h: $(gen)/%.h $(srctree)/scripts/headers_install.sh FORCE 69 + $(call if_changed,install) 70 + 71 + quiet_cmd_remove = REMOVE $(unwanted) 72 + cmd_remove = rm -f $(unwanted) 73 + 74 + __headers: $(all-headers) 75 + ifneq ($(unwanted),) 76 + $(call cmd,remove) 77 + endif 102 78 @: 103 79 104 - targets += $(check-file) 105 - $(check-file): scripts/headers_check.pl $(output-files) FORCE 106 - $(call if_changed,check) 80 + existing-headers := $(filter $(old-headers), $(all-headers)) 81 + 82 + -include $(foreach f,$(existing-headers),$(dir $(f)).$(notdir $(f)).cmd) 83 + 84 + else 85 + 86 + quiet_cmd_check = HDRCHK $< 87 + cmd_check = $(PERL) $(srctree)/scripts/headers_check.pl $(dst) $(SRCARCH) $<; touch $@ 88 + 89 + check-files := $(addsuffix .chk, $(all-headers)) 90 + 91 + $(check-files): $(dst)/%.chk : $(dst)/% $(srctree)/scripts/headers_check.pl 92 + $(call cmd,check) 93 + 94 + __headers: $(check-files) 95 + @: 107 96 108 97 endif 109 - 110 - cmd_files := $(wildcard \ 111 - $(foreach f,$(sort $(targets)),$(dir $(f)).$(notdir $(f)).cmd)) 112 - 113 - ifneq ($(cmd_files),) 114 - include $(cmd_files) 115 - endif 116 - 117 - endif # skip-inst 118 98 119 99 PHONY += FORCE 120 - FORCE: ; 100 + FORCE: 121 101 122 102 .PHONY: $(PHONY)
+1 -1
scripts/Makefile.host
··· 69 69 70 70 # $(objtree)/$(obj) for including generated headers from checkin source files 71 71 ifeq ($(KBUILD_EXTMOD),) 72 - ifneq ($(srctree),.) 72 + ifdef building_out_of_srctree 73 73 _hostc_flags += -I $(objtree)/$(obj) 74 74 _hostcxx_flags += -I $(objtree)/$(obj) 75 75 endif
+20 -6
scripts/Makefile.lib
··· 66 66 extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-)) 67 67 endif 68 68 69 + # Test self-contained headers 70 + 71 + # Wildcard searches in $(srctree)/$(src)/, but not in $(objtree)/$(obj)/. 72 + # Stale generated headers are often left over, so pattern matching should 73 + # be avoided. Please notice $(srctree)/$(src)/ and $(objtree)/$(obj) point 74 + # to the same location for in-tree building. So, header-test-pattern-y should 75 + # be used with care. 76 + header-test-y += $(filter-out $(header-test-), \ 77 + $(patsubst $(srctree)/$(src)/%, %, \ 78 + $(wildcard $(addprefix $(srctree)/$(src)/, \ 79 + $(header-test-pattern-y))))) 80 + 81 + extra-$(CONFIG_HEADER_TEST) += $(addsuffix .s, $(header-test-y)) 82 + 69 83 # Add subdir path 70 84 71 85 extra-y := $(addprefix $(obj)/,$(extra-y)) ··· 154 140 # $(srctree)/$(src) for including checkin headers from generated source files 155 141 # $(objtree)/$(obj) for including generated headers from checkin source files 156 142 ifeq ($(KBUILD_EXTMOD),) 157 - ifneq ($(srctree),.) 143 + ifdef building_out_of_srctree 158 144 _c_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) 159 145 _a_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) 160 146 _cpp_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) ··· 345 331 ) 346 332 347 333 quiet_cmd_bzip2 = BZIP2 $@ 348 - cmd_bzip2 = { cat $(real-prereqs) | bzip2 -9 && $(size_append); } > $@ 334 + cmd_bzip2 = { cat $(real-prereqs) | bzip2 -9; $(size_append); } > $@ 349 335 350 336 # Lzma 351 337 # --------------------------------------------------------------------------- 352 338 353 339 quiet_cmd_lzma = LZMA $@ 354 - cmd_lzma = { cat $(real-prereqs) | lzma -9 && $(size_append); } > $@ 340 + cmd_lzma = { cat $(real-prereqs) | lzma -9; $(size_append); } > $@ 355 341 356 342 quiet_cmd_lzo = LZO $@ 357 - cmd_lzo = { cat $(real-prereqs) | lzop -9 && $(size_append); } > $@ 343 + cmd_lzo = { cat $(real-prereqs) | lzop -9; $(size_append); } > $@ 358 344 359 345 quiet_cmd_lz4 = LZ4 $@ 360 - cmd_lz4 = { cat $(real-prereqs) | lz4c -l -c1 stdin stdout && \ 346 + cmd_lz4 = { cat $(real-prereqs) | lz4c -l -c1 stdin stdout; \ 361 347 $(size_append); } > $@ 362 348 363 349 # U-Boot mkimage ··· 400 386 # big dictionary would increase the memory usage too much in the multi-call 401 387 # decompression mode. A BCJ filter isn't used either. 402 388 quiet_cmd_xzkern = XZKERN $@ 403 - cmd_xzkern = { cat $(real-prereqs) | sh $(srctree)/scripts/xz_wrap.sh && \ 389 + cmd_xzkern = { cat $(real-prereqs) | sh $(srctree)/scripts/xz_wrap.sh; \ 404 390 $(size_append); } > $@ 405 391 406 392 quiet_cmd_xzmisc = XZMISC $@
+1 -1
scripts/Makefile.modbuiltin
··· 15 15 16 16 include scripts/Kbuild.include 17 17 18 - ifneq ($(srctree),.) 18 + ifdef building_out_of_srctree 19 19 # Create output directory if not already present 20 20 _dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj)) 21 21 endif
+41 -10
scripts/basic/fixdep.c
··· 99 99 #include <unistd.h> 100 100 #include <fcntl.h> 101 101 #include <string.h> 102 + #include <stdarg.h> 102 103 #include <stdlib.h> 103 104 #include <stdio.h> 104 105 #include <ctype.h> ··· 111 110 } 112 111 113 112 /* 113 + * In the intended usage of this program, the stdout is redirected to .*.cmd 114 + * files. The return value of printf() and putchar() must be checked to catch 115 + * any error, e.g. "No space left on device". 116 + */ 117 + static void xprintf(const char *format, ...) 118 + { 119 + va_list ap; 120 + int ret; 121 + 122 + va_start(ap, format); 123 + ret = vprintf(format, ap); 124 + if (ret < 0) { 125 + perror("fixdep"); 126 + exit(1); 127 + } 128 + va_end(ap); 129 + } 130 + 131 + static void xputchar(int c) 132 + { 133 + int ret; 134 + 135 + ret = putchar(c); 136 + if (ret == EOF) { 137 + perror("fixdep"); 138 + exit(1); 139 + } 140 + } 141 + 142 + /* 114 143 * Print out a dependency path from a symbol name 115 144 */ 116 145 static void print_dep(const char *m, int slen, const char *dir) 117 146 { 118 147 int c, prev_c = '/', i; 119 148 120 - printf(" $(wildcard %s/", dir); 149 + xprintf(" $(wildcard %s/", dir); 121 150 for (i = 0; i < slen; i++) { 122 151 c = m[i]; 123 152 if (c == '_') ··· 155 124 else 156 125 c = tolower(c); 157 126 if (c != '/' || prev_c != '/') 158 - putchar(c); 127 + xputchar(c); 159 128 prev_c = c; 160 129 } 161 - printf(".h) \\\n"); 130 + xprintf(".h) \\\n"); 162 131 } 163 132 164 133 struct item { ··· 355 324 */ 356 325 if (!saw_any_target) { 357 326 saw_any_target = 1; 358 - printf("source_%s := %s\n\n", 359 - target, m); 360 - printf("deps_%s := \\\n", target); 327 + xprintf("source_%s := %s\n\n", 328 + target, m); 329 + xprintf("deps_%s := \\\n", target); 361 330 } 362 331 is_first_dep = 0; 363 332 } else { 364 - printf(" %s \\\n", m); 333 + xprintf(" %s \\\n", m); 365 334 } 366 335 367 336 buf = read_file(m); ··· 384 353 exit(1); 385 354 } 386 355 387 - printf("\n%s: $(deps_%s)\n\n", target, target); 388 - printf("$(deps_%s):\n", target); 356 + xprintf("\n%s: $(deps_%s)\n\n", target, target); 357 + xprintf("$(deps_%s):\n", target); 389 358 } 390 359 391 360 int main(int argc, char *argv[]) ··· 400 369 target = argv[2]; 401 370 cmdline = argv[3]; 402 371 403 - printf("cmd_%s := %s\n\n", target, cmdline); 372 + xprintf("cmd_%s := %s\n\n", target, cmdline); 404 373 405 374 buf = read_file(depfile); 406 375 parse_dep_file(buf, target);
+4 -4
scripts/coccinelle/api/kstrdup.cocci
··· 77 77 p2 << r1.p2; 78 78 @@ 79 79 80 - cocci.print_main("WARNING opportunity for kstrdep",p1) 80 + cocci.print_main("WARNING opportunity for kstrdup",p1) 81 81 cocci.print_secs("strcpy",p2) 82 82 83 83 @script:python depends on org@ ··· 85 85 p2 << r2.p2; 86 86 @@ 87 87 88 - cocci.print_main("WARNING opportunity for kstrdep",p1) 88 + cocci.print_main("WARNING opportunity for kstrdup",p1) 89 89 cocci.print_secs("memcpy",p2) 90 90 91 91 @script:python depends on report@ ··· 93 93 p2 << r1.p2; 94 94 @@ 95 95 96 - msg = "WARNING opportunity for kstrdep (strcpy on line %s)" % (p2[0].line) 96 + msg = "WARNING opportunity for kstrdup (strcpy on line %s)" % (p2[0].line) 97 97 coccilib.report.print_report(p1[0], msg) 98 98 99 99 @script:python depends on report@ ··· 101 101 p2 << r2.p2; 102 102 @@ 103 103 104 - msg = "WARNING opportunity for kstrdep (memcpy on line %s)" % (p2[0].line) 104 + msg = "WARNING opportunity for kstrdup (memcpy on line %s)" % (p2[0].line) 105 105 coccilib.report.print_report(p1[0], msg)
+4 -4
scripts/coccinelle/api/stream_open.cocci
··· 35 35 // a function that blocks 36 36 @ blocks @ 37 37 identifier block_f; 38 - identifier wait_event =~ "^wait_event_.*"; 38 + identifier wait =~ "^wait_.*"; 39 39 @@ 40 40 block_f(...) { 41 41 ... when exists 42 - wait_event(...) 42 + wait(...) 43 43 ... when exists 44 44 } 45 45 ··· 49 49 // XXX currently reader_blocks supports only direct and 1-level indirect cases. 50 50 @ reader_blocks_direct @ 51 51 identifier stream_reader.readstream; 52 - identifier wait_event =~ "^wait_event_.*"; 52 + identifier wait =~ "^wait_.*"; 53 53 @@ 54 54 readstream(...) 55 55 { 56 56 ... when exists 57 - wait_event(...) 57 + wait(...) 58 58 ... when exists 59 59 } 60 60
+5 -6
scripts/coccinelle/free/put_device.cocci
··· 24 24 when != of_dev_put(id) 25 25 when != if (id) { ... put_device(&id->dev) ... } 26 26 when != e1 = (T)id 27 - when != e1 = &id->dev 27 + when != e1 = (T)(&id->dev) 28 28 when != e1 = get_device(&id->dev) 29 29 when != e1 = (T1)platform_get_drvdata(id) 30 30 ( ··· 42 42 p2 << search.p2; 43 43 @@ 44 44 45 - coccilib.report.print_report(p2[0], "ERROR: missing put_device; " 46 - + "call of_find_device_by_node on line " 47 - + p1[0].line 48 - + ", but without a corresponding object release " 49 - + "within this function.") 45 + coccilib.report.print_report(p2[0], 46 + "ERROR: missing put_device; call of_find_device_by_node on line " 47 + + p1[0].line 48 + + ", but without a corresponding object release within this function.") 50 49 51 50 @script:python depends on org@ 52 51 p1 << search.p1;
+1 -1
scripts/gdb/linux/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 3 - ifneq ($(srctree),.) 3 + ifdef building_out_of_srctree 4 4 5 5 symlinks := $(patsubst $(srctree)/$(src)/%,%,$(wildcard $(srctree)/$(src)/*.py)) 6 6
+4
scripts/genksyms/keywords.c
··· 25 25 { "__volatile__", VOLATILE_KEYW }, 26 26 { "__builtin_va_list", VA_LIST_KEYW }, 27 27 28 + { "__int128", BUILTIN_INT_KEYW }, 29 + { "__int128_t", BUILTIN_INT_KEYW }, 30 + { "__uint128_t", BUILTIN_INT_KEYW }, 31 + 28 32 // According to rth, c99 defines "_Bool", __restrict", __restrict__", "restrict". KAO 29 33 { "_Bool", BOOL_KEYW }, 30 34 { "_restrict", RESTRICT_KEYW },
+2
scripts/genksyms/parse.y
··· 76 76 %token ATTRIBUTE_KEYW 77 77 %token AUTO_KEYW 78 78 %token BOOL_KEYW 79 + %token BUILTIN_INT_KEYW 79 80 %token CHAR_KEYW 80 81 %token CONST_KEYW 81 82 %token DOUBLE_KEYW ··· 264 263 | VOID_KEYW 265 264 | BOOL_KEYW 266 265 | VA_LIST_KEYW 266 + | BUILTIN_INT_KEYW 267 267 | TYPE { (*$1)->tag = SYM_TYPEDEF; $$ = $1; } 268 268 ; 269 269
-29
scripts/headers.sh
··· 1 - #!/bin/sh 2 - # SPDX-License-Identifier: GPL-2.0 3 - # Run headers_$1 command for all suitable architectures 4 - 5 - # Stop on error 6 - set -e 7 - 8 - do_command() 9 - { 10 - if [ -f ${srctree}/arch/$2/include/asm/Kbuild ]; then 11 - make ARCH=$2 KBUILD_HEADERS=$1 headers_$1 12 - else 13 - printf "Ignoring arch: %s\n" ${arch} 14 - fi 15 - } 16 - 17 - archs=${HDR_ARCH_LIST:-$(ls ${srctree}/arch)} 18 - 19 - for arch in ${archs}; do 20 - case ${arch} in 21 - um) # no userspace export 22 - ;; 23 - *) 24 - if [ -d ${srctree}/arch/${arch} ]; then 25 - do_command $1 ${arch} 26 - fi 27 - ;; 28 - esac 29 - done
+20 -28
scripts/headers_install.sh
··· 1 1 #!/bin/sh 2 2 # SPDX-License-Identifier: GPL-2.0 3 3 4 - if [ $# -lt 2 ] 4 + if [ $# -ne 2 ] 5 5 then 6 - echo "Usage: headers_install.sh OUTDIR SRCDIR [FILES...]" 6 + echo "Usage: headers_install.sh INFILE OUTFILE" 7 7 echo 8 8 echo "Prepares kernel header files for use by user space, by removing" 9 9 echo "all compiler.h definitions and #includes, removing any" 10 10 echo "#ifdef __KERNEL__ sections, and putting __underscores__ around" 11 11 echo "asm/inline/volatile keywords." 12 12 echo 13 - echo "OUTDIR: directory to write each userspace header FILE to." 14 - echo "SRCDIR: source directory where files are picked." 15 - echo "FILES: list of header files to operate on." 13 + echo "INFILE: header file to operate on" 14 + echo "OUTFILE: output file which the processed header is writen to" 16 15 17 16 exit 1 18 17 fi 19 18 20 19 # Grab arguments 20 + INFILE=$1 21 + OUTFILE=$2 22 + TMPFILE=$OUTFILE.tmp 21 23 22 - OUTDIR="$1" 23 - shift 24 - SRCDIR="$1" 25 - shift 24 + trap 'rm -f $OUTFILE $TMPFILE' EXIT 26 25 27 - # Iterate through files listed on command line 26 + sed -E -e ' 27 + s/([[:space:](])(__user|__force|__iomem)[[:space:]]/\1/g 28 + s/__attribute_const__([[:space:]]|$)/\1/g 29 + s@^#include <linux/compiler(|_types).h>@@ 30 + s/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g 31 + s/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g 32 + s@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @ 33 + ' $INFILE > $TMPFILE || exit 1 28 34 29 - FILE= 30 - trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT 31 - for i in "$@" 32 - do 33 - FILE="$(basename "$i")" 34 - sed -E \ 35 - -e 's/([[:space:](])(__user|__force|__iomem)[[:space:]]/\1/g' \ 36 - -e 's/__attribute_const__([[:space:]]|$)/\1/g' \ 37 - -e 's@^#include <linux/compiler(|_types).h>@@' \ 38 - -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \ 39 - -e 's/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g' \ 40 - -e 's@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @' \ 41 - "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || exit 1 42 - scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \ 43 - > "$OUTDIR/$FILE" 44 - [ $? -gt 1 ] && exit 1 45 - rm -f "$OUTDIR/$FILE.sed" 46 - done 35 + scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE 36 + [ $? -gt 1 ] && exit 1 37 + 38 + rm -f $TMPFILE 47 39 trap - EXIT
+3
scripts/kallsyms.c
··· 150 150 /* exclude debugging symbols */ 151 151 else if (stype == 'N' || stype == 'n') 152 152 return -1; 153 + /* exclude s390 kasan local symbols */ 154 + else if (!strncmp(sym, ".LASANPC", 8)) 155 + return -1; 153 156 154 157 /* include the type field in the symbol name, so that it gets 155 158 * compressed together */
+1 -1
scripts/package/builddeb
··· 130 130 fi 131 131 132 132 if [ "$ARCH" != "um" ]; then 133 - $MAKE -f $srctree/Makefile headers_check 133 + $MAKE -f $srctree/Makefile headers 134 134 $MAKE -f $srctree/Makefile headers_install INSTALL_HDR_PATH="$libc_headers_dir/usr" 135 135 fi 136 136
+1 -1
scripts/package/mkspec
··· 31 31 __KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g") 32 32 EXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \ 33 33 --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \ 34 - --exclude=.config.old --exclude=.missing-syscalls.d" 34 + --exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s" 35 35 36 36 # We can label the here-doc lines for conditional output to the spec file 37 37 #
+5 -38
scripts/tags.sh
··· 6 6 # mode may be any of: tags, TAGS, cscope 7 7 # 8 8 # Uses the following environment variables: 9 - # ARCH, SUBARCH, SRCARCH, srctree, src, obj 9 + # SUBARCH, SRCARCH, srctree 10 10 11 11 if [ "$KBUILD_VERBOSE" = "1" ]; then 12 12 set -x ··· 17 17 # tags and cscope files should also ignore MODVERSION *.mod.c files 18 18 ignore="$ignore ( -name *.mod.c ) -prune -o" 19 19 20 - # Do not use full path if we do not use O=.. builds 21 - # Use make O=. {tags|cscope} 20 + # Use make KBUILD_ABS_SRCTREE=1 {tags|cscope} 22 21 # to force full paths for a non-O= build 23 22 if [ "${srctree}" = "." -o -z "${srctree}" ]; then 24 23 tree= ··· 35 36 ALLSOURCE_ARCHS=$(find ${tree}arch/ -mindepth 1 -maxdepth 1 -type d -printf '%f ') 36 37 fi 37 38 38 - # find sources in arch/$ARCH 39 + # find sources in arch/$1 39 40 find_arch_sources() 40 41 { 41 42 for i in $archincludedir; do 42 43 prune="$prune -wholename $i -prune -o" 43 44 done 44 - find ${tree}arch/$1 $ignore $subarchprune $prune -name "$2" \ 45 - -not -type l -print; 45 + find ${tree}arch/$1 $ignore $prune -name "$2" -not -type l -print; 46 46 } 47 47 48 48 # find sources in arch/$1/include 49 49 find_arch_include_sources() 50 50 { 51 - include=$(find ${tree}arch/$1/ $subarchprune \ 52 - -name include -type d -print); 51 + include=$(find ${tree}arch/$1/ -name include -type d -print); 53 52 if [ -n "$include" ]; then 54 53 archincludedir="$archincludedir $include" 55 54 find $include $ignore -name "$2" -not -type l -print; ··· 303 306 else 304 307 archinclude=${SUBARCH} 305 308 fi 306 - elif [ "${SRCARCH}" = "arm" -a "${SUBARCH}" != "" ]; then 307 - subarchdir=$(find ${tree}arch/$SRCARCH/ -name "mach-*" -type d -o \ 308 - -name "plat-*" -type d); 309 - mach_suffix=$SUBARCH 310 - plat_suffix=$SUBARCH 311 - 312 - # Special cases when $plat_suffix != $mach_suffix 313 - case $mach_suffix in 314 - "omap1" | "omap2") 315 - plat_suffix="omap" 316 - ;; 317 - esac 318 - 319 - if [ ! -d ${tree}arch/$SRCARCH/mach-$mach_suffix ]; then 320 - echo "Warning: arch/arm/mach-$mach_suffix/ not found." >&2 321 - echo " Fix your \$SUBARCH appropriately" >&2 322 - fi 323 - 324 - for i in $subarchdir; do 325 - case "$i" in 326 - *"mach-"${mach_suffix}) 327 - ;; 328 - *"plat-"${plat_suffix}) 329 - ;; 330 - *) 331 - subarchprune="$subarchprune \ 332 - -wholename $i -prune -o" 333 - ;; 334 - esac 335 - done 336 309 fi 337 310 338 311 remove_structs=
+1 -1
tools/testing/selftests/Makefile
··· 74 74 # Append kselftest to KBUILD_OUTPUT to avoid cluttering 75 75 # KBUILD_OUTPUT with selftest objects and headers installed 76 76 # by selftests Makefile or lib.mk. 77 - ifneq ($(KBUILD_SRC),) 77 + ifdef building_out_of_srctree 78 78 override LDFLAGS = 79 79 endif 80 80
+2 -2
tools/testing/selftests/lib.mk
··· 70 70 endef 71 71 72 72 run_tests: all 73 - ifneq ($(KBUILD_SRC),) 73 + ifdef building_out_of_srctree 74 74 @if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" != "X" ]; then 75 75 @rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(OUTPUT) 76 76 fi ··· 125 125 # When make O= with kselftest target from main level 126 126 # the following aren't defined. 127 127 # 128 - ifneq ($(KBUILD_SRC),) 128 + ifdef building_out_of_srctree 129 129 LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) 130 130 COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c 131 131 LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
-1
usr/.gitignore
··· 7 7 initramfs_data.cpio.bz2 8 8 initramfs_data.cpio.lzma 9 9 initramfs_list 10 - include
+2
usr/Makefile
··· 56 56 $(obj)/$(datafile_y): $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs 57 57 $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/$(datafile_d_y) 58 58 $(call if_changed,initfs) 59 + 60 + subdir-$(CONFIG_UAPI_HEADER_TEST) += include
+3
usr/include/.gitignore
··· 1 + * 2 + !.gitignore 3 + !Makefile
+132
usr/include/Makefile
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + 3 + # Unlike the kernel space, exported headers are written in standard C. 4 + # - Forbid C++ style comments 5 + # - Use '__inline__', '__asm__' instead of 'inline', 'asm' 6 + # 7 + # -std=c90 (equivalent to -ansi) catches the violation of those. 8 + # We cannot go as far as adding -Wpedantic since it emits too many warnings. 9 + UAPI_CFLAGS := -std=c90 -Wall -Werror=implicit-function-declaration 10 + 11 + override c_flags = $(UAPI_CFLAGS) -Wp,-MD,$(depfile) -I$(objtree)/usr/include 12 + 13 + # The following are excluded for now because they fail to build. 14 + # 15 + # Do not add a new header to the blacklist without legitimate reason. 16 + # Please consider to fix the header first. 17 + # 18 + # Sorted alphabetically. 19 + header-test- += asm/ipcbuf.h 20 + header-test- += asm/msgbuf.h 21 + header-test- += asm/sembuf.h 22 + header-test- += asm/shmbuf.h 23 + header-test- += asm/signal.h 24 + header-test- += asm/ucontext.h 25 + header-test- += drm/vmwgfx_drm.h 26 + header-test- += linux/am437x-vpfe.h 27 + header-test- += linux/android/binder.h 28 + header-test- += linux/android/binderfs.h 29 + header-test-$(CONFIG_CPU_BIG_ENDIAN) += linux/byteorder/big_endian.h 30 + header-test-$(CONFIG_CPU_LITTLE_ENDIAN) += linux/byteorder/little_endian.h 31 + header-test- += linux/coda.h 32 + header-test- += linux/coda_psdev.h 33 + header-test- += linux/dvb/audio.h 34 + header-test- += linux/dvb/osd.h 35 + header-test- += linux/elfcore.h 36 + header-test- += linux/errqueue.h 37 + header-test- += linux/fsmap.h 38 + header-test- += linux/hdlc/ioctl.h 39 + header-test- += linux/ivtv.h 40 + header-test- += linux/jffs2.h 41 + header-test- += linux/kexec.h 42 + header-test- += linux/matroxfb.h 43 + header-test- += linux/netfilter_bridge/ebtables.h 44 + header-test- += linux/netfilter_ipv4/ipt_LOG.h 45 + header-test- += linux/netfilter_ipv6/ip6t_LOG.h 46 + header-test- += linux/nfc.h 47 + header-test- += linux/nilfs2_ondisk.h 48 + header-test- += linux/omap3isp.h 49 + header-test- += linux/omapfb.h 50 + header-test- += linux/patchkey.h 51 + header-test- += linux/phonet.h 52 + header-test- += linux/reiserfs_xattr.h 53 + header-test- += linux/scc.h 54 + header-test- += linux/sctp.h 55 + header-test- += linux/signal.h 56 + header-test- += linux/sysctl.h 57 + header-test- += linux/usb/audio.h 58 + header-test- += linux/v4l2-mediabus.h 59 + header-test- += linux/v4l2-subdev.h 60 + header-test- += linux/videodev2.h 61 + header-test- += linux/vm_sockets.h 62 + header-test- += misc/ocxl.h 63 + header-test- += mtd/mtd-abi.h 64 + header-test- += mtd/mtd-user.h 65 + header-test- += scsi/scsi_bsg_fc.h 66 + header-test- += scsi/scsi_netlink.h 67 + header-test- += scsi/scsi_netlink_fc.h 68 + header-test- += sound/asequencer.h 69 + header-test- += sound/asoc.h 70 + header-test- += sound/asound.h 71 + header-test- += sound/compress_offload.h 72 + header-test- += sound/emu10k1.h 73 + header-test- += sound/sfnt_info.h 74 + header-test- += sound/sof/eq.h 75 + header-test- += sound/sof/fw.h 76 + header-test- += sound/sof/header.h 77 + header-test- += sound/sof/manifest.h 78 + header-test- += sound/sof/trace.h 79 + header-test- += xen/evtchn.h 80 + header-test- += xen/gntdev.h 81 + header-test- += xen/privcmd.h 82 + 83 + # More headers are broken in some architectures 84 + 85 + ifeq ($(SRCARCH),arc) 86 + header-test- += linux/bpf_perf_event.h 87 + endif 88 + 89 + ifeq ($(SRCARCH),ia64) 90 + header-test- += asm/setup.h 91 + header-test- += asm/sigcontext.h 92 + header-test- += asm/perfmon.h 93 + header-test- += asm/perfmon_default_smpl.h 94 + header-test- += linux/if_bonding.h 95 + endif 96 + 97 + ifeq ($(SRCARCH),mips) 98 + header-test- += asm/stat.h 99 + endif 100 + 101 + ifeq ($(SRCARCH),powerpc) 102 + header-test- += asm/stat.h 103 + header-test- += linux/bpf_perf_event.h 104 + endif 105 + 106 + ifeq ($(SRCARCH),riscv) 107 + header-test- += linux/bpf_perf_event.h 108 + endif 109 + 110 + ifeq ($(SRCARCH),s390) 111 + header-test- += asm/runtime_instr.h 112 + header-test- += asm/zcrypt.h 113 + endif 114 + 115 + ifeq ($(SRCARCH),sparc) 116 + header-test- += asm/stat.h 117 + header-test- += asm/uctx.h 118 + header-test- += asm/fbio.h 119 + header-test- += asm/openpromio.h 120 + endif 121 + 122 + # asm-generic/*.h is used by asm/*.h, and should not be included directly 123 + header-test- += asm-generic/% 124 + 125 + # The rest are compile-tested 126 + header-test-y += $(filter-out $(header-test-), \ 127 + $(patsubst $(obj)/%,%, $(wildcard \ 128 + $(addprefix $(obj)/, *.h */*.h */*/*.h */*/*/*.h)))) 129 + 130 + # For GNU Make <= 4.2.1, $(wildcard $(obj)/*/) matches to not only directories 131 + # but also regular files. Use $(filter %/, ...) just in case. 132 + clean-dirs += $(patsubst $(obj)/%/,%,$(filter %/, $(wildcard $(obj)/*/)))