compile error if CONFIG_BLOCK not enabled related to linux/ide.h include
bzolnier at gmail.com
Thu Jul 19 06:44:40 EST 2007
On Wednesday 18 July 2007, Kumar Gala wrote:
> On Jul 18, 2007, at 5:47 AM, Bartlomiej Zolnierkiewicz wrote:
> > Hi,
> > On Wednesday 18 July 2007, Kumar Gala wrote:
> >> M: bzolnier at gmail.com
> >> L: linux-ide at vger.kernel.org
> >> We get the following compile error if CONFIG_BLOCK isn't enabled:
> >> CC arch/powerpc/kernel/setup_32.o
> >> In file included from arch/powerpc/kernel/setup_32.c:14:
> >> include/linux/ide.h:558: error: expected specifier-qualifier-list
> >> before 'request_queue_t'
> >> include/linux/ide.h:696: warning: 'struct request' declared inside
> >> parameter list
> >> include/linux/ide.h:696: warning: its scope is only this
> >> definition or declaration, which is probably not what you want
> >> include/linux/ide.h:820: warning: 'struct request' declared inside
> >> parameter list
> >> include/linux/ide.h:853: error: field 'wrq' has incomplete type
> >> include/linux/ide.h:1205: error: expected ')' before '*' token
> >> make: *** [arch/powerpc/kernel/setup_32.o] Error 1
> >> make: *** [arch/powerpc/kernel] Error 2
> > include/linux/ide.h is exclusively for IDE subsystem
> >> What I'm trying to figure out is if include/linux/ide.h should be
> >> wrapped
> >> in a #if defined(CONFIG_IDE) || defined(CONFIG_IDE_MODULE) or if
> >> there is
> >> some other desired way to handle this.
> > Plese remove <linux/ide.h> include, there doesn't seem to be any
> > piece of
> > code in arch/powerpc/kernel/setup_32.c which needs it anyway.
> Its needed for:
> struct ide_machdep_calls ppc_ide_md;
> which gets defined in asm/ide.h which needs linux/ide.h for the defn
> of ide_init_hwif.
Ah, this is a PPC special case.
In this case I think the best solution for now is to just add #ifdefs
(the proper/clean solution would be adding IDE host drivers for PPC
platforms needing special handling).
More information about the Linuxppc-dev