Hi, I saw two mm_init functions in the kernel source code. 1) init/main.c (http://lxr.linux.no/#linux+v2.6.38/init/main.c#L530) 2) kernel/fork.c (http://lxr.linux.no/#linux+v2.6.38/kernel/fork.c#L482) Are the above functions go inside a single binary? How this doesn't produce a redefinition error? Thanks, Vikram
On Tue, May 17, 2011 at 6:43 PM, Vikram Narayanan <vikram186@gmail.com> wrote:
Hi,
I saw two mm_init functions in the kernel source code. 1) init/main.c (http://lxr.linux.no/#linux+v2.6.38/init/main.c#L530) 2) kernel/fork.c (http://lxr.linux.no/#linux+v2.6.38/kernel/fork.c#L482)
Are the above functions go inside a single binary? How this doesn't produce a redefinition error?
Thanks, Vikram Both of these define mm_init as static so they aren't visible outside the source file that has them. Plus they don't use the EXPORT_SYMBOL macro to indicate that it can be called from elsewhere in the kernel. There is another mm_init function in drivers/block/umem.c as well which is also static.
Cheers, Greg
On Wed, May 18, 2011 at 7:49 AM, Greg <groglein@gmail.com> wrote:
On Tue, May 17, 2011 at 6:43 PM, Vikram Narayanan <vikram186@gmail.com> wrote:
Hi,
I saw two mm_init functions in the kernel source code. 1) init/main.c (http://lxr.linux.no/#linux+v2.6.38/init/main.c#L530) 2) kernel/fork.c (http://lxr.linux.no/#linux+v2.6.38/kernel/fork.c#L482)
Are the above functions go inside a single binary? How this doesn't produce a redefinition error?
Thanks, Vikram Both of these define mm_init as static so they aren't visible outside the source file that has them. Plus they don't use the EXPORT_SYMBOL macro to indicate that it can be called from elsewhere in the kernel. There is another mm_init function in drivers/block/umem.c as well which is also static. Thanks. (I haven't noticed the static there ;) )
- Thanks, Vikram
participants (2)
-
Greg -
Vikram Narayanan