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:
- Has this ever been observed before? (I guess so.)
- What is the best way to remedy? (Except developing on the ATI system. ) 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. )