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