I'm not sure the tangle is so easily undone. The first dependency I see is asm-offsets.c asm/processors.h linux/cpumask.h linux/kernel.h linux/bitops.h asm/bitops.h linux/irqflags.h asm/irqflags.h When compared to other architectures, the MIPS asm/bitops.h seems to include more files at the top, including linux/irqflags.h. Any suggestions? On Wed, Aug 29, 2012 at 7:01 PM, David Daney <ddaney.cavm@xxxxxxxxx> wrote: > On 08/29/2012 03:34 PM, Jim Quinlan wrote: >> >> irqflags.h depends on asm-offsets.h, but asm-offsets.h depends >> on irqflags.h when generating asm-offsets.h. > > > What is there in irqflags.h that is required by asm-offsets.c? > > Why can't the include tangle be undone so that that part can be factored out > to a separate file? > > > > >> Adding a definition >> to the top of asm-offsets.c allows us to break this circle. There >> is a similar define in bounds.c >> >> Signed-off-by: Jim Quinlan <jim2101024@xxxxxxxxx> >> --- >> arch/mips/kernel/asm-offsets.c | 1 + >> 1 files changed, 1 insertions(+), 0 deletions(-) >> >> diff --git a/arch/mips/kernel/asm-offsets.c >> b/arch/mips/kernel/asm-offsets.c >> index 6b30fb2..035f167 100644 >> --- a/arch/mips/kernel/asm-offsets.c >> +++ b/arch/mips/kernel/asm-offsets.c >> @@ -8,6 +8,7 @@ >> * Kevin Kissell, kevink@xxxxxxxx and Carsten Langgaard, >> carstenl@xxxxxxxx >> * Copyright (C) 2000 MIPS Technologies, Inc. >> */ >> +#define __GENERATING_OFFSETS_S >> #include <linux/compat.h> >> #include <linux/types.h> >> #include <linux/sched.h> >> >