From patchwork Tue May 16 05:15:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 99842 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp1854564qge; Mon, 15 May 2017 22:16:49 -0700 (PDT) X-Received: by 10.84.236.77 with SMTP id h13mr13423018pln.5.1494911809461; Mon, 15 May 2017 22:16:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494911809; cv=none; d=google.com; s=arc-20160816; b=Sk+VInFvQJquvnUwUgkSQXhDoNUgXAQTFCOpZNmIgtNeliDq9s+p6rtspC+f5u1GiW 9y8fN2rkVOPLOVEjbTv6sBOANILRTAPXSrmg1qGPCuHkigojr0c1CUpdwOv3XvLaFqwu cVBu91134qo9VC6eiJL6sika2Rhxuy27qH9jKfgAqCG8fvag5kChDOMdEv+w9aLuX5t3 3QNE5rfwEyAxPzIyXlCvuWg1w+DmwDxX5uyoQUDgpRhvdoObeH34iUsR2sHQOZf498T1 8umZWcOVrzDvSQ0kizf0/Y9Ivm3jD5YkYOC0ckGy8VbcAvbeS5tB7lOKQ+fqfvfag6Rg qQmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter:arc-authentication-results; bh=Pfo1IUDR8ot0YYkZVl7KI2jQvBrpYp9BstEk/wOAlxs=; b=g8wKMyjtO/C0LqqlZGp/DWHRlMyXDbB7Pk5V8wvxbO5VaI+eVsMlg8i+qGvVFOTTzc hNXWUf/TchRg/6CJNYRZIYCWqZCGsur858kW0vzT4wqQ5b69WoZCXVUUZtGU+G0ZJtJr of9UBzLzBDS9kxzsKT3Q173tOnqeEf2h8ezdKhe58A5wtwbHCnd7lujkrijx8Ccq3cGU M51HvXVEckbQ0iy7f6PbKFhLhUOfml09AfWZAt306AAjjUY6UKHhzjji00/3ei3olvJO N3R/seAtZbKPl5szhy9D08zSOf53Edvv5H7h0YL5s8wkqJ2rxaYA2QrE1eyKgrunQ55H JoVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c4si12766118pfh.421.2017.05.15.22.16.49; Mon, 15 May 2017 22:16:49 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751203AbdEPFQk (ORCPT + 25 others); Tue, 16 May 2017 01:16:40 -0400 Received: from conuserg-09.nifty.com ([210.131.2.76]:60467 "EHLO conuserg-09.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750713AbdEPFQj (ORCPT ); Tue, 16 May 2017 01:16:39 -0400 Received: from pug.e01.socionext.com (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-09.nifty.com with ESMTP id v4G5G9MK024114; Tue, 16 May 2017 14:16:10 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com v4G5G9MK024114 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1494911770; bh=Pfo1IUDR8ot0YYkZVl7KI2jQvBrpYp9BstEk/wOAlxs=; h=From:To:Cc:Subject:Date:From; b=zodNje9wm0ylhnQtCJlOaDiqAuaISCCSWZU+WciBoDhkGhgaOowPVW2GMWnvuPteX DM3Q6v/jV7TCHknxUdu3CqSnmcARuGVcxzBPt2ZVM45ixeJ4YiOQO+O7JdEPQEjIKJ 4q6LzuwbAMxg8txyIxT6Llrfzi5MDmId1iYOzCfeFTLT+rDXZrgY0vYJS8yLXPfm9G e1dEnhcq1RRirYdBZRkGAKmtIAX0GtlcmrSIXoR/RgrfxGmQyb1Nvj0gNI1z9eqkfZ 6BKAZbl5ZeXxmXAE94fZXZnVata+D3H0HAXcY7vPa5sNKdiyXhe0FfGN+zsKA3mAGx C5AQiImusMTSA== X-Nifty-SrcIP: [153.142.97.92] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: Dan Williams , Nicolas Dichtel , Masahiro Yamada , Michal Marek , linux-kernel@vger.kernel.org Subject: [PATCH v2] kbuild: skip install/check of headers right under uapi directories Date: Tue, 16 May 2017 14:15:03 +0900 Message-Id: <1494911703-16619-1-git-send-email-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 or 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 Signed-off-by: Masahiro Yamada --- Changes in v2: - Remove trailing slash from $(hdr-inst)=... of headers_check Makefile | 2 +- scripts/Makefile.headersinst | 43 +++++++++++++++++++++++++++---------------- 2 files changed, 28 insertions(+), 17 deletions(-) -- 2.7.4 Acked-by: Nicolas Dichtel diff --git a/Makefile b/Makefile index b400c06..b1ee4a4 100644 --- a/Makefile +++ b/Makefile @@ -1172,7 +1172,7 @@ headers_check_all: headers_install_all PHONY += headers_check headers_check: headers_install $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 - $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/ $(hdr-dst) HDRCHECK=1 + $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi $(hdr-dst) HDRCHECK=1 # --------------------------------------------------------------------------- # Kernel selftest diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index 6ba97a1..ce753a4 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst @@ -8,6 +8,29 @@ # # ========================================================================== +PHONY := __headers +__headers: + +include scripts/Kbuild.include + +srcdir := $(srctree)/$(obj) +subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.)) +# caller may set destination dir (when installing to asm/) +_dst := $(if $(dst),$(dst),$(obj)) + +# Recursion +__headers: $(subdirs) + +.PHONY: $(subdirs) +$(subdirs): + $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@ + +# Skip header install/check for include/uapi and arch/$(hdr-arch)/include/uapi. +# We have only sub-directories there. +skip-inst := $(if $(filter %/uapi,$(obj)),1) + +ifeq ($(skip-inst),) + # generated header directory gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) @@ -15,21 +38,14 @@ gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) kbuild-file := $(srctree)/$(obj)/Kbuild -include $(kbuild-file) -# called may set destination dir (when installing to asm/) -_dst := $(if $(dst),$(dst),$(obj)) - old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild ifneq ($(wildcard $(old-kbuild-file)),) include $(old-kbuild-file) endif -include scripts/Kbuild.include - installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) -srcdir := $(srctree)/$(obj) gendir := $(objtree)/$(gen) -subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.)) header-files := $(notdir $(wildcard $(srcdir)/*.h)) header-files += $(notdir $(wildcard $(srcdir)/*.agh)) header-files := $(filter-out $(no-export-headers), $(header-files)) @@ -88,11 +104,9 @@ quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files) $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \ touch $@ -PHONY += __headersinst __headerscheck - ifndef HDRCHECK # Rules for installing headers -__headersinst: $(subdirs) $(install-file) +__headers: $(install-file) @: targets += $(install-file) @@ -104,7 +118,7 @@ $(install-file): scripts/headers_install.sh \ $(call if_changed,install) else -__headerscheck: $(subdirs) $(check-file) +__headers: $(check-file) @: targets += $(check-file) @@ -113,11 +127,6 @@ $(check-file): scripts/headers_check.pl $(output-files) FORCE endif -# Recursion -.PHONY: $(subdirs) -$(subdirs): - $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@ - targets := $(wildcard $(sort $(targets))) cmd_files := $(wildcard \ $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) @@ -126,6 +135,8 @@ ifneq ($(cmd_files),) include $(cmd_files) endif +endif # skip-inst + .PHONY: $(PHONY) PHONY += FORCE FORCE: ;