<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-02-17 20:49 GMT+01:00 Tom Stellard <span dir="ltr"><<a href="mailto:tom@stellard.net" target="_blank">tom@stellard.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span>On Tue, Feb 17, 2015 at 08:15:09PM +0100, Daniel Albuschat wrote:<br>
> 2015-02-17 15:59 GMT+01:00 Tom Stellard <<a href="mailto:tom@stellard.net" target="_blank">tom@stellard.net</a>>:<br>
><br>
> > On Mon, Feb 16, 2015 at 10:38:52PM +0100, Daniel Albuschat wrote:<br>
> > > Hello there,<br>
> > ><br>
> > > tl;dr:<br>
> > > Is it a known behaviour that using llvm-3.4 and llvm-3.6 at the same time<br>
> > > in the same process (while llvm-3.6 is used from a linked shared library<br>
> > > and llvm-3.4 is dlopen'ed - with a strange detail: Especially if<br>
> > -rdynamic<br>
> > > is used when linking the program).<br>
> > > If so, is there a workaround?<br>
> > > If not, can it be fixed in llvm-3.6?<br>
> ><br>
> > The NVIDIA proprietary driver does not use mesa at all.  Also based on<br>
> > your backtrace, you are using llvmpipe and not nouveau.<br>
> ><br>
><br>
> Yeah, the backtrace was created from within VirtualBox. That driver, and<br>
> the nouveau driver, cause the same issue. The VMWare driver, too.<br>
><br>
><br>
> > I'm not a linking expert, but I have seen and fixed a few of these issues<br>
> > with Mesa.  In most cases the fix is to make sure that the llvm symbols<br>
> > in the mesa driver and also the llvm symbols in your application aren't<br>
> > being exported as global symbols.<br>
><br>
><br>
> How do I have control about how llvm symbols are being exported?<br>
<br>
</span>Mesa uses linker scripts to control this.<br>
<span><br>
> nm reports no exported symbols matching llvm:<br>
><br>
> daniel@ubuntu32-dev:~/projects/llvmcrash$ nm libcrashme.so | grep llvm<br>
>          U _ZN4llvm11LLVMContextC1Ev<br>
>          U _ZN4llvm11LLVMContextD1Ev<br>
<br>
</span>What about swrast_dri.so from Mesa?</blockquote><div><br></div><div>No llvm symbols, either:</div><div><br></div><div>daniel@ubuntu32-dev:~/projects/omni2/cbuild$ nm -DC  /usr/lib/i386-linux-gnu/dri/swrast_dri.so | grep llvm<br>         U draw_create_no_llvm<br>         U draw_get_shader_param_no_llvm<br><br></div><div>I'm out of ideas now... can I somehow log the pathes of libraries loaded in a process? Maybe I can find out whether llvm-3.4 loads some llvm-3.5 libraries or so. On the other hand, why would that only happen when llvm-3.5 is actually used? Shouldn't it solely depend on PATH / LD_LIBRARY_PATH which library is used?<br></div><div><br></div><div>It seems that dynamic libraries are far more complicated / far less straight forward on Linux than I thought...</div><div><br></div><div>Greetings,</div><div>Daniel Albuschat</div></div></div></div>