<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - loader.c:71:19: fatal error: dlfcn.h: No such file or directory"
href="https://bugs.freedesktop.org/show_bug.cgi?id=74122">74122</a>
</td>
</tr>
<tr>
<th>Keywords</th>
<td>regression
</td>
</tr>
<tr>
<th>CC</th>
<td>alexandre.f.demers@gmail.com, eric@anholt.net, keithp@keithp.com, mike@fireburn.co.uk
</td>
</tr>
<tr>
<th>Assignee</th>
<td>mesa-dev@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Summary</th>
<td>loader.c:71:19: fatal error: dlfcn.h: No such file or directory
</td>
</tr>
<tr>
<th>Severity</th>
<td>blocker
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux (All)
</td>
</tr>
<tr>
<th>Reporter</th>
<td>vlee@freedesktop.org
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86-64 (AMD64)
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Component</th>
<td>Other
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr></table>
<p>
<div>
<pre>mesa: 3f3aafbfeeb3939cb5cf710954ccefb8bbe9cff9
$ scons platform=windows toolchain=crossmingw machine=x86_64
[...]
Compiling src/loader/loader.c ...
src/loader/loader.c:71:19: fatal error: dlfcn.h: No such file or directory
#include <dlfcn.h>
^
4556c734700da2dd95d4f148d6929a537882bade is the first bad commit
commit 4556c734700da2dd95d4f148d6929a537882bade
Author: Eric Anholt <<a href="mailto:eric@anholt.net">eric@anholt.net</a>>
Date: Thu Jan 23 13:12:26 2014 -0800
loader: Use dlsym to get our udev symbols instead of explicit linking.
Steam links against libudev.so.0, while we're linking against
libudev.so.1. The result is that the symbol names (which are the same in
the two libraries) end up conflicting, and some of the usage of .so.1
calls the .so.0 bits, which have different internal structures, and
segfaults happen.
By using a dlopen() with RTLD_LOCAL, we can explicitly look for the
symbols we want, while they get the symbols they want.
Reviewed-by: Keith Packard <<a href="mailto:keithp@keithp.com">keithp@keithp.com</a>>
Reviewed-by: Kristian Høgsberg <<a href="mailto:krh@bitplanet.net">krh@bitplanet.net</a>>
Tested-by: Alexandre Demers <<a href="mailto:alexandre.f.demers@gmail.com">alexandre.f.demers@gmail.com</a>>
Tested-by: Mike Lothian <<a href="mailto:mike@fireburn.co.uk">mike@fireburn.co.uk</a>>
:100644 100644 33ac92259485ffdbd572f1d1d515f4b0912d2eda
d266d96b67478c8b86498d2851a925b0ecd774c9 M configure.ac
:040000 040000 b182b18567800d07af87ee1fc6ea0cf3240b2843
984c15307040226fd44d1cd84fa0e09e5ac26a90 M src
bisect run success</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>