<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>