Ingo Molnar wrote: > * Jeremy Fitzhardinge <jeremy at goop.org> wrote: > > >> =================================================================== >> --- a/arch/i386/kernel/vmlinux.lds.S >> +++ b/arch/i386/kernel/vmlinux.lds.S >> @@ -21,6 +21,9 @@ >> #include <asm/page.h> >> #include <asm/cache.h> >> #include <asm/boot.h> >> + >> +#undef ENTRY >> +#undef ALIGN >> > > hm, what's this? The reason is not documented. > Good point; I'll add some comments. The reason is that asm/linkage.h ends up being included as a result of the other header file changes, and it conflicts with the use of ENTRY and ALIGN here. But its possible that asm/linkage isn't needed anymore; that would be ideal if true. >> +#ifdef CONFIG_PARAVIRT >> +/* After pte_t, etc, have been defined */ >> +#include <asm/paravirt.h> >> +#endif >> > > hm - there's already a CONFIG_PARAVIRT conditional in > asm-i386/paravirt.h. > Yes, but it happens after asm/paravirt.h has already included some things, and it ends up causing problems. paravirt.h still defines various stub functions in the !CONFIG_PARAVIRT case, so it needs to do the includes either way. J