2003-02-18 23:19:35

by Diego Calleja

[permalink] [raw]
Subject: buggy include path?

Including include/usb.h from a external module source (out of the kernel tree) causes
this:
In file included from /home/diego/kernel/unsta/include/linux/irq.h:19,
from /home/diego/kernel/unsta/include/asm/hardirq.h:6,
from /home/diego/kernel/unsta/include/linux/interrupt.h:9,
from /home/diego/kernel/unsta/include/linux/usb.h:15, <- file included
from w9968cf.h:38,
from w9968cf.c:57:
/home/diego/kernel/unsta/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory

However in include/asm/irq.h you can see:

#include <linux/config.h>
#include <linux/sched.h>
/* include comes from machine specific directory */
#include "irq_vectors.h"

so who is wrong here? This include cames out
of the specific machine directory; but it doesnt
seems a wrong include.

irq_vectors.h is at: include/asm-i386/mach-default/irq_vectors.h



Diego Calleja





2003-02-18 23:32:53

by Randy.Dunlap

[permalink] [raw]
Subject: Re: buggy include path?

On Wed, 19 Feb 2003 00:29:38 +0100
Arador <[email protected]> wrote:

| Including include/usb.h from a external module source (out of the kernel tree)
| causes this:
| In file included from /home/diego/kernel/unsta/include/linux/irq.h:19,
| from /home/diego/kernel/unsta/include/asm/hardirq.h:6,
| from /home/diego/kernel/unsta/include/linux/interrupt.h:9,
| from /home/diego/kernel/unsta/include/linux/usb.h:15, <- file included
| from w9968cf.h:38,
| from w9968cf.c:57:
| /home/diego/kernel/unsta/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory
|
| However in include/asm/irq.h you can see:
|
| #include <linux/config.h>
| #include <linux/sched.h>
| /* include comes from machine specific directory */
| #include "irq_vectors.h"
|
| so who is wrong here? This include cames out
| of the specific machine directory; but it doesnt
| seems a wrong include.
|
| irq_vectors.h is at: include/asm-i386/mach-default/irq_vectors.h

Actually it's in several places:
./include/asm-um/irq_vectors.h
./include/asm-i386/mach-default/irq_vectors.h
./include/asm-i386/mach-visws/irq_vectors.h
./include/asm-i386/mach-voyager/irq_vectors.h

and where it's included from is decided in linux/arch/i386/Makefile:
for example:
mflags-y += -Iinclude/asm-i386/mach-default

so the include directory is relative (ISTM).
Can the -Idirname be made more complete, e.g. by using
$TOPDIR or $MODLIB ... me wonders.
Or would that just be duplicating the default behavior?
Anyone?

--
~Randy

2003-02-18 23:38:26

by Diego Calleja

[permalink] [raw]
Subject: Re: buggy include path?

El d?a Wed, 19 Feb 2003 00:29:38 +0100
Arador <[email protected]> escribi?...

> Including include/usb.h from a external module source (out of the kernel tree) causes
> this:
> In file included from /home/diego/kernel/unsta/include/linux/irq.h:19,
> from /home/diego/kernel/unsta/include/asm/hardirq.h:6,
> from /home/diego/kernel/unsta/include/linux/interrupt.h:9,
> from /home/diego/kernel/unsta/include/linux/usb.h:15, <- file included
> from w9968cf.h:38,
> from w9968cf.c:57:
> /home/diego/kernel/unsta/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory

of course, w9968cf.c just includes <include/usb.h>, with -I/home/diego/kernel/unsta/include


Diego Calleja

2003-02-19 15:23:34

by Sam Ravnborg

[permalink] [raw]
Subject: Re: buggy include path?

On Wed, Feb 19, 2003 at 12:29:38AM +0100, Arador wrote:
> Including include/usb.h from a external module source (out of the kernel tree) causes
> this:
> In file included from /home/diego/kernel/unsta/include/linux/irq.h:19,
> from /home/diego/kernel/unsta/include/asm/hardirq.h:6,
> from /home/diego/kernel/unsta/include/linux/interrupt.h:9,
> from /home/diego/kernel/unsta/include/linux/usb.h:15, <- file included
> from w9968cf.h:38,
> from w9968cf.c:57:
> /home/diego/kernel/unsta/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory
>

Follow Documentations/modules.txt when compiling modules outside the
kernel tree.
That will fix it.

Sam

2003-02-19 15:22:31

by Sam Ravnborg

[permalink] [raw]
Subject: Re: buggy include path?

On Tue, Feb 18, 2003 at 03:39:19PM -0800, Randy.Dunlap wrote:
> Can the -Idirname be made more complete, e.g. by using
> $TOPDIR or $MODLIB ... me wonders.
> Or would that just be duplicating the default behavior?
> Anyone?

That would make moving a kernel tree requiring a recompile due to usage
of absolute paths.

Sam