From: Paul Burton <paul.burton@imgtec.com> To: James Hogan <james.hogan@imgtec.com> Cc: Michal Marek <mmarek@suse.com>, linux-kernel@vger.kernel.org, Heinrich Schuchardt <xypron.glpk@gmx.de>, Arnd Bergmann <arnd@arndb.de>, Ralf Baechle <ralf@linux-mips.org>, Florian Fainelli <f.fainelli@gmail.com>, linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org, linux-mips@linux-mips.org Subject: Re: [PATCH v2 2/2] kbuild: Remove stale asm-generic wrappers Date: Thu, 21 Jan 2016 00:03:42 +0000 [thread overview] Message-ID: <20160121000342.GA7538@NP-P-BURTON> (raw) In-Reply-To: <1453210670-12596-3-git-send-email-james.hogan@imgtec.com> On Tue, Jan 19, 2016 at 01:37:50PM +0000, James Hogan wrote: > 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 <j.anaszewski@samsung.com> > Reported-by: Hauke Mehrtens <hauke@hauke-m.de> > Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > Signed-off-by: James Hogan <james.hogan@imgtec.com> > Cc: Michal Marek <mmarek@suse.com> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Ralf Baechle <ralf@linux-mips.org> > Cc: Paul Burton <paul.burton@imgtec.com> > Cc: Florian Fainelli <f.fainelli@gmail.com> > Cc: linux-kbuild@vger.kernel.org > Cc: linux-arch@vger.kernel.org > Cc: linux-mips@linux-mips.org > --- > Changes in v2: > - Rewrite a bit, drawing inspiration from Makefile.headersinst. > - Exclude genhdr-y and generated-y (thanks to kbuild test robot). > --- > 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 045e0098e962..24c29f16f029 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)) Hi James, Thanks a bunch for fixing this! Though is it my sleepy self or are all-files & old-headers misnomers? That is, isn't all-files actually a list of headers to be kept, and old-headers actually the list of all (header) files? Thanks, Paul > + > quiet_cmd_wrap = WRAP $@ > cmd_wrap = echo "\#include <asm-generic/$*.h>" >$@ > > -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: $(PHONY) > +PHONY += FORCE > +FORCE: ; > -- > 2.4.10 > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Paul Burton <paul.burton@imgtec.com> To: James Hogan <james.hogan@imgtec.com> Cc: Michal Marek <mmarek@suse.com>, linux-kernel@vger.kernel.org, Heinrich Schuchardt <xypron.glpk@gmx.de>, Arnd Bergmann <arnd@arndb.de>, Ralf Baechle <ralf@linux-mips.org>, Florian Fainelli <f.fainelli@gmail.com>, linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org, linux-mips@linux-mips.org Subject: Re: [PATCH v2 2/2] kbuild: Remove stale asm-generic wrappers Date: Thu, 21 Jan 2016 00:03:42 +0000 [thread overview] Message-ID: <20160121000342.GA7538@NP-P-BURTON> (raw) Message-ID: <20160121000342.Ybxd7ZymneQlId2OQbNIgeNvKu3PKiCr9vBXvSWZQqg@z> (raw) In-Reply-To: <1453210670-12596-3-git-send-email-james.hogan@imgtec.com> On Tue, Jan 19, 2016 at 01:37:50PM +0000, James Hogan wrote: > 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 <j.anaszewski@samsung.com> > Reported-by: Hauke Mehrtens <hauke@hauke-m.de> > Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > Signed-off-by: James Hogan <james.hogan@imgtec.com> > Cc: Michal Marek <mmarek@suse.com> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Ralf Baechle <ralf@linux-mips.org> > Cc: Paul Burton <paul.burton@imgtec.com> > Cc: Florian Fainelli <f.fainelli@gmail.com> > Cc: linux-kbuild@vger.kernel.org > Cc: linux-arch@vger.kernel.org > Cc: linux-mips@linux-mips.org > --- > Changes in v2: > - Rewrite a bit, drawing inspiration from Makefile.headersinst. > - Exclude genhdr-y and generated-y (thanks to kbuild test robot). > --- > 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 045e0098e962..24c29f16f029 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)) Hi James, Thanks a bunch for fixing this! Though is it my sleepy self or are all-files & old-headers misnomers? That is, isn't all-files actually a list of headers to be kept, and old-headers actually the list of all (header) files? Thanks, Paul > + > quiet_cmd_wrap = WRAP $@ > cmd_wrap = echo "\#include <asm-generic/$*.h>" >$@ > > -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: $(PHONY) > +PHONY += FORCE > +FORCE: ; > -- > 2.4.10 >
next prev parent reply other threads:[~2016-01-21 0:03 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-01-19 13:37 [PATCH v2 0/2] kbuild: Remove stale asm-generic wrappers James Hogan 2016-01-19 13:37 ` James Hogan 2016-01-19 13:37 ` [PATCH v2 2/2] " James Hogan 2016-01-19 13:37 ` James Hogan 2016-01-19 14:09 ` Arnd Bergmann 2016-01-19 14:09 ` Arnd Bergmann 2016-01-19 14:22 ` James Hogan 2016-01-19 14:22 ` James Hogan 2016-01-19 14:27 ` Arnd Bergmann 2016-02-23 9:51 ` James Hogan 2016-04-21 18:44 ` James Hogan 2016-04-21 18:44 ` James Hogan 2016-01-20 18:55 ` Florian Fainelli 2016-01-21 0:03 ` Paul Burton [this message] 2016-01-21 0:03 ` Paul Burton 2016-01-21 10:19 ` James Hogan 2016-01-21 10:19 ` James Hogan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20160121000342.GA7538@NP-P-BURTON \ --to=paul.burton@imgtec.com \ --cc=arnd@arndb.de \ --cc=f.fainelli@gmail.com \ --cc=james.hogan@imgtec.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kbuild@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mips@linux-mips.org \ --cc=mmarek@suse.com \ --cc=ralf@linux-mips.org \ --cc=xypron.glpk@gmx.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).