Linux kbuild/kconfig development
 help / color / mirror / Atom feed
* how to create early build deps?
@ 2025-04-17  2:55 Kees Cook
  2025-04-25  8:25 ` Nicolas Schier
  0 siblings, 1 reply; 3+ messages in thread
From: Kees Cook @ 2025-04-17  2:55 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-kbuild

Hi!

I am stumped...

I swear there was a time when changing the gcc-plugins would trigger a
full rebuild of all kernel sources. I tried to bisect where that stopped
happening, but it went back far enough that things stopped building with
my compiler at all. ;)

Anyway, I need this also for the Clang randstruct seed file -- if it
changes, we need to rebuild everything. I thought this worked back in
v5.19 when I moved the randstruct seed generation into scripts/basic[1],
but regenerating it doesn't trigger a rebuild (with v5.19 nor current
Linus nor linux-next):

$ make O=clang-all LLVM=1 allmodconfig kernel/seccomp.o
make[1]: Entering directory '/srv/code/clang-all'
...
  GENSEED scripts/basic/randstruct.seed
...
  CC      kernel/seccomp.o
make[1]: Leaving directory '/srv/code/clang-all'

$ rm clang-all/scripts/basic/randstruct.seed

$ make O=clang-all LLVM=1 kernel/seccomp.o
make[1]: Entering directory '/srv/code/clang-all'
  GEN     Makefile
  GENSEED scripts/basic/randstruct.seed
  DESCEND objtool
  CALL    ../scripts/checksyscalls.sh
  INSTALL libsubcmd_headers
make[1]: Leaving directory '/srv/code/clang-all'

kernel/seccomp.o doesn't get rebuilt :(

By what mechanism can I convince kbuild to rebuild everything if
randstruct.seed (or the gcc-plugins) are changed?

Thanks!

-Kees

[1] be2b34fa9be3 ("randstruct: Move seed generation into scripts/basic/")

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-04-29 12:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-17  2:55 how to create early build deps? Kees Cook
2025-04-25  8:25 ` Nicolas Schier
2025-04-29 12:49   ` Nicolas Schier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox