Powered by Linux
Re: Makefile question — Semantic Matching Tool

Re: Makefile question

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

 



On Thu, 5 Dec 2024 at 13:17, Oleg Drokin <green@xxxxxxxxxxxxxx> wrote:
>
> On Thu, 2024-12-05 at 13:44 +0300, Dan Carpenter wrote:
> > I recently changed symbol.h
> >
> > https://lore.kernel.org/all/5b8d0dee-8fb6-45af-ba6c-7f74aff9a4b8@stanley.mountain/
> >
> > Ideally that would make basically every single file rebuild, but it
> > doesn't.  That means that "enum type" is wrong, which doesn't seem to
> > cause any crashes but it completely breaks the flow analysis so the
> > output is garbage.  Garbage output is way worse than crashing.
> >
> > Does anyone know how to fix Makefiles?
>
> Does not look like it's listed in the list of files that objects depend
> on?
> I am not sure what is LIB_H since it's not defined anywhere.
>
> There are various autodep tools to generate real dependencies, but I
> suspect you can just specify *.h so any header file rebuilds
> everything?

That would be overkill I think.

The Makefile already seems to have the proper logic for generating the
.foo.o.d dependency files, but I think the issue is at the end:

# GCC's dependencies
-include $(OBJS:%.o=.%.o.d)

and $(OBJS) does not contains $(SMATCH_OBJS).

Adding SMATCH_OBJS to OBJS may have some other random effects, so I
think the simplest is to just add another line

-include $(SMATCH_OBJS:%.o=.%.o.d)

Then touching any .h file should rebuild exactly the .c files using that.

Rasmus




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux