From patchwork Tue May 16 04:35:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 99841 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp1844298qge; Mon, 15 May 2017 21:36:13 -0700 (PDT) X-Received: by 10.98.24.200 with SMTP id 191mr1021518pfy.207.1494909373269; Mon, 15 May 2017 21:36:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494909373; cv=none; d=google.com; s=arc-20160816; b=Qadopl8m9KwjrIreWXj/7F5BWOBNxEBkVB0TlwRcW51elzaVEj/e65bdwpeuQBIcuh 9peKMvVeNk/mYbZneUypWb1OoqcKgQRWnp9BnLcIanaopEvg6hp6UxdJqwAwk0rQ32YU eJ3f+HvAfouHxOzMNImLxh1CGy5Mm5mtMkvovcfIPZNJdiuyhvU2Nz2/OTSAdJropTge o0lOMPAyodjnRzd1ezZ4EqS8PmZD50QMi3i1unFOeDfW4slPIeaTdXXIDQImkRfJ9xbE UINlTIo6JXpEa/L5S86gBGsgUtmO1ZP9wxX7SKb5gYgv7doCkBnemAaMX544j172hLo0 AjZA== 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=TcANa84I9mgDcZW8DYl2cZj87s3lzTJVkltR2XDkGYY=; b=zbZP6XOd/vNFUEjMC8a1rwASBf3lFI1qxC1U7m3lqsPjP/T7svUxvoinvZ/acKqw1u XUGnDiTXd2puMKT9GznS7yvrwQXkYP8MPWHoq1eKttMMUrYimQXhNTDRkNKwym2tcbAu y5kv/Isb++2lExxN/MxQ9L0nR1I2DHzjqPccaCawD73thFlpLa9k09UdhSY09OXIOW0X c4h9K7+TWM5MVOK0fs3OA99Y4aq4dE/ITJwi36IqOBO58Zsr/0MHAgr0hg4yLNcsLQ0w XPaSsZT8Dvxa/oZsc/s3Bpm5jHS9eLJ1thep9UnEG+ZOqKDdYHM7pBvnPFnY1xtmgreo lyyg== 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 c2si12565704pfg.158.2017.05.15.21.36.12; Mon, 15 May 2017 21:36:13 -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 S1751178AbdEPEgI (ORCPT + 25 others); Tue, 16 May 2017 00:36:08 -0400 Received: from conuserg-08.nifty.com ([210.131.2.75]:26623 "EHLO conuserg-08.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750759AbdEPEgG (ORCPT ); Tue, 16 May 2017 00:36:06 -0400 Received: from pug.e01.socionext.com (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-08.nifty.com with ESMTP id v4G4ZZpk025515; Tue, 16 May 2017 13:35:36 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-08.nifty.com v4G4ZZpk025515 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1494909336; bh=TcANa84I9mgDcZW8DYl2cZj87s3lzTJVkltR2XDkGYY=; h=From:To:Cc:Subject:Date:From; b=azpiJxiK91cx3h09owLKA/9bDct7p27+zqnFBt2MJ7sxII26zJDcDw3EYcpWuesXa x0KxxiooZRsLbS+SR7ZPjcPiisCTFw1qLR9OW4jeSn6f83LIjcAVH1ZiHVvXsD1b1v 1iosnJiIcwfwBkzz4jN6fuZUkcfsodC0bSmqGccgn7zy8Ugew7zaMlMOc+4SMgC5VR PsJ4TG7sToisaSd8d4/jUXT7w4Z7ttwwtbGtl4RfCXsDdLVZYkdLl+oVeWJVRYW2uF ub7vFcraEbvMLGoS24xqIxFqHOUxTFb4AxMWvZQSwd2BlVPhu4EnWldR2QBo91gnPD QeCGbXBgU1SQQ== 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] kbuild: skip header install/check for right under uapi directories Date: Tue, 16 May 2017 13:35:30 +0900 Message-Id: <1494909330-24127-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 header install/check in include/uapi or arch/$(hdr-arch)/include/uapi. A good side-effect is the empty destination ${root}/usr/include/uapi will go away. Fixes: 61562f981e92 ("uapi: export all arch specifics directories") Reported-by: Dan Williams Signed-off-by: Masahiro Yamada --- scripts/Makefile.headersinst | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) -- 2.7.4 Tested-by: Dan Williams 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: ;