Hi,
I have 2 modules. The first one uses EXPORT_SYMBOL to make some function
available to other modules. These prototypes for these functions were
also put in a header file. Now the second module uses the functions the
functions defined in the first module by and includes the afore
mentioned header file. However when i'm compiling the module, I get a
symbol underfined warning. When I load the module it works as expected.
Is there any way to get rid of these warnings.
Another problem I'm having is that when I load the second module I get
`no version for "rbnode_initialize" found: kernel tainted.'
(rbnode_initialize is one of the functions exported by the first
module). Both MODULE_LICENSE("GPL"); and MODULE_VERSION are declared in
the two modules. Is there anything I'm missing?
Thanks
Josef Galea
On Mon, Mar 28, 2005 at 01:10:35PM +0200, Josef E. Galea wrote:
> Hi,
>
> I have 2 modules. The first one uses EXPORT_SYMBOL to make some function
> available to other modules. These prototypes for these functions were
> also put in a header file. Now the second module uses the functions the
> functions defined in the first module by and includes the afore
> mentioned header file. However when i'm compiling the module, I get a
> symbol underfined warning. When I load the module it works as expected.
> Is there any way to get rid of these warnings.
>
> Another problem I'm having is that when I load the second module I get
> `no version for "rbnode_initialize" found: kernel tainted.'
> (rbnode_initialize is one of the functions exported by the first
> module). Both MODULE_LICENSE("GPL"); and MODULE_VERSION are declared in
> the two modules. Is there anything I'm missing?
You need to compile both modules at the same time.
Do something like this for your two modules foo and bar:
modules/Makefile
obj-y := foo/ bar/
modules/foo/ <= Your foo module
modules/bar/ <= Your bar module
Then when building the modules stay in modules/ and
execute:
make -C <path-to-kernel-src> M=`pwd`
And to install modules:
make -C <path-to-kernel-src> M=`pwd` modules_install
Sam
Sam Ravnborg wrote:
>On Mon, Mar 28, 2005 at 01:10:35PM +0200, Josef E. Galea wrote:
>
>
>>Hi,
>>
>>I have 2 modules. The first one uses EXPORT_SYMBOL to make some function
>>available to other modules. These prototypes for these functions were
>>also put in a header file. Now the second module uses the functions the
>>functions defined in the first module by and includes the afore
>>mentioned header file. However when i'm compiling the module, I get a
>>symbol underfined warning. When I load the module it works as expected.
>>Is there any way to get rid of these warnings.
>>
>>Another problem I'm having is that when I load the second module I get
>>`no version for "rbnode_initialize" found: kernel tainted.'
>>(rbnode_initialize is one of the functions exported by the first
>>module). Both MODULE_LICENSE("GPL"); and MODULE_VERSION are declared in
>>the two modules. Is there anything I'm missing?
>>
>>
>
>You need to compile both modules at the same time.
>Do something like this for your two modules foo and bar:
>
>modules/Makefile
>obj-y := foo/ bar/
>modules/foo/ <= Your foo module
>modules/bar/ <= Your bar module
>
>Then when building the modules stay in modules/ and
>execute:
>make -C <path-to-kernel-src> M=`pwd`
>
>And to install modules:
>make -C <path-to-kernel-src> M=`pwd` modules_install
>
> Sam
>
>
>
Thanks for your help. That solved both the warnings and the kernel
tainted message.
Josef