loader: Use dlsym to get our udev symbols instead of explicit linking.
authorEric Anholt <eric@anholt.net>
Thu, 23 Jan 2014 21:12:26 +0000 (13:12 -0800)
committerEric Anholt <eric@anholt.net>
Mon, 27 Jan 2014 17:36:24 +0000 (09:36 -0800)
commit4556c734700da2dd95d4f148d6929a537882bade
tree869f9ffc7cb84e4f69017837d91bc5f61c7df626
parentd51dbe048afd2131eb3675e9cd868ce73325a61d
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 <keithp@keithp.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Tested-by: Alexandre Demers <alexandre.f.demers@gmail.com>
Tested-by: Mike Lothian <mike@fireburn.co.uk>
configure.ac
src/egl/main/Makefile.am
src/loader/Makefile.am
src/loader/loader.c