About EXPORT_SYMBOL
Hello All, I want to export a function named ext2_free_data() which is present in inode.c . This function is statically defined in this file. I omit the "static" keyword and exported it using EXPORT_SYMBOL(ext2_free_data). ext2_free_data() function declaration is not present in any header file , so I included its declaration in my own header file which I kept in fs/ext2 directory. Now when I insert my module using insmod command ,it shows a error : Unknown symbol in module. Kindly help me . -- Regards, Kashish
Hi kashish, On Thu, Feb 10, 2011 at 5:18 AM, kashish bhatia <koolest77@gmail.com> wrote:
Hello All, I want to export a function named ext2_free_data() which is present in inode.c . This function is statically defined in this file. I omit the "static" keyword and exported it using EXPORT_SYMBOL(ext2_free_data). ext2_free_data() function declaration is not present in any header file , so I included its declaration in my own header file which I kept in fs/ext2 directory.
So generally speaking, functions that are declared static were done that way for a reason.
Now when I insert my module using insmod command ,it shows a error : Unknown symbol in module.
Did you rebuild the kernel as well? The kernel where the exported symbol comes from must be rebuilt and you must load using that kernel. Dave Hylands
*yes I compiled the kernel again and then tried to insert my module. I think the function is not properly exporting.* -- Regards, Kashish
On Thu, Feb 10, 2011 at 23:23, kashish bhatia <koolest77@gmail.com> wrote:
yes I compiled the kernel again and then tried to insert my module. I think the function is not properly exporting.
not sure if it makes difference, but try EXPORT_SYMBOL_GPL() macro instead.... and see if it indeed works... -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
Hi Mulyadi, On Thu, Feb 10, 2011 at 9:22 AM, Mulyadi Santosa <mulyadi.santosa@gmail.com> wrote:
On Thu, Feb 10, 2011 at 23:23, kashish bhatia <koolest77@gmail.com> wrote:
yes I compiled the kernel again and then tried to insert my module. I think the function is not properly exporting.
not sure if it makes difference, but try EXPORT_SYMBOL_GPL() macro instead.... and see if it indeed works...
EXPORT_SYMBOL_GPL is more restrictive than EXPORT_SYMBOL. It only allows the symbol to be used by modules which have GPL module licesnce. Kashish, so you know which symbol is unknown? If you use insmod it should report which symbols are the unknown ones. Otherwise you can resort to running nm on your module to see what symbols it needs. Dave Hylands
Compiling the kernel should resolve the problem. EXPORT_SYMBOL_GPL() is more for modules that have GPL license. So, if you export symbol with GPL license, it is imperative to have GPL license for modules, accessing that symbol. Otherwise will EXPORT_SYMBOL it should be fine, to access by any module. In former case, it only warns at time of inserting the module for GPL license. Either case you should able to access the symbol --Sri. On Thu, Feb 10, 2011 at 1:04 PM, Dave Hylands <dhylands@gmail.com> wrote:
Hi Mulyadi,
On Thu, Feb 10, 2011 at 9:22 AM, Mulyadi Santosa <mulyadi.santosa@gmail.com> wrote:
On Thu, Feb 10, 2011 at 23:23, kashish bhatia <koolest77@gmail.com> wrote:
yes I compiled the kernel again and then tried to insert my module. I think the function is not properly exporting.
not sure if it makes difference, but try EXPORT_SYMBOL_GPL() macro instead.... and see if it indeed works...
EXPORT_SYMBOL_GPL is more restrictive than EXPORT_SYMBOL. It only allows the symbol to be used by modules which have GPL module licesnce.
Kashish, so you know which symbol is unknown?
If you use insmod it should report which symbols are the unknown ones. Otherwise you can resort to running nm on your module to see what symbols it needs.
Dave Hylands
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Sri.
participants (4)
-
Dave Hylands -
kashish bhatia -
Mulyadi Santosa -
Sri Ram Vemulpali