[LLVMdev] Segfault when using llvm-3.6 and OpenGL at the same time on Linux (with mesa, which uses llvm-3.4)

Tom Stellard
2015-02-17T19:49:00Z

On Tue, Feb 17, 2015 at 08:15:09PM +0100, Daniel Albuschat
wrote:
> 2015-02-17 15:59 GMT+01:00 Tom Stellard <tom at stellard.net>:
>
> > On Mon, Feb 16, 2015 at 10:38:52PM +0100, Daniel Albuschat wrote:
> > > Hello there,
> > >
> > > tl;dr:
> > > Is it a known behaviour that using llvm-3.4 and llvm-3.6 at the
same time
> > > in the same process (while llvm-3.6 is used from a linked shared
library
> > > and llvm-3.4 is dlopen'ed - with a strange detail: Especially
if
> > -rdynamic
> > > is used when linking the program).
> > > If so, is there a workaround?
> > > If not, can it be fixed in llvm-3.6?
> >
> > The NVIDIA proprietary driver does not use mesa at all.  Also based on
> > your backtrace, you are using llvmpipe and not nouveau.
> >
>
> Yeah, the backtrace was created from within VirtualBox. That driver, and
> the nouveau driver, cause the same issue. The VMWare driver, too.
>
>
> > I'm not a linking expert, but I have seen and fixed a few of these
issues
> > with Mesa.  In most cases the fix is to make sure that the llvm
symbols
> > in the mesa driver and also the llvm symbols in your application
aren't
> > being exported as global symbols.
>
>
> How do I have control about how llvm symbols are being exported?
>

Mesa uses linker scripts to control this.

> nm reports no exported symbols matching llvm:
>
> daniel at ubuntu32-dev:~/projects/llvmcrash$ nm libcrashme.so | grep llvm
>          U _ZN4llvm11LLVMContextC1Ev
>          U _ZN4llvm11LLVMContextD1Ev
>

What about swrast_dri.so from Mesa?

-Tom

> Thanks!
> Daniel