summaryrefslogtreecommitdiff
path: root/src/loader/Makefile.am
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2014-01-23 13:12:26 -0800
committerEric Anholt <eric@anholt.net>2014-01-27 09:36:24 -0800
commit4556c734700da2dd95d4f148d6929a537882bade (patch)
tree869f9ffc7cb84e4f69017837d91bc5f61c7df626 /src/loader/Makefile.am
parentd51dbe048afd2131eb3675e9cd868ce73325a61d (diff)
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>
Diffstat (limited to 'src/loader/Makefile.am')
-rw-r--r--src/loader/Makefile.am5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/loader/Makefile.am b/src/loader/Makefile.am
index 371dd575c0..bddf7ac35e 100644
--- a/src/loader/Makefile.am
+++ b/src/loader/Makefile.am
@@ -29,9 +29,6 @@ libloader_la_CPPFLAGS = \
$(VISIBILITY_CFLAGS) \
$(LIBUDEV_CFLAGS)
-libloader_la_LIBADD = \
- $(LIBUDEV_LIBS)
-
if !HAVE_LIBDRM
libloader_la_CPPFLAGS += \
-D__NOT_HAVE_DRM_H
@@ -39,7 +36,7 @@ else
libloader_la_CPPFLAGS += \
$(LIBDRM_CFLAGS)
-libloader_la_LIBADD += \
+libloader_la_LIBADD = \
$(LIBDRM_LIBS)
endif