Subject: Re: linux-next: Tree for January 18 (__modver_version_show)

From: Rusty Russell <[email-masked]>
Date: Thu, 20 Jan 2011 08:48:24 +1030

On Thu, 20 Jan 2011 02:42:19 am Randy Dunlap wrote:
> >> On Tue, 18 Jan 2011 09:17:49 -0800 Randy Dunlap <[email-masked]> wrote:
> >>>
> >>> I'm seeing this on several builds (i386 and x86_64):
> >>>
> >>> lib/built-in.o:(__modver+0x8): undefined reference to `__modver_version_show'
> >>> lib/built-in.o:(__modver+0x2c): undefined reference to `__modver_version_show'
...
> You hit the nail.  They do not have SYSFS enabled.

Thanks, does this fix it?

Thanks,
Rusty.

module: fix linker error for MODULE_VERSION when !MODULE and CONFIG_SYSFS=n

lib/built-in.o:(__modver+0x8): undefined reference to `__modver_version_show'
lib/built-in.o:(__modver+0x2c): undefined reference to `__modver_version_show'

Simplest to just not emit anything: if they've disabled SYSFS they probably
want the smallest kernel possible.

Reported-by: Randy Dunlap <[email-masked]>
Signed-off-by: Rusty Russell <[email-masked]>

diff --git a/include/linux/module.h b/include/linux/module.h
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -168,7 +168,7 @@ extern struct module __this_module;
   local headers in "srcversion".
 */
 
-#ifdef MODULE
+#if defined(MODULE) || !defined(CONFIG_SYSFS)
 #define MODULE_VERSION(_version) MODULE_INFO(version, _version)
 #else
 #define MODULE_VERSION(_version)					\