At Taodyne, we are developing a 3D presentation software called Tao Presentations. It works well on Linux, except with Gallium3D drivers (e.g. under VMware or on systems with software fallback; currently testing on an ATI ES 1000...)

The problem is a crash very early, simply trying to create a GLX context. The stack trace looks like this:

My question is: what precautions should a program using LLVM take to avoid interfering with the LLVM pipe?

07-25-2012, 01:59 AM

christophe3d

Should the application have to protect its LLVM symbols?

Here is the solution we applied in our case. In the library which uses LLVM, we used the following link option:

Code:

-Wl,--exclude-libs,ALL

This instructs the linker to make the LLVM symbols invisible to the outside world. As a result, Gallium3D no longer attempts to use "our" LLVM in llvmpipe.

I believe we shouldn't have to do that. I see no reason why the LLVM inside Gallium3D should be visible to the outside world at all, or why Gallium3D should interact with the LLVM in the application at all. This is one case where I feel that Gallium3D would be better off linking to LLVM statically and hiding the symbols.

Basically, a graphics driver shouldn't crash an application that happens to use (a possibly different version of) one of the libraries it uses.

What do you think?

07-25-2012, 02:39 AM

RussianNeuroMancer

Offtopic

Just to let you know: x86_64 builds of Tao Presentations Discovery is not available (404).

07-25-2012, 03:53 AM

JeromeAtTaodyne

404

Quote:

Originally Posted by RussianNeuroMancer

Just to let you know: x86_64 builds of Tao Presentations Discovery is not available (404).