Re: [RFC] Circular include dependencies

From: Andrew Morton
Date: Fri May 23 2008 - 21:17:48 EST


On Fri, 23 May 2008 14:20:34 +0100 Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:

> Hi,
>
> Having discovered some circular include dependencies in the ARM header
> files which were causing build issues, I created a script to walk ARM
> includes and report any similar issues found - which includes traversing
> any referenced linux/ includes.
>
> It identified the following two in include/linux/:
>
> linux/mmzone.h <- linux/memory_hotplug.h <- linux/mmzone.h
> linux/mmzone.h <- linux/topology.h <- linux/mmzone.h
>
> Checking them by hand reveals that these are real. Whether they're
> capable of causing a problem or not, I'm not going to comment on.
> However, they're not a good idea and someone should probably look at
> resolving the loops.

(cc's added).

Thanks.

I'm not sure who we could tap for the topology.h one.

A suitable (and often good) way of solving this is to identify the
things which a.h needs from b.h and hoist them out into a new c.h and
include that from both a.h and b.h.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/