complier issue compiling linmodem on (null)

Paul Iadonisi pri.nhlug at iadonisi.to
Thu Sep 5 09:12:46 EDT 2002


[Forgive me if this appears twice -- more fat-fingering]

  This is a heads up for anyone who hasn't seen it yet.  If the company
you work for or a company you do business with distributes binary only
modules for Red Hat (likely with wrapper code like the Lucent Winmodem
project), the be advised that a version that has be compiled with gcc v2
will not work with the kernel shipped with the Null beta, since it is
compiled with gcc v3.  See below for details.
  I deal with the ^$&*)(% LooseModem issue on a daily basis and it's
really pissing me off more lately.  I would like to personal assist with
the elimination of the software modem market.  When Linux takes over the
desktop market (;-)), we can finally advise these software modem makers
that they're hardware will never be certified for Linux use until
*fully* GPLed drivers exist for them (which will never happen, of
course).  We can do that now, of course, but it doesn't ring in the
right people's ears due to the low market share.
>  			-----------------------
> 
> 		Third Party Modules and the Null Beta
> 
> - Why can't I load some third party modules in the NULL beta
> 
> The insmod in the NULL beta looks for modules and kernels which do not have
> a matching gcc version. This is done because both the base and the Red Hat
> kernel ABI for gcc 2 and gcc 3 built kernels are not the same. This is due 
> to workarounds for old (egcs) compiler bugs which change the padding in
> kernel data structures.
> 
> Other vendors using gcc 3 series compilers received many strange bug 
> reports that turned out to be gcc 2 and gcc 3 module mixups. We saw the
> same problems and verified the cause in our earlier beta releases. In order to
> assist our customers Red Hat extended insmod to detect the problem case
> and display an error message.
> 
> - How do I solve this problem
> 
> If you have a third party module and rebuild it with a gcc3 series compiler
> against the NULL kernel then it will load. The kernel interface is not a
> binary stable one so you should always build modules against new kernels.
> There are specific exceptions here for the Advanced Server product where
> Red Hat provide certain ISV guarantees.
> 
> - I recompiled it and it didn't help
> 
> Some modules mix C source with object modules provided by the vendor. Notable
> examples include Highpoint, Nvidia and OSS. If the code in the binary part
> of the module references no Linux structures directly in any way then it
> should be safe to use. Insmod obviously cannot tell this itself and to protect
> users displays the error message.
> 
> If you know the driver binary pieces do not reference kernel data
> structures directly then you can use the "-f" option to insmod to override
> the checking code. 
> 
> End user reports suggest that the Nvidia driver performs as expected  with the 
> insmod -f option. However please remember that Red Hat does not provide base
> release support for kernels that have binary only modules loaded and this is not
> a Red Hat statement of compatibility.

-- 
-Paul Iadonisi
 Senior System Administrator
 Red Hat Certified Engineer / Local Linux Lobbyist
 Ever see a penguin fly?  --  Try Linux.
 GPL all the way: Sell services, don't lease secrets




More information about the gnhlug-discuss mailing list