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

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

Pull Kbuild updates from Masahiro Yamada:

- remove unneeded asm headers from hexagon, ia64

- add 'dir-pkg' target, which works like 'tar-pkg' but skips archiving

- add 'helpnewconfig' target, which shows help for new CONFIG options

- support 'make nsdeps' for external modules

- make rebuilds faster by deleting $(wildcard $^) checks

- remove compile tests for kernel-space headers

- refactor modpost to simplify modversion handling

- make single target builds faster

- optimize and clean up scripts/kallsyms.c

- refactor various Makefiles and scripts

* tag 'kbuild-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (59 commits)
MAINTAINERS: update Kbuild/Kconfig maintainer's email address
scripts/kallsyms: remove redundant initializers
scripts/kallsyms: put check_symbol_range() calls close together
scripts/kallsyms: make check_symbol_range() void function
scripts/kallsyms: move ignored symbol types to is_ignored_symbol()
scripts/kallsyms: move more patterns to the ignored_prefixes array
scripts/kallsyms: skip ignored symbols very early
scripts/kallsyms: add const qualifiers where possible
scripts/kallsyms: make find_token() return (unsigned char *)
scripts/kallsyms: replace prefix_underscores_count() with strspn()
scripts/kallsyms: add sym_name() to mitigate cast ugliness
scripts/kallsyms: remove unneeded length check for prefix matching
scripts/kallsyms: remove redundant is_arm_mapping_symbol()
scripts/kallsyms: set relative_base more effectively
scripts/kallsyms: shrink table before sorting it
scripts/kallsyms: fix definitely-lost memory leak
scripts/kallsyms: remove unneeded #ifndef ARRAY_SIZE
kbuild: make single target builds even faster
modpost: respect the previous export when 'exported twice' is warned
modpost: do not set ->preloaded for symbols from Module.symvers
...

