linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Randy.Dunlap" <rddunlap@osdl.org>
To: Carl Thompson <cet@carlthompson.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Problems compiling modules outside of tree in 2.6.0test1
Date: Tue, 15 Jul 2003 10:36:08 -0700	[thread overview]
Message-ID: <20030715103608.38bf17f8.rddunlap@osdl.org> (raw)
In-Reply-To: <1058251587.eec14da73ec3b@carlthompson.net>

On Mon, 14 Jul 2003 23:46:27 -0700 Carl Thompson <cet@carlthompson.net> wrote:

| [This problem still exists in Linux 2.6.0test1]
| 
| I am not on the kernel mailing list so please CC with any responses.  I am
| new to this kernel / module stuff so if I am doing something obviously
| wrong please correct me gently!
| 
| Hello,
| 
|      I have noticed a problem when compiling kernel modules outside of the
| kernel tree for 2.5(.75).  I am compiling a 3rd party network module for
| 2.5 and it needs to include "linux/netdevice.h" .  This file includes a
| bunch of other kernel headers which in turn include more kernel headers.
| This eventually gets to "asm/irq.h" and on my architechture (i386) this
| file has the line
| 
|    #include "irq_vectors.h"
| 
|      The problem is that this "irq_vectors.h" file is not found in the same
| directory as "irq.h" but in a different directory that is explicitly added
| to the include path for the kernel in "arch/i386/Makefile" .   This is just
| fine for kernel compiles using the kernel makefiles, but for stuff outside
| of the tree it means that "irq_vectors.h" won't be found.  A solution would
| be to to duplicate the relevant sections of the kernel's architecture
| specific makefile stuff to calculate and add the include path myself, but
| this seems unclean and would require me to add more architecture specific
| voodoo for each architecture to be supported.
| 
|      I believe the proper solution would be for the kernel build system to
| create a symbolic link to "irq_vectors.h" in "asm-i386/" just as "asm/"
| itself is a symbolic link to "asm-i386/" instead of adding an include path
| in the architecture specific makefile that breaks out-of-tree compiles.

Are you using the expected style of Makefile?
See linux/Documentation/modules.txt and
linux/Documentation/kbuild/makefiles.txt .

For a outside-the-kernel-tree module that I just built, I don't
have this problem.  I modified this external module to printk()
the value of NR_IRQS (from irq_vectors.h) with no problems.

Here is my Makefile:
# makefile for oops_test/dump*.c
# Randy Dunlap, 2003-03-12
# usage:
# cd /path/to/kernel/source && make SUBDIRS=/path/to/source/oops_test/ modules

CONFIG_OOPS_TEST=m

obj-m := dump_test.o

# dump_test-objs := dump_test.o

clean-files := *.o

# fini;



--
~Randy
| http://developer.osdl.org/rddunlap/ | http://www.xenotime.net/linux/ |

      parent reply	other threads:[~2003-07-15 17:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-15  6:46 Problems compiling modules outside of tree in 2.6.0test1 Carl Thompson
2003-07-15  8:40 ` Martin Zwickel
2003-07-15 16:48   ` Carl Thompson
2003-07-15 17:36 ` Randy.Dunlap [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030715103608.38bf17f8.rddunlap@osdl.org \
    --to=rddunlap@osdl.org \
    --cc=cet@carlthompson.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).