Re: [PATCH] objtool: remove generated files with make clean

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 28, 2019 at 09:12:19PM +0100, Robin Meijboom wrote:
> Hi Masahiro,
> 
> On 28-02-19 14:36, Masahiro Yamada wrote:
> > On Fri, Feb 15, 2019 at 11:15 AM Robin Meijboom <robin@xxxxxxxxxxxxx> wrote:
> >>
> >> Make clean currently does not remove the generated files for objtool:
> >> tools/objtool/objtool, tools/objtool/fixdep, and
> >> tools/objtool/arch/x86/lib/inat-tables.c.
> >>
> >> Clean these files up as part of make clean.
> >>
> >> Fixes: b9ab5ebb14ec ("objtool: Add CONFIG_STACK_VALIDATION option") and
> >> bug report 199485 (https://bugzilla.kernel.org/show_bug.cgi?id=199485).
> >>
> >> Signed-off-by: Robin Meijboom <robin@xxxxxxxxxxxxx>
> >> ---
> >> In the discussions I didn't find a reason for keeping the files, so I
> >> assume it is an oversight. Otherwise I would have expected them to be
> >> removed at least by make distconfig (which they are not).
> >>
> >> Tested by compiling, cleaning, compiling again, and booting on x86_64.
> >>
> >> diff --git a/Makefile b/Makefile
> >> index 141653226f3c..81a8149a805f 100644
> >> --- a/Makefile
> >> +++ b/Makefile
> >> @@ -1328,6 +1328,8 @@ endif # CONFIG_MODULES
> >>
> >>   # Directories & files removed with 'make clean'
> >>   CLEAN_DIRS  += $(MODVERDIR) include/ksym
> >> +CLEAN_FILES += tools/objtool/objtool tools/objtool/fixdep \
> >> +           tools/objtool/arch/$(ARCH)/lib/inat-tables.c
> >>
> >>   # Directories & files removed with 'make mrproper'
> >>   MRPROPER_DIRS  += include/config usr/include include/generated          \
> >>
> > 
> > 
> > 
> > I see the same artifacts are cleaned up by tools/objtool/Makefile:
> > 
> > https://github.com/torvalds/linux/blob/v5.0-rc7/tools/objtool/Makefile#L59
> > 
> > 
> > So, this patch proves the 'clean' target
> > in tools/objtool/Makefile is useless.
> > 
> 
> True. I believe this is because kbuild does not descend into that directory
> as it does with the other directories. It works if you issue 'make clean'
> from tools or tools/objtool.

Right.  Objtool is intended to be a standalone tool, though it's
currently a bit kernel-specific.  So a clean target within tools/objtool
makes sense I think.

> > BTW, 'make clean' must keep all the generated files
> > that are needed to compile external modules.
> > 
> > I guess cleaning objtool is wrong.
> 
> I was considering the same. However, I did not find this in the discussions,
> and as you pointed out the authors have included these items under the
> 'make clean' target in tools/objtool/Makefile (which does not work for the
> above reason).
> 
> Additionally, if cleaning objtool is wrong, I would expect it to be at
> least included in 'make distclean' or 'make mrproper' target (which it is
> not).
> 
> Josh, feel free to comment on the above.

Objtool is needed for module builds, so it should *not* be removed with
'make clean' from the top-level directory.

I guess it makes sense to remove it for mrproper (and by extension,
distclean).  Maybe mrproper could use tools/objtool's clean target
somehow.

-- 
Josh



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux