Bug 73732 - Kernels compiled with gcc 3.2 can't use modules compiled with gcc 2.96
Summary: Kernels compiled with gcc 3.2 can't use modules compiled with gcc 2.96
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: modutils
Version: 7.3
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Arjan van de Ven
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-09-09 18:03 UTC by Arjan van de Ven
Modified: 2007-04-18 16:46 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2003-04-25 23:04:41 UTC
Embargoed:


Attachments (Terms of Use)

Description Arjan van de Ven 2002-09-09 18:03:53 UTC
Third Party Modules and the Red Hat Linux 8.0

- Why can't I load some third party modules in Red Hat Linux 8.0

The insmod in Red Hat Linux 8.0 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 RHL8.0 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.


Note You need to log in before you can comment on or make changes to this bug.