Hi Geert, Thanks for the testing! > When building an allmodconfig kernel, I got: [...] I don't see this on a clean allmodconfig build, nor when building the previous commit then the MCTP commit with something like: git checkout bc49d81^ make O=obj.allmodconfig allmodconfig make O=obj.allmodconfig -j16 git checkout bc49d81 make O=obj.allmodconfig -j16 - but it seems like it might be up to the ordering of a parallel build. >From your description, it does sound like it's not regenerating flask.h; the kbuild rules would seem to have a classmap.h -> flask.h dependency: $(addprefix $(obj)/,$(selinux-y)): $(obj)/flask.h quiet_cmd_flask = GEN $(obj)/flask.h $(obj)/av_permissions.h cmd_flask = scripts/selinux/genheaders/genheaders $(obj)/flask.h $(obj)/av_permissions.h targets += flask.h av_permissions.h $(obj)/flask.h: $(src)/include/classmap.h FORCE $(call if_changed,flask) however, classmap.h is #include-ed as part of the genheaders binary build, rather than read at runtime; maybe $(obj)/flask.h should depend on the genheaders binary, rather than $(src)/include/classmap.h ? If you can reproduce, can you compare the ctimes with: stat scripts/selinux/genheaders/genheaders security/selinux/flask.h in your object dir? Cheers, Jeremy