PDA

View Full Version : Programs linked to libGL.so on sys with NVidia drv fails on sys with ATI drv



Carsten
01-22-2004, 03:03 PM
Hello all!

I'm currently developing an OpenGL app. under Linux. It's a Debian system with the NVidia driver (ver 5328) installed.

It seems that when I normally link to libGL.so, my program crashes with segmentation fault on other computers that have ATI boards and ATI drivers installed. The crash occurs on the first call to the glXGetProcAddressARB function.

Here is what I think is going on: Normally, libGL.so is a symlink to (a symlink to ...) libGL.so.1.2. However, when the NVidia driver is installed, it replaces the libGL.so.1.2 with an own file.
Then, when the so linked program is run on a system that has the original libGL.so.1.2 installed (as is the case on systems that have the ATI driver installed), there seems to be an ABI problem on calling the glXGetProcAddressARB function.

Btw: The other way round, that is, building the exactly same program in exactly the same way on the ATI machine, and running it then on the NVidia machine, works fine.

Now my questions: http://www.opengl.org/discussion_boards/ubb/wink.gif
- Has this ever been observed before? (I guess so.)
- What is the best way to remedy? (Except developing on the ATI system. http://www.opengl.org/discussion_boards/ubb/wink.gif ) Personally, I think the most straight-forward and preferable solution would be to get the original libGL.so.1.2 file back... but that will probably bomb the NVidia stuff(?).

Thank you very much for your help.

(Final note: The app. I'm developing is an advanced 3D engine in mature state - see http://www.Ca3D-Engine.de for details. http://www.opengl.org/discussion_boards/ubb/wink.gif )

Best,
Carsten

pkaler
01-22-2004, 03:54 PM
First of all, I've had a lot of problems with the 5328 drivers. (More on the user side rather than the dev side) Try to compile with the 4496 drivers and see if there is a difference.

It may be that the drivers were compiled with different versions of GCC.

Carsten
01-23-2004, 01:23 AM
First of all, I've had a lot of problems with the 5328 drivers. (More on the user side rather than the dev side) Try to compile with the 4496 drivers and see if there is a difference.
Well, I observed the problem with the 3xyz drivers as well with the 5328.


It may be that the drivers were compiled with different versions of GCC.
The version of GCC should not play a role, should it?

Best,
Carsten

pkaler
01-23-2004, 09:45 AM
Originally posted by Carsten:
The version of GCC should not play a role, should it?


The ABI changed for GCC 3.0 and then again for 3.1.

Carsten
01-25-2004, 05:02 AM
The ABI changed for GCC 3.0 and then again for 3.1.

Ahm, does that mean that programs written with GCC version X cannot link to modules/libraries created with GCC version Y (when Y!=X) ??
(Sorry, I'm no Linux expert, but I cannot believe that this is actually true...)
Where can I find more information about this?

How can it be solved?