diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-05-16 01:15:03 -0400 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-05-17 13:17:45 -0400 |
commit | 05d8cba4a1e8c7e2d1f91a24a2f3d26852938a04 (patch) | |
tree | e3385068de1b7f4db8567f38eb9d30e50aa9aa11 /scripts/Makefile.headersinst | |
parent | 2ea659a9ef488125eb46da6eb571de5eae5c43f6 (diff) |
kbuild: skip install/check of headers right under uapi directories
Since commit 61562f981e92 ("uapi: export all arch specifics
directories"), "make INSTALL_HDR_PATH=$root/usr headers_install"
deletes standard glibc headers and others in $(root)/usr/include.
The cause of the issue is that headers_install now starts descending
from arch/$(hdr-arch)/include/uapi with $(root)/usr/include for its
destination when installing asm headers. So, headers already there
are assumed to be unwanted.
When headers_install starts descending from include/uapi with
$(root)/usr/include for its destination, it works around the problem
by creating an dummy destination $(root)/usr/include/uapi, but this
is tricky.
To fix the problem in a clean way is to skip headers install/check
in include/uapi and arch/$(hdr-arch)/include/uapi because we know
there are only sub-directories in uapi directories. A good side
effect is the empty destination $(root)/usr/include/uapi will go
away.
I am also removing the trailing slash in the headers_check target to
skip checking in arch/$(hdr-arch)/include/uapi.
Fixes: 61562f981e92 ("uapi: export all arch specifics directories")
Reported-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Tested-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Diffstat (limited to 'scripts/Makefile.headersinst')
-rw-r--r-- | scripts/Makefile.headersinst | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index 6ba97a1f9c5a..ce753a408c56 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst | |||
@@ -8,6 +8,29 @@ | |||
8 | # | 8 | # |
9 | # ========================================================================== | 9 | # ========================================================================== |
10 | 10 | ||
11 | PHONY := __headers | ||
12 | __headers: | ||
13 | |||
14 | include scripts/Kbuild.include | ||
15 | |||
16 | srcdir := $(srctree)/$(obj) | ||
17 | subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.)) | ||
18 | # caller may set destination dir (when installing to asm/) | ||
19 | _dst := $(if $(dst),$(dst),$(obj)) | ||
20 | |||
21 | # Recursion | ||
22 | __headers: $(subdirs) | ||
23 | |||
24 | .PHONY: $(subdirs) | ||
25 | $(subdirs): | ||
26 | $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@ | ||
27 | |||
28 | # Skip header install/check for include/uapi and arch/$(hdr-arch)/include/uapi. | ||
29 | # We have only sub-directories there. | ||
30 | skip-inst := $(if $(filter %/uapi,$(obj)),1) | ||
31 | |||
32 | ifeq ($(skip-inst),) | ||
33 | |||
11 | # generated header directory | 34 | # generated header directory |
12 | gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) | 35 | gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) |
13 | 36 | ||
@@ -15,21 +38,14 @@ gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) | |||
15 | kbuild-file := $(srctree)/$(obj)/Kbuild | 38 | kbuild-file := $(srctree)/$(obj)/Kbuild |
16 | -include $(kbuild-file) | 39 | -include $(kbuild-file) |
17 | 40 | ||
18 | # called may set destination dir (when installing to asm/) | ||
19 | _dst := $(if $(dst),$(dst),$(obj)) | ||
20 | |||
21 | old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild | 41 | old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild |
22 | ifneq ($(wildcard $(old-kbuild-file)),) | 42 | ifneq ($(wildcard $(old-kbuild-file)),) |
23 | include $(old-kbuild-file) | 43 | include $(old-kbuild-file) |
24 | endif | 44 | endif |
25 | 45 | ||
26 | include scripts/Kbuild.include | ||
27 | |||
28 | installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) | 46 | installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) |
29 | 47 | ||
30 | srcdir := $(srctree)/$(obj) | ||
31 | gendir := $(objtree)/$(gen) | 48 | gendir := $(objtree)/$(gen) |
32 | subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.)) | ||
33 | header-files := $(notdir $(wildcard $(srcdir)/*.h)) | 49 | header-files := $(notdir $(wildcard $(srcdir)/*.h)) |
34 | header-files += $(notdir $(wildcard $(srcdir)/*.agh)) | 50 | header-files += $(notdir $(wildcard $(srcdir)/*.agh)) |
35 | header-files := $(filter-out $(no-export-headers), $(header-files)) | 51 | header-files := $(filter-out $(no-export-headers), $(header-files)) |
@@ -88,11 +104,9 @@ quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files) | |||
88 | $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \ | 104 | $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \ |
89 | touch $@ | 105 | touch $@ |
90 | 106 | ||
91 | PHONY += __headersinst __headerscheck | ||
92 | |||
93 | ifndef HDRCHECK | 107 | ifndef HDRCHECK |
94 | # Rules for installing headers | 108 | # Rules for installing headers |
95 | __headersinst: $(subdirs) $(install-file) | 109 | __headers: $(install-file) |
96 | @: | 110 | @: |
97 | 111 | ||
98 | targets += $(install-file) | 112 | targets += $(install-file) |
@@ -104,7 +118,7 @@ $(install-file): scripts/headers_install.sh \ | |||
104 | $(call if_changed,install) | 118 | $(call if_changed,install) |
105 | 119 | ||
106 | else | 120 | else |
107 | __headerscheck: $(subdirs) $(check-file) | 121 | __headers: $(check-file) |
108 | @: | 122 | @: |
109 | 123 | ||
110 | targets += $(check-file) | 124 | targets += $(check-file) |
@@ -113,11 +127,6 @@ $(check-file): scripts/headers_check.pl $(output-files) FORCE | |||
113 | 127 | ||
114 | endif | 128 | endif |
115 | 129 | ||
116 | # Recursion | ||
117 | .PHONY: $(subdirs) | ||
118 | $(subdirs): | ||
119 | $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@ | ||
120 | |||
121 | targets := $(wildcard $(sort $(targets))) | 130 | targets := $(wildcard $(sort $(targets))) |
122 | cmd_files := $(wildcard \ | 131 | cmd_files := $(wildcard \ |
123 | $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) | 132 | $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) |
@@ -126,6 +135,8 @@ ifneq ($(cmd_files),) | |||
126 | include $(cmd_files) | 135 | include $(cmd_files) |
127 | endif | 136 | endif |
128 | 137 | ||
138 | endif # skip-inst | ||
139 | |||
129 | .PHONY: $(PHONY) | 140 | .PHONY: $(PHONY) |
130 | PHONY += FORCE | 141 | PHONY += FORCE |
131 | FORCE: ; | 142 | FORCE: ; |