[OpenAFS-devel] Re: openafs linux-kernelmodule not buildable on sparc

Daniel J. Priem daniel@flexserv.de
Sun, 25 Feb 2007 17:50:44 +0100


Hi,

Marcus Watts <mdw@umich.edu> writes:

> "Daniel J. Priem" <daniel@flexserv.de> writes:
>> To: openafs-devel@openafs.org
>> From: "Daniel J. Priem" <daniel@flexserv.de>
>> Subject: [OpenAFS-devel] openafs linux-kernelmodule not buildable on sparc
>> Sender: openafs-devel-admin@openafs.org
>> Date: Sat, 24 Feb 2007 08:11:46 +0100
>> 
>> Hi,
>> i ve tried to build a linux (2.6.18 to 2.6.20) openafs-kernelmodul(tried
>> from openafs 1.3 - 1.4.3-rc2) This always breaks with:
>> FATAL: modpost: GPL-incompatible module libafs.ko uses GPL-only symbol
>> 'sys_call_table'
>> On i386 i've no problems, it's absolut sparc specific (not sure what
>> will happen on ppc64)
>> In Linux modpost.c is a check which does breaks if a non-gpl modue
>> request a GPL-only symbol. So now i need a solution.
>> One solution is to disable the check inside modpost.c, but then i am
>> required to always build my own kernels. I am no longer able to run
>> distribution specific kernel. Have somebody a fix for openafs, which
>> solves this problem in an other(better) way?
>> 
>> Regards
>> Daniel
>
> When you say "distribution" - do you mean "as distributed by kernel.org"
> or "as distributed by <3rd party distributor X>?"

I mean as distributed by my ddistribution, but this doesnt matter.
It matchs also from kernel.org

> Is there any particularly reason you want to run linux & not solaris?

yes/no. I run linux on all of my server. So why not for my afs engines too?

>
> Is ppc64 linux important to you?

Right now not. It's only for your information

>
> You may also want to try openafs 1.5.15.  It is less
> conservative than the 1.4 series so might have improvements that
> haven't made it into 1.4 yet.

Doesnt matter.

>
> If you want to experiment, find the line in 
> src/afs/LINUX/osi_probe.c that says "extern SYSCALLTYPE sys_call_table[] __attribute__((weak));
> "
> and replace this with some other line, say
> #define sys_call_table ((SYSCALLTYPE*)0)
> or perhaps
> static SYSCALLTYPE sys_call_table[1];
> or possibly
> extern SYSCALLTYPE sys_call_table[] __attribute__((weak, alias("__this_symbol_should_not_exist__")));
> this should turn off the weak reference to sys_call_table that libafs.ko is
> probably making in your environment.  With luck, the other logic in osi_probe
> should then find sys_call_table some other way.  This is not a "Better" way,
> but it may be the best the linux developers will provide.
>
> 				-Marcus Watts


Thanks
Daniel
-- 
 .''`.
 : :' :      Daniel J. Priem
 `. `'       http://flexserv.de
   `-