non-static init in a basic kernel module
Hey, I was writing a basic hello world module. I am using Ubuntu, so I installed linux-headers package that corresponded to my kernel. It's strange because all of the examples that I saw (including from modules in the kernel itself) show things like the following for the init function: static int netcat_init(void) { ... return 0; } module_init(netcat_init); However, I was not able to get it to work with "static". My hello_world_init function looks like the following: int __init hello_world_init(void) { ... return 0; } module_init(hello_world_init); The command that is used to make the kernel module is the one suggested in Documentation/kbuild/modules.txt. It looks like this: make -C /lib/modules/`uname -r`/build M=$PWD Does anyone know why the "static" version would not work? Thanks, wt
On Mon, Jun 09, 2014 at 12:28:13AM -0700, Warren Turkal wrote:
Hey,
I was writing a basic hello world module. I am using Ubuntu, so I installed linux-headers package that corresponded to my kernel. It's strange because all of the examples that I saw (including from modules in the kernel itself) show things like the following for the init function:
static int netcat_init(void) { ... return 0; }
module_init(netcat_init);
However, I was not able to get it to work with "static". My hello_world_init function looks like the following:
int __init hello_world_init(void) { ... return 0; }
module_init(hello_world_init);
The command that is used to make the kernel module is the one suggested in Documentation/kbuild/modules.txt. It looks like this: make -C /lib/modules/`uname -r`/build M=$PWD
Does anyone know why the "static" version would not work?
What exactly were the errors you got?
Hi, To prevent namespace pollution static is being used but this problem is nothing to do with static and you should share Error Logs to know exact problem also pointed by Greg. Regards Sanjeev Sharma On Mon, Jun 9, 2014 at 12:58 PM, Warren Turkal <wt@penguintechs.org> wrote:
Hey,
I was writing a basic hello world module. I am using Ubuntu, so I installed linux-headers package that corresponded to my kernel. It's strange because all of the examples that I saw (including from modules in the kernel itself) show things like the following for the init function:
static int netcat_init(void) { ... return 0; }
module_init(netcat_init);
However, I was not able to get it to work with "static". My hello_world_init function looks like the following:
int __init hello_world_init(void) { ... return 0; }
module_init(hello_world_init);
The command that is used to make the kernel module is the one suggested in Documentation/kbuild/modules.txt. It looks like this: make -C /lib/modules/`uname -r`/build M=$PWD
Does anyone know why the "static" version would not work?
Thanks, wt
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (3)
-
Greg KH -
sanjeev sharma -
Warren Turkal