[TriLUG] NVIDIA drivers on RH8 crash the system

Tom 'spot' Callaway tcallawa at redhat.com
Wed Oct 23 09:53:58 EDT 2002


On Wed, 2002-10-23 at 09:31, Tanner Lovelace wrote:
> On Wed, 2002-10-23 at 09:23, Jeremy Portzer wrote:
> 
> > Understand that RHL 8 uses a new version of gcc that is not binary
> > compatible with previous releases.  Since the nvidia drivers are
> > released as binary kernel modules, they will likely not work with a
> > kernel compiled with the new gcc.  
> 
> Actually, assuming the code (or at least the interface) is in C,
> it should work fine.  The C ABI (application binary interface)
> has been stable for well over 10 years (more than that really, but
> I can't say how much more).  The thing about the new GCC is that
> it changes the C++ ABI.  Since lots of things like KDE are written
> in C++, this is where you get the reports of complier incompatibilities.

Thats not exactly true...there was some C ABI changes in gcc 3.2.

Quoting from the Red Hat Linux 8.0 RELEASE-NOTES:

"Note that because of significant ABI fixes, the C++ compiler included
in GCC 3.2 produces code that is not binary compatible with previous
versions of GCC, including versions 3.1.x and 2.96. Additionally,
there are ABI fixes for the C compiler related to long long bitfields
and where __attribute__((aligned (xxx))) type definitions used as base
type bitfields work differently than using __attribute__((aligned
(xxx))) directly on the bitfield."

With regards to the kernel, you have to stay consistent with the
compiler revisions. If the kernel is built by gcc 3.2 (like it is in RHL
8.0) and you try to load a kernel module built with gcc 2.96 (or
anything older than 3.2)

Again, from the RELEASE-NOTES:
"The kernel included in Red Hat Linux 8.0 is compiled with GCC
version 3.2. Testing has shown that it is not possible to use kernel
modules compiled with older (GCC 2.96 or previous) GCC compilers with
GCC 3.2 compiled kernels. The kernel includes workarounds for older
GCC bugs that change the signatures of data structures. These
restrictions are not in use when GCC 3.2 is used. All kernel modules
included in Red Hat Linux 8.0 are compiled with GCC 3.2;
however, when using third-party modules it is important to make sure
that every module and its dependent objects, in their entirety, is
compiled with GCC 3.2. The modutils programs insmod and modprobe have
rudimentary checks for this and will prevent loading of modules in the
case of compiler version mismatches; these modules can be forced to
load via the -f parameter."

With all of that said, I rebuilt the NVIDIA_GLX & NVIDIA_kernel SRPMs on
my RHL 8.0 box with an nVidia Corporation NV15 [GeForce2 GTS], and I've
had no issues of note.

~spot
---
Tom "spot" Callaway <tcallawa(a)redhat*com> Red Hat Sales Engineer
Sair Linux and GNU Certified Administrator (LCA)
Red Hat Certified Engineer (RHCE)
GPG: D786 8B22 D9DB 1F8B 4AB7  448E 3C5E 99AD 9305 4260

The words and opinions reflected in this message do not necessarily
reflect those of my employer, Red Hat, and belong solely to me.

"Immature poets borrow, mature poets steal." --- T. S. Eliot




More information about the TriLUG mailing list