<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - llvm symbols leak through, cause trouble with software rendering in llvm-linked software"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=93103#c9">Comment # 9</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - llvm symbols leak through, cause trouble with software rendering in llvm-linked software"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=93103">bug 93103</a>
              from <span class="vcard"><a class="email" href="mailto:jfonseca@vmware.com" title="Jose Fonseca <jfonseca@vmware.com>"> <span class="fn">Jose Fonseca</span></a>
</span></b>
        <pre>(In reply to Emil Velikov from <a href="show_bug.cgi?id=93103#c6">comment #6</a>)
<span class="quote">> Check, if ever in doubt about the exposed symbols.

> libGL itself
> $ nm -CD --defined-only /lib/libGL.so | grep -v " gl"</span >
[...]
>
<span class="quote">> DRI module, used by libGL (do check all the "*_dri.so" found in /lib)
> $ nm -CD --defined-only /lib/xorg/modules/dri/swrast_dri.so</span >
[...]
<span class="quote">> 
> As you can see, nothing from LLVM/Clang is explicitly exported/leaked.</span >


My understanding from Tobias description is that the LLVM symbols from
/usr/lib/x86_64-linux-gnu/libLLVM-3.6.so.1 are clashing with a custom LLVM
build for cling -- <a href="https://root.cern.ch/cling-build-instructions">https://root.cern.ch/cling-build-instructions</a>

The real question is what symbols libLLVM-3.6.so provides, and 

$ nm -CD --defined-only /usr/lib/x86_64-linux-gnu/libLLVM-3.6.so.1

shows lot of them.


LLVM is used in lots of projects nowadays -- language interpreters, etc.   So
are OpenGL drivers -- they get loaded in all sort of processes.  So when distro
decided to use a shared LLVM for the opengl drivers to save a few bytes, they
basically gave the finger to everybody who needs to use bleeding edge LLVM and
OpenGL...


(In reply to Emil Velikov from <a href="show_bug.cgi?id=93103#c3">comment #3</a>)
<span class="quote">> > In addition to that, we probably also need to use a LD version script to
> > ensure that LLVM symbols don't pop in the dynamic symbol table.
> We have those for a while. </span >

I'm not sure it helps if the problem is is
/usr/lib/x86_64-linux-gnu/libLLVM-3.4.so.1  .  The only solution is if the
system libLLVM-X.X.so an unique symbol version/namespace, or maybe the
RTLD_LOCAL as you mentioned.

<span class="quote">> Atm only the autotools build uses them (hint hint
> scons).</span >

Sure.  I'll look into it.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>