On 24 May 2017 at 15:21, Ian Abbott <abbotti@xxxxxxxxx> wrote: > If "include/linux/kernel.h" includes <linux/bug.h>, a circular > dependency is introduced Then don't. Can't we just create linux/build_bug.h and have that contain the BUILD_BUG related macros - they're really completely unrelated to all the asm-cruft bug.h needs to know about. build_bug.h can then include compiler.h and not much else to figure out how it may implement its macros. Then kernel.h can include build_bug.h, and we don't force each and every translation unit to include bug.h and everything that then pulls in. We just got rid of a lot of header bloat, let's try to keep it that way. Rasmus