2004-06-11 19:16:05

by Chris Friesen

[permalink] [raw]
Subject: kernel/module compiler version problem

I'm running 2.4.22, build with gcc 3.3.1, modutils 2.4.22.

I have an ATM driver that is shipped with a binary blob and a source code shim.
It compiles fine. When I go to load it, I get the following error:

"The module you are trying to load is compiled with a gcc
version 2 compiler, while the kernel you are running is compiled with
a gcc version 3 compiler. This is known to not work."

Presumably the binary blob was compiled with gcc 2.x? Is there any way to
override this? "insmod -f" doesn't seem to work.

Thanks,

Chris


2004-06-11 19:32:45

by Greg KH

[permalink] [raw]
Subject: Re: kernel/module compiler version problem

On Fri, Jun 11, 2004 at 03:16:00PM -0400, Chris Friesen wrote:
> I'm running 2.4.22, build with gcc 3.3.1, modutils 2.4.22.
>
> I have an ATM driver that is shipped with a binary blob and a source code
> shim.

Go ask the people who provided you the binary blob, sorry but no one
here can help you with this issue.

good luck,

greg k-h

2004-06-11 19:39:22

by Richard B. Johnson

[permalink] [raw]
Subject: Re: kernel/module compiler version problem

On Fri, 11 Jun 2004, Chris Friesen wrote:

> I'm running 2.4.22, build with gcc 3.3.1, modutils 2.4.22.
>
> I have an ATM driver that is shipped with a binary blob and a source code shim.
> It compiles fine. When I go to load it, I get the following error:
>
> "The module you are trying to load is compiled with a gcc
> version 2 compiler, while the kernel you are running is compiled with
> a gcc version 3 compiler. This is known to not work."
>
> Presumably the binary blob was compiled with gcc 2.x? Is there any way to
> override this? "insmod -f" doesn't seem to work.
>
> Thanks,
>
> Chris

Get a new blob from the blob vendor. Of course you may have just
installed a worm....

Cheers,
Dick Johnson
Penguin : Linux version 2.4.26 on an i686 machine (5570.56 BogoMips).
Note 96.31% of all statistics are fiction.


2004-06-11 19:52:54

by Chris Friesen

[permalink] [raw]
Subject: Re: kernel/module compiler version problem

Greg KH wrote:
> On Fri, Jun 11, 2004 at 03:16:00PM -0400, Chris Friesen wrote:
> > I'm running 2.4.22, build with gcc 3.3.1, modutils 2.4.22.
> >
> > I have an ATM driver that is shipped with a binary blob and a source
> code
> > shim.
>
> Go ask the people who provided you the binary blob, sorry but no one
> here can help you with this issue.

Heh...how did I know that was coming...

I realize I can't reasonably ask here about problems if things blow up. I was
actually more interested in exactly what the conflicts were between a binary
chunk compiled with gcc2 linked with source compiled with gcc3 and loaded into a
kernel compiled with gcc3.

I had hoped some of the modutils people might respond, since they obviously know
of some issues.

Chris

2004-06-11 19:59:48

by Chris Friesen

[permalink] [raw]
Subject: Re: kernel/module compiler version problem

Richard B. Johnson wrote:

> Get a new blob from the blob vendor. Of course you may have just
> installed a worm....

Ya, I know, new blob is next on the agenda. Unfortunately our older ATM cards
(which did have open drivers) went end-of-life, and I didn't get to pick the new
hardware. I'm stuck with it, there's no open-source driver available, and I
don't have the time to write one.

Chris

2004-06-13 06:34:21

by Keith Owens

[permalink] [raw]
Subject: Re: kernel/module compiler version problem

On Fri, 11 Jun 2004 15:16:00 -0400,
Chris Friesen <[email protected]> wrote:
>I'm running 2.4.22, build with gcc 3.3.1, modutils 2.4.22.
>
>I have an ATM driver that is shipped with a binary blob and a source code shim.
> It compiles fine. When I go to load it, I get the following error:
>
>"The module you are trying to load is compiled with a gcc
>version 2 compiler, while the kernel you are running is compiled with
>a gcc version 3 compiler. This is known to not work."
>
>Presumably the binary blob was compiled with gcc 2.x? Is there any way to
>override this? "insmod -f" doesn't seem to work.

That patch originally came from RedHat, and was included in modutils
2.4.22. From RH Bugzilla 73732.

"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."