+456 -1746
+1 -1
.gitignore
··· 32 32 *.lzo 33 33 *.mod 34 34 *.mod.c 35 - *.ns_deps 36 35 *.o 37 36 *.o.* 38 37 *.patch ··· 60 61 /System.map 61 62 /Module.markers 62 63 /modules.builtin.modinfo 64 + /modules.nsdeps 63 65 64 66 # 65 67 # RPM spec file (make rpm-pkg)
+4 -2
Documentation/Makefile
··· 128 128 @echo ' pdfdocs - PDF' 129 129 @echo ' epubdocs - EPUB' 130 130 @echo ' xmldocs - XML' 131 - @echo ' linkcheckdocs - check for broken external links (will connect to external hosts)' 132 - @echo ' refcheckdocs - check for references to non-existing files under Documentation' 131 + @echo ' linkcheckdocs - check for broken external links' 132 + @echo ' (will connect to external hosts)' 133 + @echo ' refcheckdocs - check for references to non-existing files under' 134 + @echo ' Documentation' 133 135 @echo ' cleandocs - clean all generated files' 134 136 @echo 135 137 @echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2'
+3
Documentation/core-api/symbol-namespaces.rst
··· 152 152 - notice the warning of modpost telling about a missing import 153 153 - run `make nsdeps` to add the import to the correct code location 154 154 155 + You can also run nsdeps for external module builds. A typical usage is:: 156 + 157 + $ make -C <path_to_kernel_src> M=$PWD nsdeps
+1
Documentation/dontdiff
··· 179 179 modpost 180 180 modules.builtin 181 181 modules.builtin.modinfo 182 + modules.nsdeps 182 183 modules.order 183 184 modversions.h* 184 185 nconf
-17
Documentation/kbuild/makefiles.rst
··· 1115 1115 In this example, extra-y is used to list object files that 1116 1116 shall be built, but shall not be linked as part of built-in.a. 1117 1117 1118 - header-test-y 1119 - 1120 - header-test-y specifies headers (`*.h`) in the current directory that 1121 - should be compile tested to ensure they are self-contained, 1122 - i.e. compilable as standalone units. If CONFIG_HEADER_TEST is enabled, 1123 - this builds them as part of extra-y. 1124 - 1125 - header-test-pattern-y 1126 - 1127 - This works as a weaker version of header-test-y, and accepts wildcard 1128 - patterns. The typical usage is:: 1129 - 1130 - header-test-pattern-y += *.h 1131 - 1132 - This specifies all the files that matches to `*.h` in the current 1133 - directory, but the files in 'header-test-' are excluded. 1134 - 1135 1118 6.7 Commands useful for building a boot image 1136 1119 --------------------------------------------- 1137 1120
+5 -8
Documentation/kbuild/modules.rst
··· 492 492 to the symbols from the kernel to check if all external symbols 493 493 are defined. This is done in the MODPOST step. modpost obtains 494 494 the symbols by reading Module.symvers from the kernel source 495 - tree. If a Module.symvers file is present in the directory 496 - where the external module is being built, this file will be 497 - read too. During the MODPOST step, a new Module.symvers file 498 - will be written containing all exported symbols that were not 499 - defined in the kernel. 495 + tree. During the MODPOST step, a new Module.symvers file will be 496 + written containing all exported symbols from that external module. 500 497 501 498 6.3 Symbols From Another External Module 502 499 ---------------------------------------- ··· 501 504 Sometimes, an external module uses exported symbols from 502 505 another external module. Kbuild needs to have full knowledge of 503 506 all symbols to avoid spitting out warnings about undefined 504 - symbols. Three solutions exist for this situation. 507 + symbols. Two solutions exist for this situation. 505 508 506 509 NOTE: The method with a top-level kbuild file is recommended 507 510 but may be impractical in certain situations. ··· 541 544 all symbols defined and not part of the kernel. 542 545 543 546 Use "make" variable KBUILD_EXTRA_SYMBOLS 544 - If it is impractical to copy Module.symvers from 545 - another module, you can assign a space separated list 547 + If it is impractical to add a top-level kbuild file, 548 + you can assign a space separated list 546 549 of files to KBUILD_EXTRA_SYMBOLS in your build file. 547 550 These files will be loaded by modpost during the 548 551 initialization of its symbol tables.
+2 -2
MAINTAINERS
··· 8934 8934 F: scripts/Makefile.kasan 8935 8935 8936 8936 KCONFIG 8937 - M: Masahiro Yamada <yamada.masahiro@socionext.com> 8937 + M: Masahiro Yamada <masahiroy@kernel.org> 8938 8938 T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kconfig 8939 8939 L: linux-kbuild@vger.kernel.org 8940 8940 S: Maintained ··· 8966 8966 F: fs/autofs/ 8967 8967 8968 8968 KERNEL BUILD + files below scripts/ (unless maintained elsewhere) 8969 - M: Masahiro Yamada <yamada.masahiro@socionext.com> 8969 + M: Masahiro Yamada <masahiroy@kernel.org> 8970 8970 M: Michal Marek <michal.lkml@markovi.net> 8971 8971 T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git 8972 8972 L: linux-kbuild@vger.kernel.org
+59 -62
Makefile
··· 618 618 init-y := init/ 619 619 drivers-y := drivers/ sound/ 620 620 drivers-$(CONFIG_SAMPLES) += samples/ 621 - drivers-$(CONFIG_KERNEL_HEADER_TEST) += include/ 622 621 net-y := net/ 623 622 libs-y := lib/ 624 623 core-y := usr/ ··· 1010 1011 PHONY += prepare0 1011 1012 1012 1013 export MODORDER := $(extmod-prefix)modules.order 1014 + export MODULES_NSDEPS := $(extmod-prefix)modules.nsdeps 1013 1015 1014 1016 ifeq ($(KBUILD_EXTMOD),) 1015 1017 core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ ··· 1196 1196 $(Q)$(MAKE) $(hdr-inst)=include/uapi 1197 1197 $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi 1198 1198 1199 + # Deprecated. It is no-op now. 1199 1200 PHONY += headers_check 1200 - headers_check: headers 1201 - $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 1202 - $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi HDRCHECK=1 1201 + headers_check: 1202 + @: 1203 1203 1204 1204 ifdef CONFIG_HEADERS_INSTALL 1205 1205 prepare: headers 1206 - endif 1207 - 1208 - ifdef CONFIG_HEADERS_CHECK 1209 - all: headers_check 1210 1206 endif 1211 1207 1212 1208 PHONY += scripts_unifdef ··· 1356 1360 1357 1361 # Directories & files removed with 'make clean' 1358 1362 CLEAN_DIRS += include/ksym 1359 - CLEAN_FILES += modules.builtin.modinfo 1363 + CLEAN_FILES += modules.builtin.modinfo modules.nsdeps 1360 1364 1361 1365 # Directories & files removed with 'make mrproper' 1362 1366 MRPROPER_DIRS += include/config include/generated \ ··· 1472 1476 @echo ' versioncheck - Sanity check on version.h usage' 1473 1477 @echo ' includecheck - Check for duplicate included header files' 1474 1478 @echo ' export_report - List the usages of all exported symbols' 1475 - @echo ' headers_check - Sanity check on exported headers' 1476 1479 @echo ' headerdep - Detect inclusion cycles in headers' 1477 1480 @echo ' coccicheck - Check with Coccinelle' 1478 1481 @echo '' ··· 1510 1515 @echo '' 1511 1516 @$(if $(boards), \ 1512 1517 $(foreach b, $(boards), \ 1513 - printf " %-24s - Build for %s\\n" $(b) $(subst _defconfig,,$(b));) \ 1518 + printf " %-27s - Build for %s\\n" $(b) $(subst _defconfig,,$(b));) \ 1514 1519 echo '') 1515 1520 @$(if $(board-dirs), \ 1516 1521 $(foreach b, $(board-dirs), \ ··· 1521 1526 @echo ' make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build' 1522 1527 @echo ' make V=2 [targets] 2 => give reason for rebuild of target' 1523 1528 @echo ' make O=dir [targets] Locate all output files in "dir", including .config' 1524 - @echo ' make C=1 [targets] Check re-compiled c source with $$CHECK (sparse by default)' 1529 + @echo ' make C=1 [targets] Check re-compiled c source with $$CHECK' 1530 + @echo ' (sparse by default)' 1525 1531 @echo ' make C=2 [targets] Force check of all c source with $$CHECK' 1526 1532 @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections' 1527 1533 @echo ' make W=n [targets] Enable extra build checks, n=1,2,3 where' ··· 1618 1622 $(call cmd,depmod) 1619 1623 1620 1624 clean-dirs := $(KBUILD_EXTMOD) 1621 - clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers 1625 + clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers $(KBUILD_EXTMOD)/modules.nsdeps 1622 1626 1623 1627 PHONY += / 1624 1628 /: ··· 1637 1641 PHONY += prepare 1638 1642 endif # KBUILD_EXTMOD 1639 1643 1644 + # Single targets 1645 + # --------------------------------------------------------------------------- 1646 + # To build individual files in subdirectories, you can do like this: 1647 + # 1648 + # make foo/bar/baz.s 1649 + # 1650 + # The supported suffixes for single-target are listed in 'single-targets' 1651 + # 1652 + # To build only under specific subdirectories, you can do like this: 1653 + # 1654 + # make foo/bar/baz/ 1655 + 1656 + ifdef single-build 1657 + 1658 + # .ko is special because modpost is needed 1659 + single-ko := $(sort $(filter %.ko, $(MAKECMDGOALS))) 1660 + single-no-ko := $(sort $(patsubst %.ko,%.mod, $(MAKECMDGOALS))) 1661 + 1662 + $(single-ko): single_modpost 1663 + @: 1664 + $(single-no-ko): descend 1665 + @: 1666 + 1667 + ifeq ($(KBUILD_EXTMOD),) 1668 + # For the single build of in-tree modules, use a temporary file to avoid 1669 + # the situation of modules_install installing an invalid modules.order. 1670 + MODORDER := .modules.tmp 1671 + endif 1672 + 1673 + PHONY += single_modpost 1674 + single_modpost: $(single-no-ko) 1675 + $(Q){ $(foreach m, $(single-ko), echo $(extmod-prefix)$m;) } > $(MODORDER) 1676 + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost 1677 + 1678 + KBUILD_MODULES := 1 1679 + 1680 + export KBUILD_SINGLE_TARGETS := $(addprefix $(extmod-prefix), $(single-no-ko)) 1681 + 1682 + # trim unrelated directories 1683 + build-dirs := $(foreach d, $(build-dirs), \ 1684 + $(if $(filter $(d)/%, $(KBUILD_SINGLE_TARGETS)), $(d))) 1685 + 1686 + endif 1687 + 1640 1688 # Handle descending into subdirectories listed in $(build-dirs) 1641 1689 # Preset locale variables to speed up the build process. Limit locale 1642 1690 # tweaks to this spot to avoid wrong language settings when running ··· 1689 1649 PHONY += descend $(build-dirs) 1690 1650 descend: $(build-dirs) 1691 1651 $(build-dirs): prepare 1692 - $(Q)$(MAKE) $(build)=$@ single-build=$(single-build) need-builtin=1 need-modorder=1 1652 + $(Q)$(MAKE) $(build)=$@ \ 1653 + single-build=$(if $(filter-out $@/, $(single-no-ko)),1) \ 1654 + need-builtin=1 need-modorder=1 1693 1655 1694 1656 clean-dirs := $(addprefix _clean_, $(clean-dirs)) 1695 1657 PHONY += $(clean-dirs) clean ··· 1706 1664 -o -name '*.ko.*' \ 1707 1665 -o -name '*.dtb' -o -name '*.dtb.S' -o -name '*.dt.yaml' \ 1708 1666 -o -name '*.dwo' -o -name '*.lst' \ 1709 - -o -name '*.su' -o -name '*.mod' -o -name '*.ns_deps' \ 1667 + -o -name '*.su' -o -name '*.mod' \ 1710 1668 -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ 1711 1669 -o -name '*.lex.c' -o -name '*.tab.[ch]' \ 1712 1670 -o -name '*.asn1.[ch]' \ ··· 1728 1686 # --------------------------------------------------------------------------- 1729 1687 1730 1688 PHONY += nsdeps 1731 - 1689 + nsdeps: export KBUILD_NSDEPS=1 1732 1690 nsdeps: modules 1733 - $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost nsdeps 1734 - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/$@ 1691 + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/nsdeps 1735 1692 1736 1693 # Scripts to check various things for consistency 1737 1694 # --------------------------------------------------------------------------- ··· 1793 1752 tools/%: FORCE 1794 1753 $(Q)mkdir -p $(objtree)/tools 1795 1754 $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ $* 1796 - 1797 - # Single targets 1798 - # --------------------------------------------------------------------------- 1799 - # To build individual files in subdirectories, you can do like this: 1800 - # 1801 - # make foo/bar/baz.s 1802 - # 1803 - # The supported suffixes for single-target are listed in 'single-targets' 1804 - # 1805 - # To build only under specific subdirectories, you can do like this: 1806 - # 1807 - # make foo/bar/baz/ 1808 - 1809 - ifdef single-build 1810 - 1811 - single-all := $(filter $(single-targets), $(MAKECMDGOALS)) 1812 - 1813 - # .ko is special because modpost is needed 1814 - single-ko := $(sort $(filter %.ko, $(single-all))) 1815 - single-no-ko := $(sort $(patsubst %.ko,%.mod, $(single-all))) 1816 - 1817 - $(single-ko): single_modpost 1818 - @: 1819 - $(single-no-ko): descend 1820 - @: 1821 - 1822 - ifeq ($(KBUILD_EXTMOD),) 1823 - # For the single build of in-tree modules, use a temporary file to avoid 1824 - # the situation of modules_install installing an invalid modules.order. 1825 - MODORDER := .modules.tmp 1826 - endif 1827 - 1828 - PHONY += single_modpost 1829 - single_modpost: $(single-no-ko) 1830 - $(Q){ $(foreach m, $(single-ko), echo $(extmod-prefix)$m;) } > $(MODORDER) 1831 - $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost 1832 - 1833 - KBUILD_MODULES := 1 1834 - 1835 - export KBUILD_SINGLE_TARGETS := $(addprefix $(extmod-prefix), $(single-no-ko)) 1836 - 1837 - single-build = $(if $(filter-out $@/, $(single-no-ko)),1) 1838 - 1839 - endif 1840 1755 1841 1756 # FIXME Should go into a make.lib or something 1842 1757 # ===========================================================================
-27
arch/hexagon/include/uapi/asm/bitsperlong.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 - /* 3 - * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. 4 - * 5 - * This program is free software; you can redistribute it and/or modify 6 - * it under the terms of the GNU General Public License version 2 and 7 - * only version 2 as published by the Free Software Foundation. 8 - * 9 - * This program is distributed in the hope that it will be useful, 10 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 - * GNU General Public License for more details. 13 - * 14 - * You should have received a copy of the GNU General Public License 15 - * along with this program; if not, write to the Free Software 16 - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 17 - * 02110-1301, USA. 18 - */ 19 - 20 - #ifndef __ASM_HEXAGON_BITSPERLONG_H 21 - #define __ASM_HEXAGON_BITSPERLONG_H 22 - 23 - #define __BITS_PER_LONG 32 24 - 25 - #include <asm-generic/bitsperlong.h> 26 - 27 - #endif
-2
arch/ia64/include/uapi/asm/errno.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 - #include <asm-generic/errno.h>
-2
arch/ia64/include/uapi/asm/ioctl.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 - #include <asm-generic/ioctl.h>
-7
arch/ia64/include/uapi/asm/ioctls.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 - #ifndef _ASM_IA64_IOCTLS_H 3 - #define _ASM_IA64_IOCTLS_H 4 - 5 - #include <asm-generic/ioctls.h> 6 - 7 - #endif /* _ASM_IA64_IOCTLS_H */
-1
drivers/gpu/drm/i915/Kconfig.debug
··· 7 7 # We use the dependency on !COMPILE_TEST to not be enabled in 8 8 # allmodconfig or allyesconfig configurations 9 9 depends on !COMPILE_TEST 10 - select HEADER_TEST 11 10 default n 12 11 help 13 12 Add -Werror to the build flags for (and only for) i915.ko.
+1
drivers/video/logo/.gitignore
··· 5 5 *_vga16.c 6 6 *_clut224.c 7 7 *_gray256.c 8 + pnmtologo
+5 -10
drivers/video/logo/Makefile
··· 18 18 19 19 # How to generate logo's 20 20 21 - pnmtologo := scripts/pnmtologo 21 + hostprogs-y := pnmtologo 22 22 23 23 # Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..." 24 24 quiet_cmd_logo = LOGO $@ 25 - cmd_logo = $(pnmtologo) \ 26 - -t $(patsubst $*_%,%,$(notdir $(basename $<))) \ 27 - -n $(notdir $(basename $<)) -o $@ $< 25 + cmd_logo = $(obj)/pnmtologo -t $(lastword $(subst _, ,$*)) -n $* -o $@ $< 28 26 29 - $(obj)/%_mono.c: $(src)/%_mono.pbm $(pnmtologo) FORCE 27 + $(obj)/%.c: $(src)/%.pbm $(obj)/pnmtologo FORCE 30 28 $(call if_changed,logo) 31 29 32 - $(obj)/%_vga16.c: $(src)/%_vga16.ppm $(pnmtologo) FORCE 30 + $(obj)/%.c: $(src)/%.ppm $(obj)/pnmtologo FORCE 33 31 $(call if_changed,logo) 34 32 35 - $(obj)/%_clut224.c: $(src)/%_clut224.ppm $(pnmtologo) FORCE 36 - $(call if_changed,logo) 37 - 38 - $(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE 33 + $(obj)/%.c: $(src)/%.pgm $(obj)/pnmtologo FORCE 39 34 $(call if_changed,logo) 40 35 41 36 # generated C files
-1187
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-$(CONFIG_X86) += 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- += kvm/arm_arch_timer.h 69 - header-test-$(CONFIG_ARM) += kvm/arm_hypercalls.h 70 - header-test-$(CONFIG_ARM64) += kvm/arm_hypercalls.h 71 - header-test- += kvm/arm_pmu.h 72 - header-test-$(CONFIG_ARM) += kvm/arm_psci.h 73 - header-test-$(CONFIG_ARM64) += kvm/arm_psci.h 74 - header-test- += kvm/arm_vgic.h 75 - header-test- += linux/8250_pci.h 76 - header-test- += linux/a.out.h 77 - header-test- += linux/adxl.h 78 - header-test- += linux/agpgart.h 79 - header-test- += linux/alcor_pci.h 80 - header-test- += linux/amba/clcd.h 81 - header-test- += linux/amba/pl080.h 82 - header-test- += linux/amd-iommu.h 83 - header-test-$(CONFIG_ARM) += linux/arm-cci.h 84 - header-test-$(CONFIG_ARM64) += linux/arm-cci.h 85 - header-test- += linux/arm_sdei.h 86 - header-test- += linux/asn1_decoder.h 87 - header-test- += linux/ata_platform.h 88 - header-test- += linux/ath9k_platform.h 89 - header-test- += linux/atm_tcp.h 90 - header-test- += linux/atomic-fallback.h 91 - header-test- += linux/avf/virtchnl.h 92 - header-test- += linux/bcm47xx_sprom.h 93 - header-test- += linux/bcma/bcma_driver_gmac_cmn.h 94 - header-test- += linux/bcma/bcma_driver_mips.h 95 - header-test- += linux/bcma/bcma_driver_pci.h 96 - header-test- += linux/bcma/bcma_driver_pcie2.h 97 - header-test- += linux/bit_spinlock.h 98 - header-test- += linux/blk-mq-rdma.h 99 - header-test- += linux/blk-mq.h 100 - header-test- += linux/blktrace_api.h 101 - header-test- += linux/blockgroup_lock.h 102 - header-test- += linux/bma150.h 103 - header-test- += linux/bpf_lirc.h 104 - header-test- += linux/bpf_types.h 105 - header-test- += linux/bsg-lib.h 106 - header-test- += linux/bsg.h 107 - header-test- += linux/btf.h 108 - header-test- += linux/btree-128.h 109 - header-test- += linux/btree-type.h 110 - header-test-$(CONFIG_CPU_BIG_ENDIAN) += linux/byteorder/big_endian.h 111 - header-test- += linux/byteorder/generic.h 112 - header-test-$(CONFIG_CPU_LITTLE_ENDIAN) += linux/byteorder/little_endian.h 113 - header-test- += linux/c2port.h 114 - header-test- += linux/can/dev/peak_canfd.h 115 - header-test- += linux/can/platform/cc770.h 116 - header-test- += linux/can/platform/sja1000.h 117 - header-test- += linux/ceph/ceph_features.h 118 - header-test- += linux/ceph/ceph_frag.h 119 - header-test- += linux/ceph/ceph_fs.h 120 - header-test- += linux/ceph/debugfs.h 121 - header-test- += linux/ceph/msgr.h 122 - header-test- += linux/ceph/rados.h 123 - header-test- += linux/cgroup_subsys.h 124 - header-test- += linux/clk/sunxi-ng.h 125 - header-test- += linux/clk/ti.h 126 - header-test- += linux/cn_proc.h 127 - header-test- += linux/coda_psdev.h 128 - header-test- += linux/compaction.h 129 - header-test- += linux/console_struct.h 130 - header-test- += linux/count_zeros.h 131 - header-test- += linux/cs5535.h 132 - header-test- += linux/cuda.h 133 - header-test- += linux/cyclades.h 134 - header-test- += linux/dcookies.h 135 - header-test- += linux/delayacct.h 136 - header-test- += linux/delayed_call.h 137 - header-test- += linux/device-mapper.h 138 - header-test- += linux/devpts_fs.h 139 - header-test- += linux/dio.h 140 - header-test- += linux/dirent.h 141 - header-test- += linux/dlm_plock.h 142 - header-test- += linux/dm-dirty-log.h 143 - header-test- += linux/dm-region-hash.h 144 - header-test- += linux/dma-debug.h 145 - header-test- += linux/dma/mmp-pdma.h 146 - header-test- += linux/dma/sprd-dma.h 147 - header-test- += linux/dns_resolver.h 148 - header-test- += linux/drbd_genl.h 149 - header-test- += linux/drbd_genl_api.h 150 - header-test- += linux/dw_apb_timer.h 151 - header-test- += linux/dynamic_debug.h 152 - header-test- += linux/dynamic_queue_limits.h 153 - header-test- += linux/ecryptfs.h 154 - header-test- += linux/edma.h 155 - header-test- += linux/eeprom_93cx6.h 156 - header-test- += linux/efs_vh.h 157 - header-test- += linux/elevator.h 158 - header-test- += linux/elfcore-compat.h 159 - header-test- += linux/error-injection.h 160 - header-test- += linux/errseq.h 161 - header-test- += linux/eventpoll.h 162 - header-test- += linux/ext2_fs.h 163 - header-test- += linux/f75375s.h 164 - header-test- += linux/falloc.h 165 - header-test- += linux/fault-inject.h 166 - header-test- += linux/fbcon.h 167 - header-test- += linux/firmware/intel/stratix10-svc-client.h 168 - header-test- += linux/firmware/meson/meson_sm.h 169 - header-test- += linux/firmware/trusted_foundations.h 170 - header-test- += linux/firmware/xlnx-zynqmp.h 171 - header-test- += linux/fixp-arith.h 172 - header-test- += linux/flat.h 173 - header-test- += linux/fs_types.h 174 - header-test- += linux/fs_uart_pd.h 175 - header-test- += linux/fsi-occ.h 176 - header-test- += linux/fsi-sbefifo.h 177 - header-test- += linux/fsl/bestcomm/ata.h 178 - header-test- += linux/fsl/bestcomm/bestcomm.h 179 - header-test- += linux/fsl/bestcomm/bestcomm_priv.h 180 - header-test- += linux/fsl/bestcomm/fec.h 181 - header-test- += linux/fsl/bestcomm/gen_bd.h 182 - header-test- += linux/fsl/bestcomm/sram.h 183 - header-test- += linux/fsl_hypervisor.h 184 - header-test- += linux/fsldma.h 185 - header-test- += linux/ftrace_irq.h 186 - header-test- += linux/gameport.h 187 - header-test- += linux/genl_magic_func.h 188 - header-test- += linux/genl_magic_struct.h 189 - header-test- += linux/gpio/aspeed.h 190 - header-test- += linux/gpio/gpio-reg.h 191 - header-test- += linux/hid-debug.h 192 - header-test- += linux/hiddev.h 193 - header-test- += linux/hippidevice.h 194 - header-test- += linux/hmm.h 195 - header-test- += linux/hp_sdc.h 196 - header-test- += linux/huge_mm.h 197 - header-test- += linux/hugetlb_cgroup.h 198 - header-test- += linux/hugetlb_inline.h 199 - header-test- += linux/hwmon-vid.h 200 - header-test- += linux/hyperv.h 201 - header-test- += linux/i2c-algo-pca.h 202 - header-test- += linux/i2c-algo-pcf.h 203 - header-test- += linux/i3c/ccc.h 204 - header-test- += linux/i3c/device.h 205 - header-test- += linux/i3c/master.h 206 - header-test- += linux/i8042.h 207 - header-test- += linux/ide.h 208 - header-test- += linux/idle_inject.h 209 - header-test- += linux/if_frad.h 210 - header-test- += linux/if_rmnet.h 211 - header-test- += linux/if_tap.h 212 - header-test- += linux/iio/accel/kxcjk_1013.h 213 - header-test- += linux/iio/adc/ad_sigma_delta.h 214 - header-test- += linux/iio/buffer-dma.h 215 - header-test- += linux/iio/buffer_impl.h 216 - header-test- += linux/iio/common/st_sensors.h 217 - header-test- += linux/iio/common/st_sensors_i2c.h 218 - header-test- += linux/iio/common/st_sensors_spi.h 219 - header-test- += linux/iio/dac/ad5421.h 220 - header-test- += linux/iio/dac/ad5504.h 221 - header-test- += linux/iio/dac/ad5791.h 222 - header-test- += linux/iio/dac/max517.h 223 - header-test- += linux/iio/dac/mcp4725.h 224 - header-test- += linux/iio/frequency/ad9523.h 225 - header-test- += linux/iio/frequency/adf4350.h 226 - header-test- += linux/iio/hw-consumer.h 227 - header-test- += linux/iio/imu/adis.h 228 - header-test- += linux/iio/sysfs.h 229 - header-test- += linux/iio/timer/stm32-timer-trigger.h 230 - header-test- += linux/iio/trigger.h 231 - header-test- += linux/iio/triggered_event.h 232 - header-test- += linux/imx-media.h 233 - header-test- += linux/inet_diag.h 234 - header-test- += linux/init_ohci1394_dma.h 235 - header-test- += linux/initrd.h 236 - header-test- += linux/input/adp5589.h 237 - header-test- += linux/input/bu21013.h 238 - header-test- += linux/input/cma3000.h 239 - header-test- += linux/input/kxtj9.h 240 - header-test- += linux/input/lm8333.h 241 - header-test- += linux/input/sparse-keymap.h 242 - header-test- += linux/input/touchscreen.h 243 - header-test- += linux/input/tps6507x-ts.h 244 - header-test-$(CONFIG_X86) += linux/intel-iommu.h 245 - header-test- += linux/intel-ish-client-if.h 246 - header-test- += linux/intel-pti.h 247 - header-test- += linux/intel-svm.h 248 - header-test- += linux/interconnect-provider.h 249 - header-test- += linux/ioc3.h 250 - header-test-$(CONFIG_BLOCK) += linux/iomap.h 251 - header-test- += linux/ipack.h 252 - header-test- += linux/irq_cpustat.h 253 - header-test- += linux/irq_poll.h 254 - header-test- += linux/irqchip/arm-gic-v3.h 255 - header-test- += linux/irqchip/arm-gic-v4.h 256 - header-test- += linux/irqchip/irq-madera.h 257 - header-test- += linux/irqchip/irq-sa11x0.h 258 - header-test- += linux/irqchip/mxs.h 259 - header-test- += linux/irqchip/versatile-fpga.h 260 - header-test- += linux/irqdesc.h 261 - header-test- += linux/irqflags.h 262 - header-test- += linux/iscsi_boot_sysfs.h 263 - header-test- += linux/isdn/capiutil.h 264 - header-test- += linux/isdn/hdlc.h 265 - header-test- += linux/isdn_ppp.h 266 - header-test- += linux/jbd2.h 267 - header-test- += linux/jump_label.h 268 - header-test- += linux/jump_label_ratelimit.h 269 - header-test- += linux/jz4740-adc.h 270 - header-test- += linux/kasan.h 271 - header-test- += linux/kcore.h 272 - header-test- += linux/kdev_t.h 273 - header-test- += linux/kernelcapi.h 274 - header-test- += linux/khugepaged.h 275 - header-test- += linux/kobj_map.h 276 - header-test- += linux/kobject_ns.h 277 - header-test- += linux/kvm_host.h 278 - header-test- += linux/kvm_irqfd.h 279 - header-test- += linux/kvm_para.h 280 - header-test- += linux/lantiq.h 281 - header-test- += linux/lapb.h 282 - header-test- += linux/latencytop.h 283 - header-test- += linux/led-lm3530.h 284 - header-test- += linux/leds-bd2802.h 285 - header-test- += linux/leds-lp3944.h 286 - header-test- += linux/leds-lp3952.h 287 - header-test- += linux/leds_pwm.h 288 - header-test- += linux/libata.h 289 - header-test- += linux/license.h 290 - header-test- += linux/lightnvm.h 291 - header-test- += linux/lis3lv02d.h 292 - header-test- += linux/list_bl.h 293 - header-test- += linux/list_lru.h 294 - header-test- += linux/list_nulls.h 295 - header-test- += linux/lockd/share.h 296 - header-test- += linux/lzo.h 297 - header-test- += linux/mailbox/zynqmp-ipi-message.h 298 - header-test- += linux/maple.h 299 - header-test- += linux/mbcache.h 300 - header-test- += linux/mbus.h 301 - header-test- += linux/mc146818rtc.h 302 - header-test- += linux/mc6821.h 303 - header-test- += linux/mdev.h 304 - header-test- += linux/mem_encrypt.h 305 - header-test- += linux/memfd.h 306 - header-test- += linux/mfd/88pm80x.h 307 - header-test- += linux/mfd/88pm860x.h 308 - header-test- += linux/mfd/abx500/ab8500-bm.h 309 - header-test- += linux/mfd/abx500/ab8500-gpadc.h 310 - header-test- += linux/mfd/adp5520.h 311 - header-test- += linux/mfd/arizona/pdata.h 312 - header-test- += linux/mfd/as3711.h 313 - header-test- += linux/mfd/as3722.h 314 - header-test- += linux/mfd/da903x.h 315 - header-test- += linux/mfd/da9055/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/nfs.h 389 - header-test- += linux/nfs_fs_i.h 390 - header-test- += linux/nfs_fs_sb.h 391 - header-test- += linux/nfs_page.h 392 - header-test- += linux/nfs_xdr.h 393 - header-test- += linux/nfsacl.h 394 - header-test- += linux/nl802154.h 395 - header-test- += linux/ns_common.h 396 - header-test- += linux/nsc_gpio.h 397 - header-test- += linux/ntb_transport.h 398 - header-test- += linux/nubus.h 399 - header-test- += linux/nvme-fc-driver.h 400 - header-test- += linux/nvme-fc.h 401 - header-test- += linux/nvme-rdma.h 402 - header-test- += linux/nvram.h 403 - header-test- += linux/objagg.h 404 - header-test- += linux/of_clk.h 405 - header-test- += linux/of_net.h 406 - header-test- += linux/of_pdt.h 407 - header-test- += linux/olpc-ec.h 408 - header-test- += linux/omap-dma.h 409 - header-test- += linux/omap-dmaengine.h 410 - header-test- += linux/omap-gpmc.h 411 - header-test- += linux/omap-iommu.h 412 - header-test- += linux/omap-mailbox.h 413 - header-test- += linux/once.h 414 - header-test- += linux/osq_lock.h 415 - header-test- += linux/overflow.h 416 - header-test- += linux/page-flags-layout.h 417 - header-test- += linux/page-isolation.h 418 - header-test- += linux/page_ext.h 419 - header-test- += linux/page_owner.h 420 - header-test- += linux/parport_pc.h 421 - header-test- += linux/parser.h 422 - header-test- += linux/pci-acpi.h 423 - header-test- += linux/pci-dma-compat.h 424 - header-test- += linux/pci_hotplug.h 425 - header-test- += linux/pda_power.h 426 - header-test- += linux/perf/arm_pmu.h 427 - header-test- += linux/perf_regs.h 428 - header-test- += linux/phy/omap_control_phy.h 429 - header-test- += linux/phy/tegra/xusb.h 430 - header-test- += linux/phy/ulpi_phy.h 431 - header-test- += linux/phy_fixed.h 432 - header-test- += linux/pipe_fs_i.h 433 - header-test- += linux/pktcdvd.h 434 - header-test- += linux/pl320-ipc.h 435 - header-test- += linux/pl353-smc.h 436 - header-test- += linux/platform_data/ad5449.h 437 - header-test- += linux/platform_data/ad5755.h 438 - header-test- += linux/platform_data/ad7266.h 439 - header-test- += linux/platform_data/ad7291.h 440 - header-test- += linux/platform_data/ad7298.h 441 - header-test- += linux/platform_data/ad7303.h 442 - header-test- += linux/platform_data/ad7791.h 443 - header-test- += linux/platform_data/ad7793.h 444 - header-test- += linux/platform_data/ad7887.h 445 - header-test- += linux/platform_data/adau17x1.h 446 - header-test- += linux/platform_data/adp8870.h 447 - header-test- += linux/platform_data/ads1015.h 448 - header-test- += linux/platform_data/ads7828.h 449 - header-test- += linux/platform_data/apds990x.h 450 - header-test- += linux/platform_data/arm-ux500-pm.h 451 - header-test- += linux/platform_data/asoc-s3c.h 452 - header-test- += linux/platform_data/at91_adc.h 453 - header-test- += linux/platform_data/ata-pxa.h 454 - header-test- += linux/platform_data/atmel.h 455 - header-test- += linux/platform_data/bh1770glc.h 456 - header-test- += linux/platform_data/brcmfmac.h 457 - header-test- += linux/platform_data/cros_ec_commands.h 458 - header-test- += linux/platform_data/clk-u300.h 459 - header-test- += linux/platform_data/cyttsp4.h 460 - header-test- += linux/platform_data/dma-coh901318.h 461 - header-test- += linux/platform_data/dma-imx-sdma.h 462 - header-test- += linux/platform_data/dma-mcf-edma.h 463 - header-test- += linux/platform_data/dma-s3c24xx.h 464 - header-test- += linux/platform_data/dmtimer-omap.h 465 - header-test- += linux/platform_data/dsa.h 466 - header-test- += linux/platform_data/edma.h 467 - header-test- += linux/platform_data/elm.h 468 - header-test- += linux/platform_data/emif_plat.h 469 - header-test- += linux/platform_data/fsa9480.h 470 - header-test- += linux/platform_data/g762.h 471 - header-test- += linux/platform_data/gpio-ath79.h 472 - header-test- += linux/platform_data/gpio-davinci.h 473 - header-test- += linux/platform_data/gpio-dwapb.h 474 - header-test- += linux/platform_data/gpio-htc-egpio.h 475 - header-test- += linux/platform_data/gpmc-omap.h 476 - header-test- += linux/platform_data/hsmmc-omap.h 477 - header-test- += linux/platform_data/hwmon-s3c.h 478 - header-test- += linux/platform_data/i2c-davinci.h 479 - header-test- += linux/platform_data/i2c-imx.h 480 - header-test- += linux/platform_data/i2c-mux-reg.h 481 - header-test- += linux/platform_data/i2c-ocores.h 482 - header-test- += linux/platform_data/i2c-xiic.h 483 - header-test- += linux/platform_data/intel-spi.h 484 - header-test- += linux/platform_data/invensense_mpu6050.h 485 - header-test- += linux/platform_data/irda-pxaficp.h 486 - header-test- += linux/platform_data/irda-sa11x0.h 487 - header-test- += linux/platform_data/itco_wdt.h 488 - header-test- += linux/platform_data/jz4740/jz4740_nand.h 489 - header-test- += linux/platform_data/keyboard-pxa930_rotary.h 490 - header-test- += linux/platform_data/keypad-omap.h 491 - header-test- += linux/platform_data/leds-lp55xx.h 492 - header-test- += linux/platform_data/leds-omap.h 493 - header-test- += linux/platform_data/lp855x.h 494 - header-test- += linux/platform_data/lp8727.h 495 - header-test- += linux/platform_data/max197.h 496 - header-test- += linux/platform_data/max3421-hcd.h 497 - header-test- += linux/platform_data/max732x.h 498 - header-test- += linux/platform_data/mcs.h 499 - header-test- += linux/platform_data/mdio-bcm-unimac.h 500 - header-test- += linux/platform_data/mdio-gpio.h 501 - header-test- += linux/platform_data/media/si4713.h 502 - header-test- += linux/platform_data/mlxreg.h 503 - header-test- += linux/platform_data/mmc-omap.h 504 - header-test- += linux/platform_data/mmc-sdhci-s3c.h 505 - header-test- += linux/platform_data/mmp_audio.h 506 - header-test- += linux/platform_data/mtd-orion_nand.h 507 - header-test- += linux/platform_data/mv88e6xxx.h 508 - header-test- += linux/platform_data/net-cw1200.h 509 - header-test- += linux/platform_data/omap-twl4030.h 510 - header-test- += linux/platform_data/omapdss.h 511 - header-test- += linux/platform_data/pcf857x.h 512 - header-test- += linux/platform_data/pixcir_i2c_ts.h 513 - header-test- += linux/platform_data/pwm_omap_dmtimer.h 514 - header-test- += linux/platform_data/pxa2xx_udc.h 515 - header-test- += linux/platform_data/pxa_sdhci.h 516 - header-test- += linux/platform_data/remoteproc-omap.h 517 - header-test- += linux/platform_data/sa11x0-serial.h 518 - header-test- += linux/platform_data/sc18is602.h 519 - header-test- += linux/platform_data/sdhci-pic32.h 520 - header-test- += linux/platform_data/serial-sccnxp.h 521 - header-test- += linux/platform_data/sht3x.h 522 - header-test- += linux/platform_data/shtc1.h 523 - header-test- += linux/platform_data/si5351.h 524 - header-test- += linux/platform_data/sky81452-backlight.h 525 - header-test- += linux/platform_data/spi-davinci.h 526 - header-test- += linux/platform_data/spi-ep93xx.h 527 - header-test- += linux/platform_data/spi-mt65xx.h 528 - header-test- += linux/platform_data/st_sensors_pdata.h 529 - header-test- += linux/platform_data/ti-sysc.h 530 - header-test- += linux/platform_data/timer-ixp4xx.h 531 - header-test- += linux/platform_data/touchscreen-s3c2410.h 532 - header-test- += linux/platform_data/tsc2007.h 533 - header-test- += linux/platform_data/tsl2772.h 534 - header-test- += linux/platform_data/uio_pruss.h 535 - header-test- += linux/platform_data/usb-davinci.h 536 - header-test- += linux/platform_data/usb-ehci-mxc.h 537 - header-test- += linux/platform_data/usb-ehci-orion.h 538 - header-test- += linux/platform_data/usb-mx2.h 539 - header-test- += linux/platform_data/usb-ohci-s3c2410.h 540 - header-test- += linux/platform_data/usb-omap.h 541 - header-test- += linux/platform_data/usb-s3c2410_udc.h 542 - header-test- += linux/platform_data/usb3503.h 543 - header-test- += linux/platform_data/ux500_wdt.h 544 - header-test- += linux/platform_data/video-clcd-versatile.h 545 - header-test- += linux/platform_data/video-imxfb.h 546 - header-test- += linux/platform_data/video-pxafb.h 547 - header-test- += linux/platform_data/video_s3c.h 548 - header-test- += linux/platform_data/voltage-omap.h 549 - header-test- += linux/platform_data/x86/apple.h 550 - header-test- += linux/platform_data/x86/clk-pmc-atom.h 551 - header-test- += linux/platform_data/x86/pmc_atom.h 552 - header-test- += linux/platform_data/xtalk-bridge.h 553 - header-test- += linux/pm2301_charger.h 554 - header-test- += linux/pm_wakeirq.h 555 - header-test- += linux/pm_wakeup.h 556 - header-test- += linux/pmbus.h 557 - header-test- += linux/pmu.h 558 - header-test- += linux/posix_acl.h 559 - header-test- += linux/posix_acl_xattr.h 560 - header-test- += linux/power/ab8500.h 561 - header-test- += linux/power/bq27xxx_battery.h 562 - header-test- += linux/power/generic-adc-battery.h 563 - header-test- += linux/power/jz4740-battery.h 564 - header-test- += linux/power/max17042_battery.h 565 - header-test- += linux/power/max8903_charger.h 566 - header-test- += linux/ppp-comp.h 567 - header-test- += linux/pps-gpio.h 568 - header-test- += linux/pr.h 569 - header-test- += linux/proc_ns.h 570 - header-test- += linux/processor.h 571 - header-test- += linux/psi.h 572 - header-test- += linux/psp-sev.h 573 - header-test- += linux/pstore.h 574 - header-test- += linux/ptr_ring.h 575 - header-test- += linux/ptrace.h 576 - header-test- += linux/qcom-geni-se.h 577 - header-test- += linux/qed/eth_common.h 578 - header-test- += linux/qed/fcoe_common.h 579 - header-test- += linux/qed/iscsi_common.h 580 - header-test- += linux/qed/iwarp_common.h 581 - header-test- += linux/qed/qed_eth_if.h 582 - header-test- += linux/qed/qed_fcoe_if.h 583 - header-test- += linux/qed/rdma_common.h 584 - header-test- += linux/qed/storage_common.h 585 - header-test- += linux/qed/tcp_common.h 586 - header-test- += linux/qnx6_fs.h 587 - header-test- += linux/quicklist.h 588 - header-test- += linux/ramfs.h 589 - header-test- += linux/range.h 590 - header-test- += linux/rcu_node_tree.h 591 - header-test- += linux/rculist_bl.h 592 - header-test- += linux/rculist_nulls.h 593 - header-test- += linux/rcutiny.h 594 - header-test- += linux/rcutree.h 595 - header-test- += linux/reboot-mode.h 596 - header-test- += linux/regulator/fixed.h 597 - header-test- += linux/regulator/gpio-regulator.h 598 - header-test- += linux/regulator/max8973-regulator.h 599 - header-test- += linux/regulator/of_regulator.h 600 - header-test- += linux/regulator/tps51632-regulator.h 601 - header-test- += linux/regulator/tps62360.h 602 - header-test- += linux/regulator/tps6507x.h 603 - header-test- += linux/regulator/userspace-consumer.h 604 - header-test- += linux/remoteproc/st_slim_rproc.h 605 - header-test- += linux/reset/socfpga.h 606 - header-test- += linux/reset/sunxi.h 607 - header-test- += linux/rtc/m48t59.h 608 - header-test- += linux/rtc/rtc-omap.h 609 - header-test- += linux/rtc/sirfsoc_rtciobrg.h 610 - header-test- += linux/rwlock.h 611 - header-test- += linux/rwlock_types.h 612 - header-test- += linux/scc.h 613 - header-test- += linux/sched/deadline.h 614 - header-test- += linux/sched/smt.h 615 - header-test- += linux/sched/sysctl.h 616 - header-test- += linux/sched_clock.h 617 - header-test- += linux/scpi_protocol.h 618 - header-test- += linux/scx200_gpio.h 619 - header-test- += linux/seccomp.h 620 - header-test- += linux/sed-opal.h 621 - header-test- += linux/seg6_iptunnel.h 622 - header-test- += linux/selection.h 623 - header-test- += linux/set_memory.h 624 - header-test- += linux/shrinker.h 625 - header-test- += linux/sirfsoc_dma.h 626 - header-test- += linux/skb_array.h 627 - header-test- += linux/slab_def.h 628 - header-test- += linux/slub_def.h 629 - header-test- += linux/sm501.h 630 - header-test- += linux/smc91x.h 631 - header-test- += linux/static_key.h 632 - header-test- += linux/soc/actions/owl-sps.h 633 - header-test- += linux/soc/amlogic/meson-canvas.h 634 - header-test- += linux/soc/brcmstb/brcmstb.h 635 - header-test- += linux/soc/ixp4xx/npe.h 636 - header-test- += linux/soc/mediatek/infracfg.h 637 - header-test- += linux/soc/qcom/smd-rpm.h 638 - header-test- += linux/soc/qcom/smem.h 639 - header-test- += linux/soc/qcom/smem_state.h 640 - header-test- += linux/soc/qcom/wcnss_ctrl.h 641 - header-test- += linux/soc/renesas/rcar-rst.h 642 - header-test- += linux/soc/samsung/exynos-pmu.h 643 - header-test- += linux/soc/sunxi/sunxi_sram.h 644 - header-test- += linux/soc/ti/ti-msgmgr.h 645 - header-test- += linux/soc/ti/ti_sci_inta_msi.h 646 - header-test- += linux/soc/ti/ti_sci_protocol.h 647 - header-test- += linux/soundwire/sdw.h 648 - header-test- += linux/soundwire/sdw_intel.h 649 - header-test- += linux/soundwire/sdw_type.h 650 - header-test- += linux/spi/ad7877.h 651 - header-test- += linux/spi/ads7846.h 652 - header-test- += linux/spi/at86rf230.h 653 - header-test- += linux/spi/ds1305.h 654 - header-test- += linux/spi/libertas_spi.h 655 - header-test- += linux/spi/lms283gf05.h 656 - header-test- += linux/spi/max7301.h 657 - header-test- += linux/spi/mcp23s08.h 658 - header-test- += linux/spi/rspi.h 659 - header-test- += linux/spi/s3c24xx.h 660 - header-test- += linux/spi/sh_msiof.h 661 - header-test- += linux/spi/spi-fsl-dspi.h 662 - header-test- += linux/spi/spi_bitbang.h 663 - header-test- += linux/spi/spi_gpio.h 664 - header-test- += linux/spi/xilinx_spi.h 665 - header-test- += linux/spinlock_api_smp.h 666 - header-test- += linux/spinlock_api_up.h 667 - header-test- += linux/spinlock_types.h 668 - header-test- += linux/splice.h 669 - header-test- += linux/sram.h 670 - header-test- += linux/srcutiny.h 671 - header-test- += linux/srcutree.h 672 - header-test- += linux/ssb/ssb_driver_chipcommon.h 673 - header-test- += linux/ssb/ssb_driver_extif.h 674 - header-test- += linux/ssb/ssb_driver_mips.h 675 - header-test- += linux/ssb/ssb_driver_pci.h 676 - header-test- += linux/ssbi.h 677 - header-test- += linux/stackdepot.h 678 - header-test- += linux/stmp3xxx_rtc_wdt.h 679 - header-test- += linux/string_helpers.h 680 - header-test- += linux/sungem_phy.h 681 - header-test- += linux/sunrpc/msg_prot.h 682 - header-test- += linux/sunrpc/rpc_pipe_fs.h 683 - header-test- += linux/sunrpc/xprtmultipath.h 684 - header-test- += linux/sunrpc/xprtsock.h 685 - header-test- += linux/sunxi-rsb.h 686 - header-test- += linux/svga.h 687 - header-test- += linux/sw842.h 688 - header-test- += linux/swapfile.h 689 - header-test- += linux/swapops.h 690 - header-test- += linux/swiotlb.h 691 - header-test- += linux/sysv_fs.h 692 - header-test- += linux/t10-pi.h 693 - header-test- += linux/task_io_accounting.h 694 - header-test- += linux/tick.h 695 - header-test- += linux/timb_dma.h 696 - header-test- += linux/timekeeping.h 697 - header-test- += linux/timekeeping32.h 698 - header-test- += linux/ts-nbus.h 699 - header-test- += linux/tsacct_kern.h 700 - header-test- += linux/tty_flip.h 701 - header-test- += linux/tty_ldisc.h 702 - header-test- += linux/ucb1400.h 703 - header-test- += linux/usb/association.h 704 - header-test- += linux/usb/cdc-wdm.h 705 - header-test- += linux/usb/cdc_ncm.h 706 - header-test- += linux/usb/ezusb.h 707 - header-test- += linux/usb/gadget_configfs.h 708 - header-test- += linux/usb/gpio_vbus.h 709 - header-test- += linux/usb/hcd.h 710 - header-test- += linux/usb/iowarrior.h 711 - header-test- += linux/usb/irda.h 712 - header-test- += linux/usb/isp116x.h 713 - header-test- += linux/usb/isp1362.h 714 - header-test- += linux/usb/musb.h 715 - header-test- += linux/usb/net2280.h 716 - header-test- += linux/usb/ohci_pdriver.h 717 - header-test- += linux/usb/otg-fsm.h 718 - header-test- += linux/usb/pd_ado.h 719 - header-test- += linux/usb/r8a66597.h 720 - header-test- += linux/usb/rndis_host.h 721 - header-test- += linux/usb/serial.h 722 - header-test- += linux/usb/sl811.h 723 - header-test- += linux/usb/storage.h 724 - header-test- += linux/usb/uas.h 725 - header-test- += linux/usb/usb338x.h 726 - header-test- += linux/usb/usbnet.h 727 - header-test- += linux/usb/wusb-wa.h 728 - header-test- += linux/usb/xhci-dbgp.h 729 - header-test- += linux/usb_usual.h 730 - header-test- += linux/user-return-notifier.h 731 - header-test- += linux/userfaultfd_k.h 732 - header-test- += linux/verification.h 733 - header-test- += linux/vgaarb.h 734 - header-test- += linux/via_core.h 735 - header-test- += linux/via_i2c.h 736 - header-test- += linux/virtio_byteorder.h 737 - header-test- += linux/virtio_ring.h 738 - header-test- += linux/visorbus.h 739 - header-test- += linux/vme.h 740 - header-test- += linux/vmstat.h 741 - header-test- += linux/vmw_vmci_api.h 742 - header-test- += linux/vmw_vmci_defs.h 743 - header-test- += linux/vringh.h 744 - header-test- += linux/vt_buffer.h 745 - header-test- += linux/zorro.h 746 - header-test- += linux/zpool.h 747 - header-test- += math-emu/double.h 748 - header-test- += math-emu/op-common.h 749 - header-test- += math-emu/quad.h 750 - header-test- += math-emu/single.h 751 - header-test- += math-emu/soft-fp.h 752 - header-test- += media/davinci/dm355_ccdc.h 753 - header-test- += media/davinci/dm644x_ccdc.h 754 - header-test- += media/davinci/isif.h 755 - header-test- += media/davinci/vpbe_osd.h 756 - header-test- += media/davinci/vpbe_types.h 757 - header-test- += media/davinci/vpif_types.h 758 - header-test- += media/demux.h 759 - header-test- += media/drv-intf/soc_mediabus.h 760 - header-test- += media/dvb_net.h 761 - header-test- += media/fwht-ctrls.h 762 - header-test- += media/i2c/ad9389b.h 763 - header-test- += media/i2c/adv7343.h 764 - header-test- += media/i2c/adv7511.h 765 - header-test- += media/i2c/adv7842.h 766 - header-test- += media/i2c/m5mols.h 767 - header-test- += media/i2c/mt9m032.h 768 - header-test- += media/i2c/mt9t112.h 769 - header-test- += media/i2c/mt9v032.h 770 - header-test- += media/i2c/ov2659.h 771 - header-test- += media/i2c/ov7670.h 772 - header-test- += media/i2c/rj54n1cb0c.h 773 - header-test- += media/i2c/saa6588.h 774 - header-test- += media/i2c/saa7115.h 775 - header-test- += media/i2c/sr030pc30.h 776 - header-test- += media/i2c/tc358743.h 777 - header-test- += media/i2c/tda1997x.h 778 - header-test- += media/i2c/ths7303.h 779 - header-test- += media/i2c/tvaudio.h 780 - header-test- += media/i2c/tvp514x.h 781 - header-test- += media/i2c/tvp7002.h 782 - header-test- += media/i2c/wm8775.h 783 - header-test- += media/imx.h 784 - header-test- += media/media-dev-allocator.h 785 - header-test- += media/mpeg2-ctrls.h 786 - header-test- += media/rcar-fcp.h 787 - header-test- += media/tuner-types.h 788 - header-test- += media/tveeprom.h 789 - header-test- += media/v4l2-flash-led-class.h 790 - header-test- += misc/altera.h 791 - header-test- += misc/cxl-base.h 792 - header-test- += misc/cxllib.h 793 - header-test- += net/9p/9p.h 794 - header-test- += net/9p/client.h 795 - header-test- += net/9p/transport.h 796 - header-test- += net/af_vsock.h 797 - header-test- += net/ax88796.h 798 - header-test- += net/bluetooth/hci.h 799 - header-test- += net/bluetooth/hci_core.h 800 - header-test- += net/bluetooth/hci_mon.h 801 - header-test- += net/bluetooth/hci_sock.h 802 - header-test- += net/bluetooth/l2cap.h 803 - header-test- += net/bluetooth/mgmt.h 804 - header-test- += net/bluetooth/rfcomm.h 805 - header-test- += net/bluetooth/sco.h 806 - header-test- += net/bond_options.h 807 - header-test- += net/caif/cfsrvl.h 808 - header-test- += net/codel_impl.h 809 - header-test- += net/codel_qdisc.h 810 - header-test- += net/compat.h 811 - header-test- += net/datalink.h 812 - header-test- += net/dcbevent.h 813 - header-test- += net/dcbnl.h 814 - header-test- += net/dn_dev.h 815 - header-test- += net/dn_fib.h 816 - header-test- += net/dn_neigh.h 817 - header-test- += net/dn_nsp.h 818 - header-test- += net/dn_route.h 819 - header-test- += net/erspan.h 820 - header-test- += net/esp.h 821 - header-test- += net/ethoc.h 822 - header-test- += net/firewire.h 823 - header-test- += net/flow_offload.h 824 - header-test- += net/fq.h 825 - header-test- += net/fq_impl.h 826 - header-test- += net/garp.h 827 - header-test- += net/gtp.h 828 - header-test- += net/gue.h 829 - header-test- += net/hwbm.h 830 - header-test- += net/ila.h 831 - header-test- += net/inet6_connection_sock.h 832 - header-test- += net/inet_common.h 833 - header-test- += net/inet_frag.h 834 - header-test- += net/ip6_route.h 835 - header-test- += net/ip_vs.h 836 - header-test- += net/ipcomp.h 837 - header-test- += net/ipconfig.h 838 - header-test- += net/iucv/af_iucv.h 839 - header-test- += net/iucv/iucv.h 840 - header-test- += net/lapb.h 841 - header-test- += net/llc_c_ac.h 842 - header-test- += net/llc_c_st.h 843 - header-test- += net/llc_s_ac.h 844 - header-test- += net/llc_s_ev.h 845 - header-test- += net/llc_s_st.h 846 - header-test- += net/mpls_iptunnel.h 847 - header-test- += net/mrp.h 848 - header-test- += net/ncsi.h 849 - header-test- += net/netevent.h 850 - header-test- += net/netns/can.h 851 - header-test- += net/netns/generic.h 852 - header-test- += net/netns/ieee802154_6lowpan.h 853 - header-test- += net/netns/ipv4.h 854 - header-test- += net/netns/ipv6.h 855 - header-test- += net/netns/mpls.h 856 - header-test- += net/netns/nftables.h 857 - header-test- += net/netns/sctp.h 858 - header-test- += net/netrom.h 859 - header-test- += net/p8022.h 860 - header-test- += net/phonet/pep.h 861 - header-test- += net/phonet/phonet.h 862 - header-test- += net/phonet/pn_dev.h 863 - header-test- += net/pptp.h 864 - header-test- += net/psample.h 865 - header-test- += net/psnap.h 866 - header-test- += net/regulatory.h 867 - header-test- += net/rose.h 868 - header-test- += net/sctp/auth.h 869 - header-test- += net/sctp/stream_interleave.h 870 - header-test- += net/sctp/stream_sched.h 871 - header-test- += net/sctp/tsnmap.h 872 - header-test- += net/sctp/ulpevent.h 873 - header-test- += net/sctp/ulpqueue.h 874 - header-test- += net/secure_seq.h 875 - header-test- += net/smc.h 876 - header-test- += net/stp.h 877 - header-test- += net/transp_v6.h 878 - header-test- += net/tun_proto.h 879 - header-test- += net/udplite.h 880 - header-test- += net/xdp.h 881 - header-test- += net/xdp_priv.h 882 - header-test- += pcmcia/cistpl.h 883 - header-test- += pcmcia/ds.h 884 - header-test- += rdma/tid_rdma_defs.h 885 - header-test- += scsi/fc/fc_encaps.h 886 - header-test- += scsi/fc/fc_fc2.h 887 - header-test- += scsi/fc/fc_fcoe.h 888 - header-test- += scsi/fc/fc_fip.h 889 - header-test- += scsi/fc_encode.h 890 - header-test- += scsi/fc_frame.h 891 - header-test- += scsi/iser.h 892 - header-test- += scsi/libfc.h 893 - header-test- += scsi/libfcoe.h 894 - header-test- += scsi/libsas.h 895 - header-test- += scsi/sas_ata.h 896 - header-test- += scsi/scsi_cmnd.h 897 - header-test- += scsi/scsi_dbg.h 898 - header-test- += scsi/scsi_device.h 899 - header-test- += scsi/scsi_dh.h 900 - header-test- += scsi/scsi_eh.h 901 - header-test- += scsi/scsi_host.h 902 - header-test- += scsi/scsi_ioctl.h 903 - header-test- += scsi/scsi_request.h 904 - header-test- += scsi/scsi_tcq.h 905 - header-test- += scsi/scsi_transport.h 906 - header-test- += scsi/scsi_transport_fc.h 907 - header-test- += scsi/scsi_transport_sas.h 908 - header-test- += scsi/scsi_transport_spi.h 909 - header-test- += scsi/scsi_transport_srp.h 910 - header-test- += scsi/scsicam.h 911 - header-test- += scsi/sg.h 912 - header-test- += soc/arc/aux.h 913 - header-test- += soc/arc/mcip.h 914 - header-test- += soc/arc/timers.h 915 - header-test- += soc/brcmstb/common.h 916 - header-test- += soc/fsl/bman.h 917 - header-test- += soc/fsl/qe/qe.h 918 - header-test- += soc/fsl/qe/qe_ic.h 919 - header-test- += soc/fsl/qe/qe_tdm.h 920 - header-test- += soc/fsl/qe/ucc.h 921 - header-test- += soc/fsl/qe/ucc_fast.h 922 - header-test- += soc/fsl/qe/ucc_slow.h 923 - header-test- += soc/fsl/qman.h 924 - header-test- += soc/nps/common.h 925 - header-test-$(CONFIG_ARC) += soc/nps/mtm.h 926 - header-test- += soc/qcom/cmd-db.h 927 - header-test- += soc/qcom/rpmh.h 928 - header-test- += soc/qcom/tcs.h 929 - header-test- += soc/tegra/ahb.h 930 - header-test- += soc/tegra/bpmp-abi.h 931 - header-test- += soc/tegra/common.h 932 - header-test- += soc/tegra/flowctrl.h 933 - header-test- += soc/tegra/fuse.h 934 - header-test- += soc/tegra/mc.h 935 - header-test- += sound/ac97/compat.h 936 - header-test- += sound/aci.h 937 - header-test- += sound/ad1843.h 938 - header-test- += sound/adau1373.h 939 - header-test- += sound/ak4113.h 940 - header-test- += sound/ak4114.h 941 - header-test- += sound/ak4117.h 942 - header-test- += sound/cs35l33.h 943 - header-test- += sound/cs35l34.h 944 - header-test- += sound/cs35l35.h 945 - header-test- += sound/cs35l36.h 946 - header-test- += sound/cs4271.h 947 - header-test- += sound/cs42l52.h 948 - header-test- += sound/cs8427.h 949 - header-test- += sound/da7218.h 950 - header-test- += sound/da7219-aad.h 951 - header-test- += sound/da7219.h 952 - header-test- += sound/da9055.h 953 - header-test- += sound/emu8000.h 954 - header-test- += sound/emux_synth.h 955 - header-test- += sound/hda_component.h 956 - header-test- += sound/hda_hwdep.h 957 - header-test- += sound/hda_i915.h 958 - header-test- += sound/hwdep.h 959 - header-test- += sound/i2c.h 960 - header-test- += sound/l3.h 961 - header-test- += sound/max98088.h 962 - header-test- += sound/max98095.h 963 - header-test- += sound/mixer_oss.h 964 - header-test- += sound/omap-hdmi-audio.h 965 - header-test- += sound/pcm_drm_eld.h 966 - header-test- += sound/pcm_iec958.h 967 - header-test- += sound/pcm_oss.h 968 - header-test- += sound/pxa2xx-lib.h 969 - header-test- += sound/rt286.h 970 - header-test- += sound/rt298.h 971 - header-test- += sound/rt5645.h 972 - header-test- += sound/rt5659.h 973 - header-test- += sound/rt5660.h 974 - header-test- += sound/rt5665.h 975 - header-test- += sound/rt5670.h 976 - header-test- += sound/s3c24xx_uda134x.h 977 - header-test- += sound/seq_device.h 978 - header-test- += sound/seq_kernel.h 979 - header-test- += sound/seq_midi_emul.h 980 - header-test- += sound/seq_oss.h 981 - header-test- += sound/soc-acpi-intel-match.h 982 - header-test- += sound/soc-dai.h 983 - header-test- += sound/soc-dapm.h 984 - header-test- += sound/soc-dpcm.h 985 - header-test- += sound/sof/control.h 986 - header-test- += sound/sof/dai-intel.h 987 - header-test- += sound/sof/dai.h 988 - header-test- += sound/sof/header.h 989 - header-test- += sound/sof/info.h 990 - header-test- += sound/sof/pm.h 991 - header-test- += sound/sof/stream.h 992 - header-test- += sound/sof/topology.h 993 - header-test- += sound/sof/trace.h 994 - header-test- += sound/sof/xtensa.h 995 - header-test- += sound/spear_spdif.h 996 - header-test- += sound/sta32x.h 997 - header-test- += sound/sta350.h 998 - header-test- += sound/tea6330t.h 999 - header-test- += sound/tlv320aic32x4.h 1000 - header-test- += sound/tlv320dac33-plat.h 1001 - header-test- += sound/uda134x.h 1002 - header-test- += sound/wavefront.h 1003 - header-test- += sound/wm8903.h 1004 - header-test- += sound/wm8904.h 1005 - header-test- += sound/wm8960.h 1006 - header-test- += sound/wm8962.h 1007 - header-test- += sound/wm8993.h 1008 - header-test- += sound/wm8996.h 1009 - header-test- += sound/wm9081.h 1010 - header-test- += sound/wm9090.h 1011 - header-test- += target/iscsi/iscsi_target_stat.h 1012 - header-test- += trace/bpf_probe.h 1013 - header-test- += trace/events/9p.h 1014 - header-test- += trace/events/afs.h 1015 - header-test- += trace/events/asoc.h 1016 - header-test- += trace/events/bcache.h 1017 - header-test- += trace/events/block.h 1018 - header-test- += trace/events/cachefiles.h 1019 - header-test- += trace/events/cgroup.h 1020 - header-test- += trace/events/clk.h 1021 - header-test- += trace/events/cma.h 1022 - header-test- += trace/events/ext4.h 1023 - header-test- += trace/events/f2fs.h 1024 - header-test- += trace/events/fs_dax.h 1025 - header-test- += trace/events/fscache.h 1026 - header-test- += trace/events/fsi.h 1027 - header-test- += trace/events/fsi_master_ast_cf.h 1028 - header-test- += trace/events/fsi_master_gpio.h 1029 - header-test- += trace/events/huge_memory.h 1030 - header-test- += trace/events/ib_mad.h 1031 - header-test- += trace/events/ib_umad.h 1032 - header-test- += trace/events/io_uring.h 1033 - header-test- += trace/events/iscsi.h 1034 - header-test- += trace/events/jbd2.h 1035 - header-test- += trace/events/kvm.h 1036 - header-test- += trace/events/kyber.h 1037 - header-test- += trace/events/libata.h 1038 - header-test- += trace/events/mce.h 1039 - header-test- += trace/events/mdio.h 1040 - header-test- += trace/events/migrate.h 1041 - header-test- += trace/events/mmflags.h 1042 - header-test- += trace/events/nbd.h 1043 - header-test- += trace/events/nilfs2.h 1044 - header-test- += trace/events/pwc.h 1045 - header-test- += trace/events/rdma.h 1046 - header-test- += trace/events/rpcgss.h 1047 - header-test- += trace/events/rpcrdma.h 1048 - header-test- += trace/events/rxrpc.h 1049 - header-test- += trace/events/scsi.h 1050 - header-test- += trace/events/siox.h 1051 - header-test- += trace/events/spi.h 1052 - header-test- += trace/events/swiotlb.h 1053 - header-test- += trace/events/syscalls.h 1054 - header-test- += trace/events/target.h 1055 - header-test- += trace/events/thermal_power_allocator.h 1056 - header-test- += trace/events/timer.h 1057 - header-test- += trace/events/wbt.h 1058 - header-test- += trace/events/xen.h 1059 - header-test- += trace/perf.h 1060 - header-test- += trace/trace_events.h 1061 - header-test- += uapi/drm/vmwgfx_drm.h 1062 - header-test- += uapi/linux/a.out.h 1063 - header-test- += uapi/linux/coda.h 1064 - header-test- += uapi/linux/coda_psdev.h 1065 - header-test- += uapi/linux/errqueue.h 1066 - header-test- += uapi/linux/eventpoll.h 1067 - header-test- += uapi/linux/hdlc/ioctl.h 1068 - header-test- += uapi/linux/input.h 1069 - header-test- += uapi/linux/kvm.h 1070 - header-test- += uapi/linux/kvm_para.h 1071 - header-test- += uapi/linux/lightnvm.h 1072 - header-test- += uapi/linux/mic_common.h 1073 - header-test- += uapi/linux/mman.h 1074 - header-test- += uapi/linux/nilfs2_ondisk.h 1075 - header-test- += uapi/linux/patchkey.h 1076 - header-test- += uapi/linux/ptrace.h 1077 - header-test- += uapi/linux/scc.h 1078 - header-test- += uapi/linux/seg6_iptunnel.h 1079 - header-test- += uapi/linux/smc_diag.h 1080 - header-test- += uapi/linux/timex.h 1081 - header-test- += uapi/linux/videodev2.h 1082 - header-test- += uapi/scsi/scsi_bsg_fc.h 1083 - header-test- += uapi/sound/asound.h 1084 - header-test- += uapi/sound/sof/eq.h 1085 - header-test- += uapi/sound/sof/fw.h 1086 - header-test- += uapi/sound/sof/header.h 1087 - header-test- += uapi/sound/sof/manifest.h 1088 - header-test- += uapi/sound/sof/trace.h 1089 - header-test- += uapi/xen/evtchn.h 1090 - header-test- += uapi/xen/gntdev.h 1091 - header-test- += uapi/xen/privcmd.h 1092 - header-test- += vdso/vsyscall.h 1093 - header-test- += video/broadsheetfb.h 1094 - header-test- += video/cvisionppc.h 1095 - header-test- += video/gbe.h 1096 - header-test- += video/kyro.h 1097 - header-test- += video/maxinefb.h 1098 - header-test- += video/metronomefb.h 1099 - header-test- += video/neomagic.h 1100 - header-test- += video/of_display_timing.h 1101 - header-test- += video/omapvrfb.h 1102 - header-test- += video/s1d13xxxfb.h 1103 - header-test- += video/sstfb.h 1104 - header-test- += video/tgafb.h 1105 - header-test- += video/udlfb.h 1106 - header-test- += video/uvesafb.h 1107 - header-test- += video/vga.h 1108 - header-test- += video/w100fb.h 1109 - header-test- += xen/acpi.h 1110 - header-test- += xen/arm/hypercall.h 1111 - header-test- += xen/arm/page-coherent.h 1112 - header-test- += xen/arm/page.h 1113 - header-test- += xen/balloon.h 1114 - header-test- += xen/events.h 1115 - header-test- += xen/features.h 1116 - header-test- += xen/grant_table.h 1117 - header-test- += xen/hvm.h 1118 - header-test- += xen/interface/callback.h 1119 - header-test- += xen/interface/event_channel.h 1120 - header-test- += xen/interface/grant_table.h 1121 - header-test- += xen/interface/hvm/dm_op.h 1122 - header-test- += xen/interface/hvm/hvm_op.h 1123 - header-test- += xen/interface/hvm/hvm_vcpu.h 1124 - header-test- += xen/interface/hvm/params.h 1125 - header-test- += xen/interface/hvm/start_info.h 1126 - header-test- += xen/interface/io/9pfs.h 1127 - header-test- += xen/interface/io/blkif.h 1128 - header-test- += xen/interface/io/console.h 1129 - header-test- += xen/interface/io/displif.h 1130 - header-test- += xen/interface/io/fbif.h 1131 - header-test- += xen/interface/io/kbdif.h 1132 - header-test- += xen/interface/io/netif.h 1133 - header-test- += xen/interface/io/pciif.h 1134 - header-test- += xen/interface/io/protocols.h 1135 - header-test- += xen/interface/io/pvcalls.h 1136 - header-test- += xen/interface/io/ring.h 1137 - header-test- += xen/interface/io/sndif.h 1138 - header-test- += xen/interface/io/tpmif.h 1139 - header-test- += xen/interface/io/vscsiif.h 1140 - header-test- += xen/interface/io/xs_wire.h 1141 - header-test- += xen/interface/memory.h 1142 - header-test- += xen/interface/nmi.h 1143 - header-test- += xen/interface/physdev.h 1144 - header-test- += xen/interface/platform.h 1145 - header-test- += xen/interface/sched.h 1146 - header-test- += xen/interface/vcpu.h 1147 - header-test- += xen/interface/version.h 1148 - header-test- += xen/interface/xen-mca.h 1149 - header-test- += xen/interface/xen.h 1150 - header-test- += xen/interface/xenpmu.h 1151 - header-test- += xen/mem-reservation.h 1152 - header-test- += xen/page.h 1153 - header-test- += xen/platform_pci.h 1154 - header-test- += xen/swiotlb-xen.h 1155 - header-test- += xen/xen-front-pgdir-shbuf.h 1156 - header-test- += xen/xen-ops.h 1157 - header-test- += xen/xen.h 1158 - header-test- += xen/xenbus.h 1159 - 1160 - # Do not include directly 1161 - header-test- += linux/compiler-clang.h 1162 - header-test- += linux/compiler-gcc.h 1163 - header-test- += linux/patchkey.h 1164 - header-test- += linux/rwlock_api_smp.h 1165 - header-test- += linux/spinlock_types_up.h 1166 - header-test- += linux/spinlock_up.h 1167 - header-test- += linux/wimax/debug.h 1168 - header-test- += rdma/uverbs_named_ioctl.h 1169 - 1170 - # asm-generic/*.h is used by asm/*.h, and should not be included directly 1171 - header-test- += asm-generic/% uapi/asm-generic/% 1172 - 1173 - # Timestamp files touched by Kconfig 1174 - header-test- += config/% 1175 - 1176 - # Timestamp files touched by scripts/adjust_autoksyms.sh 1177 - header-test- += ksym/% 1178 - 1179 - # You could compile-test these, but maybe not so useful... 1180 - header-test- += dt-bindings/% 1181 - 1182 - # Do not test generated headers. Stale headers are often left over when you 1183 - # traverse the git history without cleaning. 1184 - header-test- += generated/% 1185 - 1186 - # The rest are compile-tested 1187 - header-test-pattern-y += */*.h */*/*.h */*/*/*.h */*/*/*/*.h
-2
include/asm-generic/export.h
··· 31 31 */ 32 32 .macro ___EXPORT_SYMBOL name,val,sec 33 33 #ifdef CONFIG_MODULES 34 - .globl __ksymtab_\name 35 34 .section ___ksymtab\sec+\name,"a" 36 35 .balign KSYM_ALIGN 37 36 __ksymtab_\name: ··· 43 44 #ifdef CONFIG_MODVERSIONS 44 45 .section ___kcrctab\sec+\name,"a" 45 46 .balign KCRC_ALIGN 46 - __kcrctab_\name: 47 47 #if defined(CONFIG_MODULE_REL_CRCS) 48 48 .long __crc_\name - . 49 49 #else
+1 -21
init/Kconfig
··· 104 104 here. If you are a user/distributor, say N here to exclude useless 105 105 drivers to be distributed. 106 106 107 - config HEADER_TEST 108 - bool "Compile test headers that should be standalone compilable" 109 - help 110 - Compile test headers listed in header-test-y target to ensure they are 111 - self-contained, i.e. compilable as standalone units. 112 - 113 - If you are a developer or tester and want to ensure the requested 114 - headers are self-contained, say Y here. Otherwise, choose N. 115 - 116 - config KERNEL_HEADER_TEST 117 - bool "Compile test kernel headers" 118 - depends on HEADER_TEST 119 - help 120 - Headers in include/ are used to build external moduls. 121 - Compile test them to ensure they are self-contained, i.e. 122 - compilable as standalone units. 123 - 124 - If you are a developer or tester and want to ensure the headers 125 - in include/ are self-contained, say Y here. Otherwise, choose N. 126 - 127 107 config UAPI_HEADER_TEST 128 108 bool "Compile test UAPI headers" 129 - depends on HEADER_TEST && HEADERS_INSTALL && CC_CAN_LINK 109 + depends on HEADERS_INSTALL && CC_CAN_LINK 130 110 help 131 111 Compile test headers exported to user-space to ensure they are 132 112 self-contained, i.e. compilable as standalone units.
+1 -1
kernel/Makefile
··· 130 130 $(obj)/kheaders.o: $(obj)/kheaders_data.tar.xz 131 131 132 132 quiet_cmd_genikh = CHK $(obj)/kheaders_data.tar.xz 133 - cmd_genikh = $(BASH) $(srctree)/kernel/gen_kheaders.sh $@ 133 + cmd_genikh = $(CONFIG_SHELL) $(srctree)/kernel/gen_kheaders.sh $@ 134 134 $(obj)/kheaders_data.tar.xz: FORCE 135 135 $(call cmd,genikh) 136 136
+37 -27
kernel/gen_kheaders.sh
··· 1 - #!/bin/bash 1 + #!/bin/sh 2 2 # SPDX-License-Identifier: GPL-2.0 3 3 4 4 # This script generates an archive consisting of kernel headers ··· 21 21 # Uncomment it for debugging. 22 22 # if [ ! -f /tmp/iter ]; then iter=1; echo 1 > /tmp/iter; 23 23 # else iter=$(($(cat /tmp/iter) + 1)); echo $iter > /tmp/iter; fi 24 - # find $src_file_list -name "*.h" | xargs ls -l > /tmp/src-ls-$iter 25 - # find $obj_file_list -name "*.h" | xargs ls -l > /tmp/obj-ls-$iter 24 + # find $all_dirs -name "*.h" | xargs ls -l > /tmp/ls-$iter 25 + 26 + all_dirs= 27 + if [ "$building_out_of_srctree" ]; then 28 + for d in $dir_list; do 29 + all_dirs="$all_dirs $srctree/$d" 30 + done 31 + fi 32 + all_dirs="$all_dirs $dir_list" 26 33 27 34 # include/generated/compile.h is ignored because it is touched even when none 28 - # of the source files changed. This causes pointless regeneration, so let us 29 - # ignore them for md5 calculation. 30 - pushd $srctree > /dev/null 31 - src_files_md5="$(find $dir_list -name "*.h" | 32 - grep -v "include/generated/compile.h" | 33 - grep -v "include/generated/autoconf.h" | 35 + # of the source files changed. 36 + # 37 + # When Kconfig regenerates include/generated/autoconf.h, its timestamp is 38 + # updated, but the contents might be still the same. When any CONFIG option is 39 + # changed, Kconfig touches the corresponding timestamp file include/config/*.h. 40 + # Hence, the md5sum detects the configuration change anyway. We do not need to 41 + # check include/generated/autoconf.h explicitly. 42 + # 43 + # Ignore them for md5 calculation to avoid pointless regeneration. 44 + headers_md5="$(find $all_dirs -name "*.h" | 45 + grep -v "include/generated/compile.h" | 46 + grep -v "include/generated/autoconf.h" | 34 47 xargs ls -l | md5sum | cut -d ' ' -f1)" 35 - popd > /dev/null 36 - obj_files_md5="$(find $dir_list -name "*.h" | 37 - grep -v "include/generated/compile.h" | 38 - grep -v "include/generated/autoconf.h" | 39 - xargs ls -l | md5sum | cut -d ' ' -f1)" 48 + 40 49 # Any changes to this script will also cause a rebuild of the archive. 41 50 this_file_md5="$(ls -l $sfile | md5sum | cut -d ' ' -f1)" 42 51 if [ -f $tarfile ]; then tarfile_md5="$(md5sum $tarfile | cut -d ' ' -f1)"; fi 43 52 if [ -f kernel/kheaders.md5 ] && 44 - [ "$(cat kernel/kheaders.md5|head -1)" == "$src_files_md5" ] && 45 - [ "$(cat kernel/kheaders.md5|head -2|tail -1)" == "$obj_files_md5" ] && 46 - [ "$(cat kernel/kheaders.md5|head -3|tail -1)" == "$this_file_md5" ] && 47 - [ "$(cat kernel/kheaders.md5|tail -1)" == "$tarfile_md5" ]; then 53 + [ "$(head -n 1 kernel/kheaders.md5)" = "$headers_md5" ] && 54 + [ "$(head -n 2 kernel/kheaders.md5 | tail -n 1)" = "$this_file_md5" ] && 55 + [ "$(tail -n 1 kernel/kheaders.md5)" = "$tarfile_md5" ]; then 48 56 exit 49 57 fi 50 58 ··· 63 55 rm -rf $cpio_dir 64 56 mkdir $cpio_dir 65 57 66 - pushd $srctree > /dev/null 67 - for f in $dir_list; 68 - do find "$f" -name "*.h"; 69 - done | cpio --quiet -pd $cpio_dir 70 - popd > /dev/null 58 + if [ "$building_out_of_srctree" ]; then 59 + ( 60 + cd $srctree 61 + for f in $dir_list 62 + do find "$f" -name "*.h"; 63 + done | cpio --quiet -pd $cpio_dir 64 + ) 65 + fi 71 66 72 - # The second CPIO can complain if files already exist which can 73 - # happen with out of tree builds. Just silence CPIO for now. 67 + # The second CPIO can complain if files already exist which can happen with out 68 + # of tree builds having stale headers in srctree. Just silence CPIO for now. 74 69 for f in $dir_list; 75 70 do find "$f" -name "*.h"; 76 71 done | cpio --quiet -pd $cpio_dir >/dev/null 2>&1 ··· 90 79 --owner=0 --group=0 --numeric-owner --no-recursion \ 91 80 -Jcf $tarfile -C $cpio_dir/ -T - > /dev/null 92 81 93 - echo "$src_files_md5" > kernel/kheaders.md5 94 - echo "$obj_files_md5" >> kernel/kheaders.md5 82 + echo $headers_md5 > kernel/kheaders.md5 95 83 echo "$this_file_md5" >> kernel/kheaders.md5 96 84 echo "$(md5sum $tarfile | cut -d ' ' -f1)" >> kernel/kheaders.md5 97 85
-11
lib/Kconfig.debug
··· 308 308 user-space program samples. It is also needed by some features such 309 309 as uapi header sanity checks. 310 310 311 - config HEADERS_CHECK 312 - bool "Run sanity checks on uapi headers when building 'all'" 313 - depends on HEADERS_INSTALL 314 - help 315 - This option will run basic sanity checks on uapi headers when 316 - building the 'all' target, for example, ensure that they do not 317 - attempt to include files which were not exported, etc. 318 - 319 - If you're making modifications to header files which are 320 - relevant for userspace, say 'Y'. 321 - 322 311 config OPTIMIZE_INLINING 323 312 def_bool y 324 313 help
-1
scripts/.gitignore
··· 4 4 bin2c 5 5 conmakehash 6 6 kallsyms 7 - pnmtologo 8 7 unifdef 9 8 recordmcount 10 9 sortextable
+9 -6
scripts/Kbuild.include
··· 210 210 # (needed for the shell) 211 211 make-cmd = $(call escsq,$(subst $(pound),$$(pound),$(subst $$,$$$$,$(cmd_$(1))))) 212 212 213 - # Find any prerequisites that is newer than target or that does not exist. 213 + # Find any prerequisites that are newer than target or that do not exist. 214 + # (This is not true for now; $? should contain any non-existent prerequisites, 215 + # but it does not work as expected when .SECONDARY is present. This seems a bug 216 + # of GNU Make.) 214 217 # PHONY targets skipped in both cases. 215 - any-prereq = $(filter-out $(PHONY),$?)$(filter-out $(PHONY) $(wildcard $^),$^) 218 + newer-prereqs = $(filter-out $(PHONY),$?) 216 219 217 220 # Execute command if command has changed or prerequisite(s) are updated. 218 - if_changed = $(if $(any-prereq)$(cmd-check), \ 221 + if_changed = $(if $(newer-prereqs)$(cmd-check), \ 219 222 $(cmd); \ 220 223 printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:) 221 224 222 225 # Execute the command and also postprocess generated .d dependencies file. 223 - if_changed_dep = $(if $(any-prereq)$(cmd-check),$(cmd_and_fixdep),@:) 226 + if_changed_dep = $(if $(newer-prereqs)$(cmd-check),$(cmd_and_fixdep),@:) 224 227 225 228 cmd_and_fixdep = \ 226 229 $(cmd); \ ··· 233 230 # Usage: $(call if_changed_rule,foo) 234 231 # Will check if $(cmd_foo) or any of the prerequisites changed, 235 232 # and if so will execute $(rule_foo). 236 - if_changed_rule = $(if $(any-prereq)$(cmd-check),$(rule_$(1)),@:) 233 + if_changed_rule = $(if $(newer-prereqs)$(cmd-check),$(rule_$(1)),@:) 237 234 238 235 ### 239 236 # why - tell why a target got built ··· 258 255 why = \ 259 256 $(if $(filter $@, $(PHONY)),- due to target is PHONY, \ 260 257 $(if $(wildcard $@), \ 261 - $(if $(any-prereq),- due to: $(any-prereq), \ 258 + $(if $(newer-prereqs),- due to: $(newer-prereqs), \ 262 259 $(if $(cmd-check), \ 263 260 $(if $(cmd_$@),- due to command line change, \ 264 261 $(if $(filter $@, $(targets)), \
-2
scripts/Makefile
··· 4 4 # the kernel for the build process. 5 5 # --------------------------------------------------------------------------- 6 6 # kallsyms: Find all symbols in vmlinux 7 - # pnmttologo: Convert pnm files to logo files 8 7 # conmakehash: Create chartable 9 8 # conmakehash: Create arrays for initializing the kernel console tables 10 9 ··· 11 12 12 13 hostprogs-$(CONFIG_BUILD_BIN2C) += bin2c 13 14 hostprogs-$(CONFIG_KALLSYMS) += kallsyms 14 - hostprogs-$(CONFIG_LOGO) += pnmtologo 15 15 hostprogs-$(CONFIG_VT) += conmakehash 16 16 hostprogs-$(BUILD_C_RECORDMCOUNT) += recordmcount 17 17 hostprogs-$(CONFIG_BUILDTIME_EXTABLE_SORT) += sortextable
+7 -13
scripts/Makefile.build
··· 283 283 $(obj)/%.lst: $(src)/%.c FORCE 284 284 $(call if_changed_dep,cc_lst_c) 285 285 286 - # header test (header-test-y, header-test-m target) 287 - # --------------------------------------------------------------------------- 288 - 289 - quiet_cmd_cc_s_h = CC $@ 290 - cmd_cc_s_h = $(CC) $(c_flags) -S -o $@ -x c /dev/null -include $< 291 - 292 - $(obj)/%.h.s: $(src)/%.h FORCE 293 - $(call if_changed_dep,cc_s_h) 294 - 295 286 # Compile assembler sources (.S) 296 287 # --------------------------------------------------------------------------- 297 288 ··· 460 469 461 470 ifdef single-build 462 471 472 + KBUILD_SINGLE_TARGETS := $(filter $(obj)/%, $(KBUILD_SINGLE_TARGETS)) 473 + 463 474 curdir-single := $(sort $(foreach x, $(KBUILD_SINGLE_TARGETS), \ 464 475 $(if $(filter $(x) $(basename $(x)).o, $(targets)), $(x)))) 465 476 466 477 # Handle single targets without any rule: show "Nothing to be done for ..." or 467 478 # "No rule to make target ..." depending on whether the target exists. 468 479 unknown-single := $(filter-out $(addsuffix /%, $(subdir-ym)), \ 469 - $(filter $(obj)/%, \ 470 - $(filter-out $(curdir-single), \ 471 - $(KBUILD_SINGLE_TARGETS)))) 480 + $(filter-out $(curdir-single), $(KBUILD_SINGLE_TARGETS))) 472 481 473 - __build: $(curdir-single) $(subdir-ym) 482 + single-subdirs := $(foreach d, $(subdir-ym), \ 483 + $(if $(filter $(d)/%, $(KBUILD_SINGLE_TARGETS)), $(d))) 484 + 485 + __build: $(curdir-single) $(single-subdirs) 474 486 ifneq ($(unknown-single),) 475 487 $(Q)$(MAKE) -f /dev/null $(unknown-single) 476 488 endif
-18
scripts/Makefile.headersinst
··· 56 56 $(if $(new-dirs), $(shell mkdir -p $(new-dirs))) 57 57 58 58 # Rules 59 - 60 - ifndef HDRCHECK 61 - 62 59 quiet_cmd_install = HDRINST $@ 63 60 cmd_install = $(CONFIG_SHELL) $(srctree)/scripts/headers_install.sh $< $@ 64 61 ··· 77 80 existing-headers := $(filter $(old-headers), $(all-headers)) 78 81 79 82 -include $(foreach f,$(existing-headers),$(dir $(f)).$(notdir $(f)).cmd) 80 - 81 - else 82 - 83 - quiet_cmd_check = HDRCHK $< 84 - cmd_check = $(PERL) $(srctree)/scripts/headers_check.pl $(dst) $(SRCARCH) $<; touch $@ 85 - 86 - check-files := $(addsuffix .chk, $(all-headers)) 87 - 88 - $(check-files): $(dst)/%.chk : $(dst)/% $(srctree)/scripts/headers_check.pl 89 - $(call cmd,check) 90 - 91 - __headers: $(check-files) 92 - @: 93 - 94 - endif 95 83 96 84 PHONY += FORCE 97 85 FORCE:
-14
scripts/Makefile.lib
··· 65 65 extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-)) 66 66 endif 67 67 68 - # Test self-contained headers 69 - 70 - # Wildcard searches in $(srctree)/$(src)/, but not in $(objtree)/$(obj)/. 71 - # Stale generated headers are often left over, so pattern matching should 72 - # be avoided. Please notice $(srctree)/$(src)/ and $(objtree)/$(obj) point 73 - # to the same location for in-tree building. So, header-test-pattern-y should 74 - # be used with care. 75 - header-test-y += $(filter-out $(header-test-), \ 76 - $(patsubst $(srctree)/$(src)/%, %, \ 77 - $(wildcard $(addprefix $(srctree)/$(src)/, \ 78 - $(header-test-pattern-y))))) 79 - 80 - extra-$(CONFIG_HEADER_TEST) += $(addsuffix .s, $(header-test-y) $(header-test-m)) 81 - 82 68 # Add subdir path 83 69 84 70 extra-y := $(addprefix $(obj)/,$(extra-y))
+8 -10
scripts/Makefile.modpost
··· 50 50 $(if $(CONFIG_MODVERSIONS),-m) \ 51 51 $(if $(CONFIG_MODULE_SRCVERSION_ALL),-a) \ 52 52 $(if $(KBUILD_EXTMOD),-i,-o) $(kernelsymfile) \ 53 - $(if $(KBUILD_EXTMOD),-I $(modulesymfile)) \ 54 53 $(if $(KBUILD_EXTMOD),$(addprefix -e ,$(KBUILD_EXTRA_SYMBOLS))) \ 55 54 $(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \ 56 55 $(if $(CONFIG_SECTION_MISMATCH_WARN_ONLY),,-E) \ 57 - $(if $(KBUILD_MODPOST_WARN),-w) \ 58 - $(if $(filter nsdeps,$(MAKECMDGOALS)),-d) 56 + $(if $(KBUILD_MODPOST_WARN),-w) 59 57 60 58 ifdef MODPOST_VMLINUX 61 59 ··· 65 67 66 68 else 67 69 68 - # When building external modules load the Kbuild file to retrieve EXTRA_SYMBOLS info 69 - ifneq ($(KBUILD_EXTMOD),) 70 + MODPOST += $(subst -i,-n,$(filter -i,$(MAKEFLAGS))) -s -T - \ 71 + $(if $(KBUILD_NSDEPS),-d $(MODULES_NSDEPS)) 70 72 71 - # set src + obj - they may be used when building the .mod.c file 73 + ifeq ($(KBUILD_EXTMOD),) 74 + MODPOST += $(wildcard vmlinux) 75 + else 76 + 77 + # set src + obj - they may be used in the modules's Makefile 72 78 obj := $(KBUILD_EXTMOD) 73 79 src := $(obj) 74 80 ··· 80 78 include $(if $(wildcard $(KBUILD_EXTMOD)/Kbuild), \ 81 79 $(KBUILD_EXTMOD)/Kbuild, $(KBUILD_EXTMOD)/Makefile) 82 80 endif 83 - 84 - MODPOST += $(subst -i,-n,$(filter -i,$(MAKEFLAGS))) -s -T - $(wildcard vmlinux) 85 81 86 82 # find all modules listed in modules.order 87 83 modules := $(sort $(shell cat $(MODORDER))) ··· 95 95 ifneq ($(KBUILD_MODPOST_NOFINAL),1) 96 96 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modfinal 97 97 endif 98 - 99 - nsdeps: __modpost 100 98 101 99 endif 102 100
+4 -2
scripts/Makefile.package
··· 103 103 104 104 # tarball targets 105 105 # --------------------------------------------------------------------------- 106 - tar-pkgs := tar-pkg targz-pkg tarbz2-pkg tarxz-pkg 106 + tar-pkgs := dir-pkg tar-pkg targz-pkg tarbz2-pkg tarxz-pkg 107 107 PHONY += $(tar-pkgs) 108 108 $(tar-pkgs): 109 109 $(MAKE) -f $(srctree)/Makefile ··· 146 146 @echo ' binrpm-pkg - Build only the binary kernel RPM package' 147 147 @echo ' deb-pkg - Build both source and binary deb kernel packages' 148 148 @echo ' bindeb-pkg - Build only the binary kernel deb package' 149 - @echo ' snap-pkg - Build only the binary kernel snap package (will connect to external hosts)' 149 + @echo ' snap-pkg - Build only the binary kernel snap package' 150 + @echo ' (will connect to external hosts)' 151 + @echo ' dir-pkg - Build the kernel as a plain directory structure' 150 152 @echo ' tar-pkg - Build the kernel as an uncompressed tarball' 151 153 @echo ' targz-pkg - Build the kernel as a gzip compressed tarball' 152 154 @echo ' tarbz2-pkg - Build the kernel as a bzip2 compressed tarball'
+146 -149
scripts/kallsyms.c
··· 18 18 * 19 19 */ 20 20 21 + #include <stdbool.h> 21 22 #include <stdio.h> 22 23 #include <stdlib.h> 23 24 #include <string.h> 24 25 #include <ctype.h> 25 26 #include <limits.h> 26 27 27 - #ifndef ARRAY_SIZE 28 28 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) 29 - #endif 30 29 31 30 #define KSYM_NAME_LEN 128 32 31 ··· 57 58 58 59 static struct sym_entry *table; 59 60 static unsigned int table_size, table_cnt; 60 - static int all_symbols = 0; 61 - static int absolute_percpu = 0; 62 - static int base_relative = 0; 61 + static int all_symbols; 62 + static int absolute_percpu; 63 + static int base_relative; 63 64 64 65 static int token_profit[0x10000]; 65 66 ··· 75 76 exit(1); 76 77 } 77 78 78 - /* 79 - * This ignores the intensely annoying "mapping symbols" found 80 - * in ARM ELF files: $a, $t and $d. 81 - */ 82 - static int is_arm_mapping_symbol(const char *str) 79 + static char *sym_name(const struct sym_entry *s) 83 80 { 84 - return str[0] == '$' && strchr("axtd", str[1]) 85 - && (str[2] == '\0' || str[2] == '.'); 81 + return (char *)s->sym + 1; 86 82 } 87 83 88 - static int check_symbol_range(const char *sym, unsigned long long addr, 89 - struct addr_range *ranges, int entries) 84 + static bool is_ignored_symbol(const char *name, char type) 85 + { 86 + static const char * const ignored_symbols[] = { 87 + /* 88 + * Symbols which vary between passes. Passes 1 and 2 must have 89 + * identical symbol lists. The kallsyms_* symbols below are 90 + * only added after pass 1, they would be included in pass 2 91 + * when --all-symbols is specified so exclude them to get a 92 + * stable symbol list. 93 + */ 94 + "kallsyms_addresses", 95 + "kallsyms_offsets", 96 + "kallsyms_relative_base", 97 + "kallsyms_num_syms", 98 + "kallsyms_names", 99 + "kallsyms_markers", 100 + "kallsyms_token_table", 101 + "kallsyms_token_index", 102 + /* Exclude linker generated symbols which vary between passes */ 103 + "_SDA_BASE_", /* ppc */ 104 + "_SDA2_BASE_", /* ppc */ 105 + NULL 106 + }; 107 + 108 + static const char * const ignored_prefixes[] = { 109 + "$", /* local symbols for ARM, MIPS, etc. */ 110 + ".LASANPC", /* s390 kasan local symbols */ 111 + "__crc_", /* modversions */ 112 + "__efistub_", /* arm64 EFI stub namespace */ 113 + NULL 114 + }; 115 + 116 + static const char * const ignored_suffixes[] = { 117 + "_from_arm", /* arm */ 118 + "_from_thumb", /* arm */ 119 + "_veneer", /* arm */ 120 + NULL 121 + }; 122 + 123 + const char * const *p; 124 + 125 + /* Exclude symbols which vary between passes. */ 126 + for (p = ignored_symbols; *p; p++) 127 + if (!strcmp(name, *p)) 128 + return true; 129 + 130 + for (p = ignored_prefixes; *p; p++) 131 + if (!strncmp(name, *p, strlen(*p))) 132 + return true; 133 + 134 + for (p = ignored_suffixes; *p; p++) { 135 + int l = strlen(name) - strlen(*p); 136 + 137 + if (l >= 0 && !strcmp(name + l, *p)) 138 + return true; 139 + } 140 + 141 + if (type == 'U' || type == 'u') 142 + return true; 143 + /* exclude debugging symbols */ 144 + if (type == 'N' || type == 'n') 145 + return true; 146 + 147 + if (toupper(type) == 'A') { 148 + /* Keep these useful absolute symbols */ 149 + if (strcmp(name, "__kernel_syscall_via_break") && 150 + strcmp(name, "__kernel_syscall_via_epc") && 151 + strcmp(name, "__kernel_sigtramp") && 152 + strcmp(name, "__gp")) 153 + return true; 154 + } 155 + 156 + return false; 157 + } 158 + 159 + static void check_symbol_range(const char *sym, unsigned long long addr, 160 + struct addr_range *ranges, int entries) 90 161 { 91 162 size_t i; 92 163 struct addr_range *ar; ··· 166 97 167 98 if (strcmp(sym, ar->start_sym) == 0) { 168 99 ar->start = addr; 169 - return 0; 100 + return; 170 101 } else if (strcmp(sym, ar->end_sym) == 0) { 171 102 ar->end = addr; 172 - return 0; 103 + return; 173 104 } 174 105 } 175 - 176 - return 1; 177 106 } 178 107 179 108 static int read_symbol(FILE *in, struct sym_entry *s) ··· 192 125 return -1; 193 126 } 194 127 128 + if (is_ignored_symbol(sym, stype)) 129 + return -1; 130 + 195 131 /* Ignore most absolute/undefined (?) symbols. */ 196 132 if (strcmp(sym, "_text") == 0) 197 133 _text = s->addr; 198 - else if (check_symbol_range(sym, s->addr, text_ranges, 199 - ARRAY_SIZE(text_ranges)) == 0) 200 - /* nothing to do */; 201 - else if (toupper(stype) == 'A') 202 - { 203 - /* Keep these useful absolute symbols */ 204 - if (strcmp(sym, "__kernel_syscall_via_break") && 205 - strcmp(sym, "__kernel_syscall_via_epc") && 206 - strcmp(sym, "__kernel_sigtramp") && 207 - strcmp(sym, "__gp")) 208 - return -1; 209 134 210 - } 211 - else if (toupper(stype) == 'U' || 212 - is_arm_mapping_symbol(sym)) 213 - return -1; 214 - /* exclude also MIPS ELF local symbols ($L123 instead of .L123) */ 215 - else if (sym[0] == '$') 216 - return -1; 217 - /* exclude debugging symbols */ 218 - else if (stype == 'N' || stype == 'n') 219 - return -1; 220 - /* exclude s390 kasan local symbols */ 221 - else if (!strncmp(sym, ".LASANPC", 8)) 222 - return -1; 135 + check_symbol_range(sym, s->addr, text_ranges, ARRAY_SIZE(text_ranges)); 136 + check_symbol_range(sym, s->addr, &percpu_range, 1); 223 137 224 138 /* include the type field in the symbol name, so that it gets 225 139 * compressed together */ ··· 211 163 "unable to allocate required amount of memory\n"); 212 164 exit(EXIT_FAILURE); 213 165 } 214 - strcpy((char *)s->sym + 1, sym); 166 + strcpy(sym_name(s), sym); 215 167 s->sym[0] = stype; 216 168 217 169 s->percpu_absolute = 0; 218 170 219 - /* Record if we've found __per_cpu_start/end. */ 220 - check_symbol_range(sym, s->addr, &percpu_range, 1); 221 - 222 171 return 0; 223 172 } 224 173 225 - static int symbol_in_range(struct sym_entry *s, struct addr_range *ranges, 226 - int entries) 174 + static int symbol_in_range(const struct sym_entry *s, 175 + const struct addr_range *ranges, int entries) 227 176 { 228 177 size_t i; 229 - struct addr_range *ar; 178 + const struct addr_range *ar; 230 179 231 180 for (i = 0; i < entries; ++i) { 232 181 ar = &ranges[i]; ··· 235 190 return 0; 236 191 } 237 192 238 - static int symbol_valid(struct sym_entry *s) 193 + static int symbol_valid(const struct sym_entry *s) 239 194 { 240 - /* Symbols which vary between passes. Passes 1 and 2 must have 241 - * identical symbol lists. The kallsyms_* symbols below are only added 242 - * after pass 1, they would be included in pass 2 when --all-symbols is 243 - * specified so exclude them to get a stable symbol list. 244 - */ 245 - static char *special_symbols[] = { 246 - "kallsyms_addresses", 247 - "kallsyms_offsets", 248 - "kallsyms_relative_base", 249 - "kallsyms_num_syms", 250 - "kallsyms_names", 251 - "kallsyms_markers", 252 - "kallsyms_token_table", 253 - "kallsyms_token_index", 254 - 255 - /* Exclude linker generated symbols which vary between passes */ 256 - "_SDA_BASE_", /* ppc */ 257 - "_SDA2_BASE_", /* ppc */ 258 - NULL }; 259 - 260 - static char *special_prefixes[] = { 261 - "__crc_", /* modversions */ 262 - "__efistub_", /* arm64 EFI stub namespace */ 263 - NULL }; 264 - 265 - static char *special_suffixes[] = { 266 - "_veneer", /* arm */ 267 - "_from_arm", /* arm */ 268 - "_from_thumb", /* arm */ 269 - NULL }; 270 - 271 - int i; 272 - char *sym_name = (char *)s->sym + 1; 195 + const char *name = sym_name(s); 273 196 274 197 /* if --all-symbols is not specified, then symbols outside the text 275 198 * and inittext sections are discarded */ ··· 252 239 * rules. 253 240 */ 254 241 if ((s->addr == text_range_text->end && 255 - strcmp(sym_name, 256 - text_range_text->end_sym)) || 242 + strcmp(name, text_range_text->end_sym)) || 257 243 (s->addr == text_range_inittext->end && 258 - strcmp(sym_name, 259 - text_range_inittext->end_sym))) 260 - return 0; 261 - } 262 - 263 - /* Exclude symbols which vary between passes. */ 264 - for (i = 0; special_symbols[i]; i++) 265 - if (strcmp(sym_name, special_symbols[i]) == 0) 266 - return 0; 267 - 268 - for (i = 0; special_prefixes[i]; i++) { 269 - int l = strlen(special_prefixes[i]); 270 - 271 - if (l <= strlen(sym_name) && 272 - strncmp(sym_name, special_prefixes[i], l) == 0) 273 - return 0; 274 - } 275 - 276 - for (i = 0; special_suffixes[i]; i++) { 277 - int l = strlen(sym_name) - strlen(special_suffixes[i]); 278 - 279 - if (l >= 0 && strcmp(sym_name + l, special_suffixes[i]) == 0) 244 + strcmp(name, text_range_inittext->end_sym))) 280 245 return 0; 281 246 } 282 247 283 248 return 1; 249 + } 250 + 251 + /* remove all the invalid symbols from the table */ 252 + static void shrink_table(void) 253 + { 254 + unsigned int i, pos; 255 + 256 + pos = 0; 257 + for (i = 0; i < table_cnt; i++) { 258 + if (symbol_valid(&table[i])) { 259 + if (pos != i) 260 + table[pos] = table[i]; 261 + pos++; 262 + } else { 263 + free(table[i].sym); 264 + } 265 + } 266 + table_cnt = pos; 267 + 268 + /* When valid symbol is not registered, exit to error */ 269 + if (!table_cnt) { 270 + fprintf(stderr, "No valid symbol.\n"); 271 + exit(1); 272 + } 284 273 } 285 274 286 275 static void read_map(FILE *in) ··· 303 288 } 304 289 } 305 290 306 - static void output_label(char *label) 291 + static void output_label(const char *label) 307 292 { 308 293 printf(".globl %s\n", label); 309 294 printf("\tALGN\n"); ··· 312 297 313 298 /* uncompress a compressed symbol. When this function is called, the best table 314 299 * might still be compressed itself, so the function needs to be recursive */ 315 - static int expand_symbol(unsigned char *data, int len, char *result) 300 + static int expand_symbol(const unsigned char *data, int len, char *result) 316 301 { 317 302 int c, rlen, total=0; 318 303 ··· 337 322 return total; 338 323 } 339 324 340 - static int symbol_absolute(struct sym_entry *s) 325 + static int symbol_absolute(const struct sym_entry *s) 341 326 { 342 327 return s->percpu_absolute; 343 328 } ··· 475 460 /* table lookup compression functions */ 476 461 477 462 /* count all the possible tokens in a symbol */ 478 - static void learn_symbol(unsigned char *symbol, int len) 463 + static void learn_symbol(const unsigned char *symbol, int len) 479 464 { 480 465 int i; 481 466 ··· 484 469 } 485 470 486 471 /* decrease the count for all the possible tokens in a symbol */ 487 - static void forget_symbol(unsigned char *symbol, int len) 472 + static void forget_symbol(const unsigned char *symbol, int len) 488 473 { 489 474 int i; 490 475 ··· 492 477 token_profit[ symbol[i] + (symbol[i + 1] << 8) ]--; 493 478 } 494 479 495 - /* remove all the invalid symbols from the table and do the initial token count */ 480 + /* do the initial token count */ 496 481 static void build_initial_tok_table(void) 497 482 { 498 - unsigned int i, pos; 483 + unsigned int i; 499 484 500 - pos = 0; 501 - for (i = 0; i < table_cnt; i++) { 502 - if ( symbol_valid(&table[i]) ) { 503 - if (pos != i) 504 - table[pos] = table[i]; 505 - learn_symbol(table[pos].sym, table[pos].len); 506 - pos++; 507 - } 508 - } 509 - table_cnt = pos; 485 + for (i = 0; i < table_cnt; i++) 486 + learn_symbol(table[i].sym, table[i].len); 510 487 } 511 488 512 - static void *find_token(unsigned char *str, int len, unsigned char *token) 489 + static unsigned char *find_token(unsigned char *str, int len, 490 + const unsigned char *token) 513 491 { 514 492 int i; 515 493 ··· 515 507 516 508 /* replace a given token in all the valid symbols. Use the sampled symbols 517 509 * to update the counts */ 518 - static void compress_symbols(unsigned char *str, int idx) 510 + static void compress_symbols(const unsigned char *str, int idx) 519 511 { 520 512 unsigned int i, len, size; 521 513 unsigned char *p1, *p2; ··· 622 614 623 615 insert_real_symbols_in_table(); 624 616 625 - /* When valid symbol is not registered, exit to error */ 626 - if (!table_cnt) { 627 - fprintf(stderr, "No valid symbol.\n"); 628 - exit(1); 629 - } 630 - 631 617 optimize_result(); 632 618 } 633 619 634 620 /* guess for "linker script provide" symbol */ 635 621 static int may_be_linker_script_provide_symbol(const struct sym_entry *se) 636 622 { 637 - const char *symbol = (char *)se->sym + 1; 623 + const char *symbol = sym_name(se); 638 624 int len = se->len - 1; 639 625 640 626 if (len < 8) ··· 660 658 return 0; 661 659 } 662 660 663 - static int prefix_underscores_count(const char *str) 664 - { 665 - const char *tail = str; 666 - 667 - while (*tail == '_') 668 - tail++; 669 - 670 - return tail - str; 671 - } 672 - 673 661 static int compare_symbols(const void *a, const void *b) 674 662 { 675 663 const struct sym_entry *sa; ··· 688 696 return wa - wb; 689 697 690 698 /* sort by the number of prefix underscores */ 691 - wa = prefix_underscores_count((const char *)sa->sym + 1); 692 - wb = prefix_underscores_count((const char *)sb->sym + 1); 699 + wa = strspn(sym_name(sa), "_"); 700 + wb = strspn(sym_name(sb), "_"); 693 701 if (wa != wb) 694 702 return wa - wb; 695 703 ··· 723 731 { 724 732 unsigned int i; 725 733 726 - relative_base = -1ULL; 727 734 for (i = 0; i < table_cnt; i++) 728 - if (!symbol_absolute(&table[i]) && 729 - table[i].addr < relative_base) 735 + if (!symbol_absolute(&table[i])) { 736 + /* 737 + * The table is sorted by address. 738 + * Take the first non-absolute symbol value. 739 + */ 730 740 relative_base = table[i].addr; 741 + return; 742 + } 731 743 } 732 744 733 745 int main(int argc, char **argv) ··· 752 756 usage(); 753 757 754 758 read_map(stdin); 759 + shrink_table(); 755 760 if (absolute_percpu) 756 761 make_percpus_absolute(); 762 + sort_symbols(); 757 763 if (base_relative) 758 764 record_relative_base(); 759 - sort_symbols(); 760 765 optimize_token_table(); 761 766 write_src(); 762 767
+7 -3
scripts/kconfig/Makefile
··· 66 66 # syncconfig has become an internal implementation detail and is now 67 67 # deprecated for external use 68 68 simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \ 69 - alldefconfig randconfig listnewconfig olddefconfig syncconfig 69 + alldefconfig randconfig listnewconfig olddefconfig syncconfig \ 70 + helpnewconfig 71 + 70 72 PHONY += $(simple-targets) 71 73 72 74 $(simple-targets): $(obj)/conf ··· 136 134 @echo ' alldefconfig - New config with all symbols set to default' 137 135 @echo ' randconfig - New config with random answer to all options' 138 136 @echo ' listnewconfig - List new options' 137 + @echo ' helpnewconfig - List new options and help text' 139 138 @echo ' olddefconfig - Same as oldconfig but sets new symbols to their' 140 139 @echo ' default value without prompting' 141 140 @echo ' kvmconfig - Enable additional options for kvm guest kernel support' 142 - @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support' 141 + @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel' 142 + @echo ' support' 143 143 @echo ' tinyconfig - Configure the tiniest possible kernel' 144 144 @echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)' 145 145 146 146 # =========================================================================== 147 147 # object files used by all kconfig flavours 148 148 common-objs := confdata.o expr.o lexer.lex.o parser.tab.o preprocess.o \ 149 - symbol.o 149 + symbol.o util.o 150 150 151 151 $(obj)/lexer.lex.o: $(obj)/parser.tab.h 152 152 HOSTCFLAGS_lexer.lex.o := -I $(srctree)/$(src)
+12 -1
scripts/kconfig/conf.c
··· 32 32 defconfig, 33 33 savedefconfig, 34 34 listnewconfig, 35 + helpnewconfig, 35 36 olddefconfig, 36 37 }; 37 38 static enum input_mode input_mode = oldaskconfig; ··· 435 434 printf("%s%s=%s\n", CONFIG_, sym->name, str); 436 435 } 437 436 } 437 + } else if (input_mode == helpnewconfig) { 438 + printf("-----\n"); 439 + print_help(menu); 440 + printf("-----\n"); 441 + 438 442 } else { 439 443 if (!conf_cnt++) 440 444 printf("*\n* Restart config...\n*\n"); ··· 465 459 {"alldefconfig", no_argument, NULL, alldefconfig}, 466 460 {"randconfig", no_argument, NULL, randconfig}, 467 461 {"listnewconfig", no_argument, NULL, listnewconfig}, 462 + {"helpnewconfig", no_argument, NULL, helpnewconfig}, 468 463 {"olddefconfig", no_argument, NULL, olddefconfig}, 469 464 {NULL, 0, NULL, 0} 470 465 }; ··· 476 469 printf("Usage: %s [-s] [option] <kconfig-file>\n", progname); 477 470 printf("[option] is _one_ of the following:\n"); 478 471 printf(" --listnewconfig List new options\n"); 472 + printf(" --helpnewconfig List new options and help text\n"); 479 473 printf(" --oldaskconfig Start a new configuration using a line-oriented program\n"); 480 474 printf(" --oldconfig Update a configuration using a provided .config as base\n"); 481 475 printf(" --syncconfig Similar to oldconfig but generates configuration in\n" ··· 551 543 case allmodconfig: 552 544 case alldefconfig: 553 545 case listnewconfig: 546 + case helpnewconfig: 554 547 case olddefconfig: 555 548 break; 556 549 case '?': ··· 585 576 case oldaskconfig: 586 577 case oldconfig: 587 578 case listnewconfig: 579 + case helpnewconfig: 588 580 case olddefconfig: 589 581 conf_read(NULL); 590 582 break; ··· 667 657 /* fall through */ 668 658 case oldconfig: 669 659 case listnewconfig: 660 + case helpnewconfig: 670 661 case syncconfig: 671 662 /* Update until a loop caused no more changes */ 672 663 do { ··· 686 675 defconfig_file); 687 676 return 1; 688 677 } 689 - } else if (input_mode != listnewconfig) { 678 + } else if (input_mode != listnewconfig && input_mode != helpnewconfig) { 690 679 if (!no_conf_write && conf_write(NULL)) { 691 680 fprintf(stderr, "\n*** Error during writing of the configuration.\n\n"); 692 681 exit(1);
+3
scripts/kconfig/mconf-cfg.sh
··· 44 44 echo >&2 "* Install ncurses (ncurses-devel or libncurses-dev" 45 45 echo >&2 "* depending on your distribution)." 46 46 echo >&2 "*" 47 + echo >&2 "* You may also need to install pkg-config to find the" 48 + echo >&2 "* ncurses installed in a non-default location." 49 + echo >&2 "*" 47 50 exit 1
+3
scripts/kconfig/nconf-cfg.sh
··· 44 44 echo >&2 "* Install ncurses (ncurses-devel or libncurses-dev" 45 45 echo >&2 "* depending on your distribution)." 46 46 echo >&2 "*" 47 + echo >&2 "* You may also need to install pkg-config to find the" 48 + echo >&2 "* ncurses installed in a non-default location." 49 + echo >&2 "*" 47 50 exit 1
-1
scripts/kconfig/parser.y
··· 727 727 } 728 728 } 729 729 730 - #include "util.c" 731 730 #include "menu.c"
+88 -100
scripts/mod/modpost.c
··· 38 38 static int sec_mismatch_fatal = 0; 39 39 /* ignore missing files */ 40 40 static int ignore_missing_files; 41 - /* write namespace dependencies */ 42 - static int write_namespace_deps; 43 41 44 42 enum export { 45 43 export_plain, export_unused, export_gpl, ··· 169 171 unsigned int vmlinux:1; /* 1 if symbol is defined in vmlinux */ 170 172 unsigned int kernel:1; /* 1 if symbol is from kernel 171 173 * (only for external modules) **/ 172 - unsigned int preloaded:1; /* 1 if symbol from Module.symvers, or crc */ 173 174 unsigned int is_static:1; /* 1 if symbol is not global */ 174 175 enum export export; /* Type of export */ 175 176 char name[0]; ··· 211 214 enum export export) 212 215 { 213 216 unsigned int hash; 214 - struct symbol *new; 215 217 216 218 hash = tdb_hash(name) % SYMBOL_HASH_SIZE; 217 - new = symbolhash[hash] = alloc_symbol(name, 0, symbolhash[hash]); 218 - new->module = module; 219 - new->export = export; 220 - return new; 219 + symbolhash[hash] = alloc_symbol(name, 0, symbolhash[hash]); 220 + 221 + return symbolhash[hash]; 221 222 } 222 223 223 224 static struct symbol *find_symbol(const char *name) ··· 236 241 static bool contains_namespace(struct namespace_list *list, 237 242 const char *namespace) 238 243 { 239 - struct namespace_list *ns_entry; 240 - 241 - for (ns_entry = list; ns_entry != NULL; ns_entry = ns_entry->next) 242 - if (strcmp(ns_entry->namespace, namespace) == 0) 244 + for (; list; list = list->next) 245 + if (!strcmp(list->namespace, namespace)) 243 246 return true; 244 247 245 248 return false; ··· 305 312 return sech_name(elf, &elf->sechdrs[secindex]); 306 313 } 307 314 315 + static void *sym_get_data(const struct elf_info *info, const Elf_Sym *sym) 316 + { 317 + Elf_Shdr *sechdr = &info->sechdrs[sym->st_shndx]; 318 + unsigned long offset; 319 + 320 + offset = sym->st_value; 321 + if (info->hdr->e_type != ET_REL) 322 + offset -= sechdr->sh_addr; 323 + 324 + return (void *)info->hdr + sechdr->sh_offset + offset; 325 + } 326 + 308 327 #define strstarts(str, prefix) (strncmp(str, prefix, strlen(prefix)) == 0) 309 328 310 329 static enum export export_from_secname(struct elf_info *elf, unsigned int sec) ··· 353 348 return export_unknown; 354 349 } 355 350 356 - static const char *namespace_from_kstrtabns(struct elf_info *info, 357 - Elf_Sym *kstrtabns) 351 + static const char *namespace_from_kstrtabns(const struct elf_info *info, 352 + const Elf_Sym *sym) 358 353 { 359 - char *value = info->ksymtab_strings + kstrtabns->st_value; 354 + const char *value = sym_get_data(info, sym); 360 355 return value[0] ? value : NULL; 361 356 } 362 357 ··· 390 385 391 386 if (!s) { 392 387 s = new_symbol(name, mod, export); 393 - } else { 394 - if (!s->preloaded) { 395 - warn("%s: '%s' exported twice. Previous export was in %s%s\n", 396 - mod->name, name, s->module->name, 397 - is_vmlinux(s->module->name) ? "" : ".ko"); 398 - } else { 399 - /* In case Module.symvers was out of date */ 400 - s->module = mod; 401 - } 388 + } else if (!external_module || is_vmlinux(s->module->name) || 389 + s->module == mod) { 390 + warn("%s: '%s' exported twice. Previous export was in %s%s\n", 391 + mod->name, name, s->module->name, 392 + is_vmlinux(s->module->name) ? "" : ".ko"); 393 + return s; 402 394 } 403 - s->preloaded = 0; 395 + 396 + s->module = mod; 404 397 s->vmlinux = is_vmlinux(mod->name); 405 398 s->kernel = 0; 406 399 s->export = export; 407 400 return s; 408 401 } 409 402 410 - static void sym_update_crc(const char *name, struct module *mod, 411 - unsigned int crc, enum export export) 403 + static void sym_set_crc(const char *name, unsigned int crc) 412 404 { 413 405 struct symbol *s = find_symbol(name); 414 406 415 - if (!s) { 416 - s = new_symbol(name, mod, export); 417 - /* Don't complain when we find it later. */ 418 - s->preloaded = 1; 419 - } 407 + /* 408 + * Ignore stand-alone __crc_*, which might be auto-generated symbols 409 + * such as __*_veneer in ARM ELF. 410 + */ 411 + if (!s) 412 + return; 413 + 420 414 s->crc = crc; 421 415 s->crc_valid = 1; 422 416 } ··· 597 593 info->export_unused_gpl_sec = i; 598 594 else if (strcmp(secname, "__ksymtab_gpl_future") == 0) 599 595 info->export_gpl_future_sec = i; 600 - else if (strcmp(secname, "__ksymtab_strings") == 0) 601 - info->ksymtab_strings = (void *)hdr + 602 - sechdrs[i].sh_offset - 603 - sechdrs[i].sh_addr; 604 596 605 597 if (sechdrs[i].sh_type == SHT_SYMTAB) { 606 598 unsigned int sh_link_idx; ··· 679 679 return 0; 680 680 } 681 681 682 - static void handle_modversions(struct module *mod, struct elf_info *info, 683 - Elf_Sym *sym, const char *symname) 682 + static void handle_modversion(const struct module *mod, 683 + const struct elf_info *info, 684 + const Elf_Sym *sym, const char *symname) 684 685 { 685 686 unsigned int crc; 687 + 688 + if (sym->st_shndx == SHN_UNDEF) { 689 + warn("EXPORT symbol \"%s\" [%s%s] version generation failed, symbol will not be versioned.\n", 690 + symname, mod->name, is_vmlinux(mod->name) ? "":".ko"); 691 + return; 692 + } 693 + 694 + if (sym->st_shndx == SHN_ABS) { 695 + crc = sym->st_value; 696 + } else { 697 + unsigned int *crcp; 698 + 699 + /* symbol points to the CRC in the ELF object */ 700 + crcp = sym_get_data(info, sym); 701 + crc = TO_NATIVE(*crcp); 702 + } 703 + sym_set_crc(symname, crc); 704 + } 705 + 706 + static void handle_symbol(struct module *mod, struct elf_info *info, 707 + const Elf_Sym *sym, const char *symname) 708 + { 686 709 enum export export; 687 - bool is_crc = false; 688 710 const char *name; 689 711 690 712 if ((!is_vmlinux(mod->name) || mod->is_dot_o) && ··· 714 692 export = export_from_secname(info, get_secindex(info, sym)); 715 693 else 716 694 export = export_from_sec(info, get_secindex(info, sym)); 717 - 718 - /* CRC'd symbol */ 719 - if (strstarts(symname, "__crc_")) { 720 - is_crc = true; 721 - crc = (unsigned int) sym->st_value; 722 - if (sym->st_shndx != SHN_UNDEF && sym->st_shndx != SHN_ABS) { 723 - unsigned int *crcp; 724 - 725 - /* symbol points to the CRC in the ELF object */ 726 - crcp = (void *)info->hdr + sym->st_value + 727 - info->sechdrs[sym->st_shndx].sh_offset - 728 - (info->hdr->e_type != ET_REL ? 729 - info->sechdrs[sym->st_shndx].sh_addr : 0); 730 - crc = TO_NATIVE(*crcp); 731 - } 732 - sym_update_crc(symname + strlen("__crc_"), mod, crc, 733 - export); 734 - } 735 695 736 696 switch (sym->st_shndx) { 737 697 case SHN_COMMON: ··· 749 745 } 750 746 #endif 751 747 752 - if (is_crc) { 753 - const char *e = is_vmlinux(mod->name) ?"":".ko"; 754 - warn("EXPORT symbol \"%s\" [%s%s] version generation failed, symbol will not be versioned.\n", 755 - symname + strlen("__crc_"), mod->name, e); 756 - } 757 748 mod->unres = alloc_symbol(symname, 758 749 ELF_ST_BIND(sym->st_info) == STB_WEAK, 759 750 mod->unres); ··· 2049 2050 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { 2050 2051 symname = remove_dot(info.strtab + sym->st_name); 2051 2052 2052 - handle_modversions(mod, &info, sym, symname); 2053 + handle_symbol(mod, &info, sym, symname); 2053 2054 handle_moddevtable(mod, &info, sym, symname); 2054 2055 } 2055 2056 2056 - /* Apply symbol namespaces from __kstrtabns_<symbol> entries. */ 2057 2057 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { 2058 2058 symname = remove_dot(info.strtab + sym->st_name); 2059 2059 2060 + /* Apply symbol namespaces from __kstrtabns_<symbol> entries. */ 2060 2061 if (strstarts(symname, "__kstrtabns_")) 2061 2062 sym_update_namespace(symname + strlen("__kstrtabns_"), 2062 2063 namespace_from_kstrtabns(&info, 2063 2064 sym)); 2065 + 2066 + if (strstarts(symname, "__crc_")) 2067 + handle_modversion(mod, &info, sym, 2068 + symname + strlen("__crc_")); 2064 2069 } 2065 2070 2066 2071 // check for static EXPORT_SYMBOL_* functions && global vars ··· 2220 2217 else 2221 2218 basename = mod->name; 2222 2219 2223 - if (exp->namespace) { 2224 - add_namespace(&mod->required_namespaces, 2225 - exp->namespace); 2226 - 2227 - if (!write_namespace_deps && 2228 - !module_imports_namespace(mod, exp->namespace)) { 2229 - warn("module %s uses symbol %s from namespace %s, but does not import it.\n", 2230 - basename, exp->name, exp->namespace); 2231 - } 2220 + if (exp->namespace && 2221 + !module_imports_namespace(mod, exp->namespace)) { 2222 + warn("module %s uses symbol %s from namespace %s, but does not import it.\n", 2223 + basename, exp->name, exp->namespace); 2224 + add_namespace(&mod->missing_namespaces, exp->namespace); 2232 2225 } 2233 2226 2234 2227 if (!mod->gpl_compatible) ··· 2476 2477 } 2477 2478 s = sym_add_exported(symname, mod, export_no(export)); 2478 2479 s->kernel = kernel; 2479 - s->preloaded = 1; 2480 2480 s->is_static = 0; 2481 - sym_update_crc(symname, mod, crc, export_no(export)); 2481 + sym_set_crc(symname, crc); 2482 2482 sym_update_namespace(symname, namespace); 2483 2483 } 2484 2484 release_file(file, size); ··· 2525 2527 free(buf.p); 2526 2528 } 2527 2529 2528 - static void write_namespace_deps_files(void) 2530 + static void write_namespace_deps_files(const char *fname) 2529 2531 { 2530 2532 struct module *mod; 2531 2533 struct namespace_list *ns; 2532 2534 struct buffer ns_deps_buf = {}; 2533 2535 2534 2536 for (mod = modules; mod; mod = mod->next) { 2535 - char fname[PATH_MAX]; 2536 2537 2537 - if (mod->skip) 2538 + if (mod->skip || !mod->missing_namespaces) 2538 2539 continue; 2539 2540 2540 - ns_deps_buf.pos = 0; 2541 + buf_printf(&ns_deps_buf, "%s.ko:", mod->name); 2541 2542 2542 - for (ns = mod->required_namespaces; ns; ns = ns->next) 2543 - buf_printf(&ns_deps_buf, "%s\n", ns->namespace); 2543 + for (ns = mod->missing_namespaces; ns; ns = ns->next) 2544 + buf_printf(&ns_deps_buf, " %s", ns->namespace); 2544 2545 2545 - if (ns_deps_buf.pos == 0) 2546 - continue; 2547 - 2548 - sprintf(fname, "%s.ns_deps", mod->name); 2549 - write_if_changed(&ns_deps_buf, fname); 2546 + buf_printf(&ns_deps_buf, "\n"); 2550 2547 } 2548 + 2549 + write_if_changed(&ns_deps_buf, fname); 2550 + free(ns_deps_buf.p); 2551 2551 } 2552 2552 2553 2553 struct ext_sym_list { ··· 2557 2561 { 2558 2562 struct module *mod; 2559 2563 struct buffer buf = { }; 2560 - char *kernel_read = NULL, *module_read = NULL; 2564 + char *kernel_read = NULL; 2565 + char *missing_namespace_deps = NULL; 2561 2566 char *dump_write = NULL, *files_source = NULL; 2562 2567 int opt; 2563 2568 int err; ··· 2566 2569 struct ext_sym_list *extsym_iter; 2567 2570 struct ext_sym_list *extsym_start = NULL; 2568 2571 2569 - while ((opt = getopt(argc, argv, "i:I:e:mnsT:o:awEd")) != -1) { 2572 + while ((opt = getopt(argc, argv, "i:e:mnsT:o:awEd:")) != -1) { 2570 2573 switch (opt) { 2571 2574 case 'i': 2572 2575 kernel_read = optarg; 2573 - break; 2574 - case 'I': 2575 - module_read = optarg; 2576 2576 external_module = 1; 2577 2577 break; 2578 2578 case 'e': ··· 2605 2611 sec_mismatch_fatal = 1; 2606 2612 break; 2607 2613 case 'd': 2608 - write_namespace_deps = 1; 2614 + missing_namespace_deps = optarg; 2609 2615 break; 2610 2616 default: 2611 2617 exit(1); ··· 2614 2620 2615 2621 if (kernel_read) 2616 2622 read_dump(kernel_read, 1); 2617 - if (module_read) 2618 - read_dump(module_read, 0); 2619 2623 while (extsym_start) { 2620 2624 read_dump(extsym_start->file, 0); 2621 2625 extsym_iter = extsym_start->next; ··· 2639 2647 2640 2648 err |= check_modname_len(mod); 2641 2649 err |= check_exports(mod); 2642 - if (write_namespace_deps) 2643 - continue; 2644 2650 2645 2651 add_header(&buf, mod); 2646 2652 add_intree_flag(&buf, !external_module); ··· 2653 2663 write_if_changed(&buf, fname); 2654 2664 } 2655 2665 2656 - if (write_namespace_deps) { 2657 - write_namespace_deps_files(); 2658 - return 0; 2659 - } 2666 + if (missing_namespace_deps) 2667 + write_namespace_deps_files(missing_namespace_deps); 2660 2668 2661 2669 if (dump_write) 2662 2670 write_dump(dump_write);
+2 -3
scripts/mod/modpost.h
··· 126 126 struct buffer dev_table_buf; 127 127 char srcversion[25]; 128 128 int is_dot_o; 129 - // Required namespace dependencies 130 - struct namespace_list *required_namespaces; 129 + // Missing namespace dependencies 130 + struct namespace_list *missing_namespaces; 131 131 // Actual imported namespaces 132 132 struct namespace_list *imported_namespaces; 133 133 }; ··· 143 143 Elf_Section export_gpl_sec; 144 144 Elf_Section export_unused_gpl_sec; 145 145 Elf_Section export_gpl_future_sec; 146 - char *ksymtab_strings; 147 146 char *strtab; 148 147 char *modinfo; 149 148 unsigned int modinfo_len;
+17 -12
scripts/nsdeps
··· 21 21 exit 1 22 22 fi 23 23 24 + if [ "$KBUILD_EXTMOD" ]; then 25 + src_prefix= 26 + else 27 + src_prefix=$srctree/ 28 + fi 29 + 24 30 generate_deps_for_ns() { 25 31 $SPATCH --very-quiet --in-place --sp-file \ 26 32 $srctree/scripts/coccinelle/misc/add_namespace.cocci -D ns=$1 $2 27 33 } 28 34 29 35 generate_deps() { 30 - local mod_name=`basename $@ .ko` 31 - local mod_file=`echo $@ | sed -e 's/\.ko/\.mod/'` 32 - local ns_deps_file=`echo $@ | sed -e 's/\.ko/\.ns_deps/'` 33 - if [ ! -f "$ns_deps_file" ]; then return; fi 34 - local mod_source_files="`cat $mod_file | sed -n 1p \ 36 + local mod=${1%.ko:} 37 + shift 38 + local namespaces="$*" 39 + local mod_source_files="`cat $mod.mod | sed -n 1p \ 35 40 | sed -e 's/\.o/\.c/g' \ 36 - | sed "s|[^ ]* *|${srctree}/&|g"`" 37 - for ns in `cat $ns_deps_file`; do 38 - echo "Adding namespace $ns to module $mod_name (if needed)." 41 + | sed "s|[^ ]* *|${src_prefix}&|g"`" 42 + for ns in $namespaces; do 43 + echo "Adding namespace $ns to module $mod.ko." 39 44 generate_deps_for_ns $ns "$mod_source_files" 40 45 # sort the imports 41 46 for source_file in $mod_source_files; do ··· 57 52 done 58 53 } 59 54 60 - for f in `cat $objtree/modules.order`; do 61 - generate_deps $f 62 - done 63 - 55 + while read line 56 + do 57 + generate_deps $line 58 + done < $MODULES_NSDEPS
+6 -2
scripts/package/buildtar
··· 2 2 # SPDX-License-Identifier: GPL-2.0 3 3 4 4 # 5 - # buildtar 0.0.4 5 + # buildtar 0.0.5 6 6 # 7 7 # (C) 2004-2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de> 8 8 # ··· 24 24 # Figure out how to compress, if requested at all 25 25 # 26 26 case "${1}" in 27 - tar-pkg) 27 + dir-pkg|tar-pkg) 28 28 opts= 29 29 ;; 30 30 targz-pkg) ··· 125 125 ;; 126 126 esac 127 127 128 + if [ "${1}" = dir-pkg ]; then 129 + echo "Kernel tree successfully created in $tmpdir" 130 + exit 0 131 + fi 128 132 129 133 # 130 134 # Create the tarball
scripts/pnmtologo.c drivers/video/logo/pnmtologo.c
+11 -11
scripts/setlocalversion
··· 45 45 46 46 # Check for git and a git repo. 47 47 if test -z "$(git rev-parse --show-cdup 2>/dev/null)" && 48 - head=`git rev-parse --verify --short HEAD 2>/dev/null`; then 48 + head=$(git rev-parse --verify --short HEAD 2>/dev/null); then 49 49 50 50 # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore 51 51 # it, because this version is defined in the top level Makefile. 52 - if [ -z "`git describe --exact-match 2>/dev/null`" ]; then 52 + if [ -z "$(git describe --exact-match 2>/dev/null)" ]; then 53 53 54 54 # If only the short version is requested, don't bother 55 55 # running further git commands ··· 59 59 fi 60 60 # If we are past a tagged commit (like 61 61 # "v2.6.30-rc5-302-g72357d5"), we pretty print it. 62 - if atag="`git describe 2>/dev/null`"; then 62 + if atag="$(git describe 2>/dev/null)"; then 63 63 echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' 64 64 65 65 # If we don't have a tag at all we print -g{commitish}. ··· 70 70 71 71 # Is this git on svn? 72 72 if git config --get svn-remote.svn.url >/dev/null; then 73 - printf -- '-svn%s' "`git svn find-rev $head`" 73 + printf -- '-svn%s' "$(git svn find-rev $head)" 74 74 fi 75 75 76 76 # Check for uncommitted changes. ··· 91 91 fi 92 92 93 93 # Check for mercurial and a mercurial repo. 94 - if test -d .hg && hgid=`hg id 2>/dev/null`; then 94 + if test -d .hg && hgid=$(hg id 2>/dev/null); then 95 95 # Do we have an tagged version? If so, latesttagdistance == 1 96 - if [ "`hg log -r . --template '{latesttagdistance}'`" = "1" ]; then 97 - id=`hg log -r . --template '{latesttag}'` 96 + if [ "$(hg log -r . --template '{latesttagdistance}')" = "1" ]; then 97 + id=$(hg log -r . --template '{latesttag}') 98 98 printf '%s%s' -hg "$id" 99 99 else 100 - tag=`printf '%s' "$hgid" | cut -d' ' -f2` 100 + tag=$(printf '%s' "$hgid" | cut -d' ' -f2) 101 101 if [ -z "$tag" -o "$tag" = tip ]; then 102 - id=`printf '%s' "$hgid" | sed 's/[+ ].*//'` 102 + id=$(printf '%s' "$hgid" | sed 's/[+ ].*//') 103 103 printf '%s%s' -hg "$id" 104 104 fi 105 105 fi ··· 115 115 fi 116 116 117 117 # Check for svn and a svn repo. 118 - if rev=`LANG= LC_ALL= LC_MESSAGES=C svn info 2>/dev/null | grep '^Last Changed Rev'`; then 119 - rev=`echo $rev | awk '{print $NF}'` 118 + if rev=$(LANG= LC_ALL= LC_MESSAGES=C svn info 2>/dev/null | grep '^Last Changed Rev'); then 119 + rev=$(echo $rev | awk '{print $NF}') 120 120 printf -- '-svn%s' "$rev" 121 121 122 122 # All done with svn
+2
scripts/ver_linux
··· 32 32 printversion("PPP", version("pppd --version")) 33 33 printversion("Isdn4k-utils", version("isdnctrl")) 34 34 printversion("Nfs-utils", version("showmount --version")) 35 + printversion("Bison", version("bison --version")) 36 + printversion("Flex", version("flex --version")) 35 37 36 38 while (getline <"/proc/self/maps" > 0) { 37 39 if (/libc.*\.so$/) {
+11 -8
usr/include/Makefile
··· 26 26 header-test- += linux/am437x-vpfe.h 27 27 header-test- += linux/android/binder.h 28 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 29 header-test- += linux/coda.h 32 30 header-test- += linux/elfcore.h 33 31 header-test- += linux/errqueue.h ··· 34 36 header-test- += linux/ivtv.h 35 37 header-test- += linux/kexec.h 36 38 header-test- += linux/matroxfb.h 37 - header-test- += linux/netfilter_ipv4/ipt_LOG.h 38 - header-test- += linux/netfilter_ipv6/ip6t_LOG.h 39 39 header-test- += linux/nfc.h 40 40 header-test- += linux/omap3isp.h 41 41 header-test- += linux/omapfb.h ··· 95 99 # asm-generic/*.h is used by asm/*.h, and should not be included directly 96 100 header-test- += asm-generic/% 97 101 98 - # The rest are compile-tested 99 - header-test-y += $(filter-out $(header-test-), \ 100 - $(patsubst $(obj)/%,%, $(wildcard \ 101 - $(addprefix $(obj)/, *.h */*.h */*/*.h */*/*/*.h)))) 102 + extra-y := $(patsubst $(obj)/%.h,%.hdrtest, $(shell find $(obj) -name '*.h')) 103 + 104 + quiet_cmd_hdrtest = HDRTEST $< 105 + cmd_hdrtest = \ 106 + $(CC) $(c_flags) -S -o /dev/null -x c /dev/null \ 107 + $(if $(filter-out $(header-test-), $*.h), -include $<); \ 108 + $(PERL) $(srctree)/scripts/headers_check.pl $(obj) $(SRCARCH) $<; \ 109 + touch $@ 110 + 111 + $(obj)/%.hdrtest: $(obj)/%.h FORCE 112 + $(call if_changed_dep,hdrtest) 102 113 103 114 clean-files += $(filter-out Makefile, $(notdir $(wildcard $(obj)/*)))