From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932090AbcGGOqu (ORCPT ); Thu, 7 Jul 2016 10:46:50 -0400 Received: from terminus.zytor.com ([198.137.202.10]:50490 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750976AbcGGOqm (ORCPT ); Thu, 7 Jul 2016 10:46:42 -0400 Date: Thu, 7 Jul 2016 07:46:07 -0700 From: tip-bot for James Hogan Message-ID: Cc: j.anaszewski@samsung.com, tglx@linutronix.de, mmarek@suse.com, xypron.glpk@gmx.de, hpa@zytor.com, f.fainelli@gmail.com, ralf@linux-mips.org, linux-kernel@vger.kernel.org, arnd@arndb.de, mingo@kernel.org, james.hogan@imgtec.com, hauke@hauke-m.de, paul.burton@imgtec.com Reply-To: xypron.glpk@gmx.de, hpa@zytor.com, tglx@linutronix.de, j.anaszewski@samsung.com, mmarek@suse.com, james.hogan@imgtec.com, hauke@hauke-m.de, paul.burton@imgtec.com, ralf@linux-mips.org, f.fainelli@gmail.com, mingo@kernel.org, linux-kernel@vger.kernel.org, arnd@arndb.de In-Reply-To: <1466808144-23209-3-git-send-email-james.hogan@imgtec.com> References: <1466808144-23209-3-git-send-email-james.hogan@imgtec.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/build] kbuild: Remove stale asm-generic wrappers Git-Commit-ID: cda2c65f981d0c29805fd01ffce441c650ffe6cf X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: cda2c65f981d0c29805fd01ffce441c650ffe6cf Gitweb: http://git.kernel.org/tip/cda2c65f981d0c29805fd01ffce441c650ffe6cf Author: James Hogan AuthorDate: Fri, 24 Jun 2016 23:42:24 +0100 Committer: Thomas Gleixner CommitDate: Thu, 7 Jul 2016 15:58:45 +0200 kbuild: Remove stale asm-generic wrappers When a header file is removed from generic-y (often accompanied by the addition of an arch specific header), the generated wrapper file will persist, and in some cases may still take precedence over the new arch header. For example commit f1fe2d21f4e1 ("MIPS: Add definitions for extended context") removed ucontext.h from generic-y in arch/mips/include/asm/, and added an arch/mips/include/uapi/asm/ucontext.h. The continued use of the wrapper when reusing a dirty build tree resulted in build failures in arch/mips/kernel/signal.c: arch/mips/kernel/signal.c: In function ‘sc_to_extcontext’: arch/mips/kernel/signal.c:142:12: error: ‘struct ucontext’ has no member named ‘uc_extcontext’ return &uc->uc_extcontext; ^ Fix by detecting and removing wrapper headers in generated header directories that do not correspond to a filename in generic-y, genhdr-y, or the newly introduced generated-y. Reported-by: Jacek Anaszewski Reported-by: Hauke Mehrtens Reported-by: Heinrich Schuchardt Signed-off-by: James Hogan Acked-by: Arnd Bergmann Acked-by: Florian Fainelli Cc: linux-arch@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Paul Burton Cc: linux-kbuild@vger.kernel.org Cc: Ralf Baechle Cc: Michal Marek Link: http://lkml.kernel.org/r/1466808144-23209-3-git-send-email-james.hogan@imgtec.com Signed-off-by: Thomas Gleixner --- scripts/Makefile.asm-generic | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/Makefile.asm-generic b/scripts/Makefile.asm-generic index 045e0098..e4d017d5 100644 --- a/scripts/Makefile.asm-generic +++ b/scripts/Makefile.asm-generic @@ -13,11 +13,26 @@ include scripts/Kbuild.include # Create output directory if not already present _dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj)) +# Stale wrappers when the corresponding files are removed from generic-y +# need removing. +generated-y := $(generic-y) $(genhdr-y) $(generated-y) +all-files := $(patsubst %, $(obj)/%, $(generated-y)) +old-headers := $(wildcard $(obj)/*.h) +unwanted := $(filter-out $(all-files),$(old-headers)) + quiet_cmd_wrap = WRAP $@ cmd_wrap = echo "\#include " >$@ -all: $(patsubst %, $(obj)/%, $(generic-y)) +quiet_cmd_remove = REMOVE $(unwanted) +cmd_remove = rm -f $(unwanted) + +all: $(patsubst %, $(obj)/%, $(generic-y)) FORCE + $(if $(unwanted),$(call cmd,remove),) @: $(obj)/%.h: $(call cmd,wrap) + +PHONY += FORCE +.PHONY: $(PHONY) +FORCE: ;