Subject: Re: linux-next: rr tree build failure

From: Rusty Russell <[email-masked]>
Date: Wed, 11 Nov 2009 19:03:21 +1030

On Wed, 11 Nov 2009 01:31:26 pm Stephen Rothwell wrote:
> Hi Rusty,
> 
> Today's linux-next build (x86_64 allmodconfig) failed like this:
> 
> .tmp_exports-asm.o: In function `__ksymtab_load_gs_index':
> (__ksymtab_sorted+0x5b40): undefined reference to `load_gs_index'
> 
> I have used the version of the rr tree from next-20091110 for today.

It's inline and exported when CONFIG_PARAVIRT=y.  Which is wrong.

Here's the patch I've put in my series for tomorrow's linux-next:

Subject: x86: don't export inline function

For CONFIG_PARAVIRT, load_gs_index is an inline function (it's #defined
to native_load_gs_index otherwise).

Exporting an inline function breaks the new assembler-based alphabetical
sorted symbol list:

Today's linux-next build (x86_64 allmodconfig) failed like this:

	.tmp_exports-asm.o: In function `__ksymtab_load_gs_index':
	(__ksymtab_sorted+0x5b40): undefined reference to `load_gs_index'

Signed-off-by: Rusty Russell <[email-masked]>
To: [email-masked]
Cc: [email-masked]

diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
--- a/arch/x86/kernel/x8664_ksyms_64.c
+++ b/arch/x86/kernel/x8664_ksyms_64.c
@@ -57,4 +57,6 @@ EXPORT_SYMBOL(__memcpy);
 
 EXPORT_SYMBOL(empty_zero_page);
 EXPORT_SYMBOL(init_level4_pgt);
-EXPORT_SYMBOL(load_gs_index);
+#ifndef CONFIG_PARAVIRT
+EXPORT_SYMBOL(native_load_gs_index);
+#endif