<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><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">93103</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>llvm symbols leak through, cause trouble with software rendering in llvm-linked software
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>10.1
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Drivers/X11
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>tobi@schlueters.de
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>libmesa uses llvm in its software rendering path.  I'm trying to run via X
forwarding (and thus using software rendering) a software project on ubuntu
14.04 that uses OpenGL for visualization and links against its own copy of llvm
(via the root libraries, I don't think this matters, and they have recently put
in place a workaround for this problem, their bug report is here
<a href="https://sft.its.cern.ch/jira/browse/ROOT-7744">https://sft.its.cern.ch/jira/browse/ROOT-7744</a>).

When loading the mesa libraries I get a backtrace that looks as follows
(libCling is the interface to llvm):
#5  0x00007f3eff60deb1 in llvm::cl::AddLiteralOption(llvm::cl::Option&, char
const*) () from
/home/schlueter/src/belle2/externals/v01-01-01/Linux_x86_64/opt/root/lib/libCling.so
#6  0x00007f3ecadcfdcc in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-3.4.so.1
#7  0x00007f3f0867913a in ?? () from /lib64/ld-linux-x86-64.so.2
#8  0x00007f3f08679223 in ?? () from /lib64/ld-linux-x86-64.so.2
#9  0x00007f3f0867dc70 in ?? () from /lib64/ld-linux-x86-64.so.2
#10 0x00007f3f08678ff4 in ?? () from /lib64/ld-linux-x86-64.so.2
#11 0x00007f3f0867d3bb in ?? () from /lib64/ld-linux-x86-64.so.2
#12 0x00007f3f06cd902b in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#13 0x00007f3f08678ff4 in ?? () from /lib64/ld-linux-x86-64.so.2
#14 0x00007f3f06cd962d in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#15 0x00007f3f06cd90c1 in dlopen () from /lib/x86_64-linux-gnu/libdl.so.2
#16 0x00007f3edc84801c in ?? () from /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
#17 0x00007f3edc847719 in ?? () from /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
#18 0x00007f3edc828558 in ?? () from /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
#19 0x00007f3edc824f3b in ?? () from /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
#20 0x00007f3edc8256d0 in glXChooseVisual () from
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
#21 0x00007f3eddc7ffc1 in TGLWidget::CreateWindow(TGWindow const*, TGLFormat
const&, unsigned int, unsigned int, std::pair<void*, void*>&) () from
/home/schlueter/src/belle2/externals/v01-01-01/Linux_x86_64/opt/root/lib/libRGL.so
#22 0x00007f3eddc80500 in TGLWidget::Create(TGLFormat const&, TGWindow const*,
bool, bool, TGLPaintDevice const*, unsigned int, unsigned int) () from
/home/schlueter/src/belle2/externals/v01-01-01/Linux_x86_64/opt/root/lib/libRGL.so
#23 0x00007f3eddc80723 in TGLWidget::Create(TGWindow const*, bool, bool,
TGLPaintDevice const*, unsigned int, unsigned int) () from
/home/schlueter/src/belle2/externals/v01-01-01/Linux_x86_64/opt/root/lib/libRGL.so
#24 0x00007f3eddbf4801 in TGLEmbeddedViewer::CreateFrames() () from
/home/schlueter/src/belle2/externals/v01-01-01/Linux_x86_64/opt/root/lib/libRGL.so

The reason is that the symbols from the libllvm that libmesa is linked against
collide with the symbols of my already loaded llvm library.  I don't think
libmesa should load libraries in a way that pollutes the symbol namespace,
depending on the execution path taken.</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>