summaryrefslogtreecommitdiff
path: root/README.markdown
diff options
context:
space:
mode:
authorJosé Fonseca <jose.r.fonseca@gmail.com>2012-10-18 13:25:45 +0100
committerJosé Fonseca <jose.r.fonseca@gmail.com>2012-10-18 13:25:45 +0100
commit4b9e58e55f107d269fb973a1daac04e0d0467f24 (patch)
tree86d7efb4a0777f16d83c947e756973595f19d993 /README.markdown
parent6c9eef5704cf6ca132cadc49231708158ed3564c (diff)
Improvement LD_LIBRARY_PATH explanation.
Diffstat (limited to 'README.markdown')
-rw-r--r--README.markdown19
1 files changed, 11 insertions, 8 deletions
diff --git a/README.markdown b/README.markdown
index ea886aa5..7d858371 100644
--- a/README.markdown
+++ b/README.markdown
@@ -118,14 +118,14 @@ and it will generate a trace named `application.trace` in the current
directory. You can specify the written trace filename by setting the
`TRACE_FILE` environment variable before running.
-The `LD_PRELOAD` mechanism should work with most applications. There are some
-applications, e.g., Unigine Heaven, which global function pointers with the
-same name as GL entrypoints, living in a shared object that wasn't linked with
-`-Bsymbolic` flag, so relocations to those globals function pointers get
-overwritten with the address to our wrapper library, and the application will
-segfault when trying to write to them. For these applications it is possible
-to trace by using `glxtrace.so` as an ordinary `libGL.so` and injecting into
-`LD_LIBRARY_PATH`:
+The `LD_PRELOAD` mechanism should work with the majority applications. There
+are some applications (e.g., Unigine Heaven, Android GPU emulator, etc.), that
+have global function pointers with the same name as GL entrypoints, living in a
+shared object that wasn't linked with `-Bsymbolic` flag, so relocations to
+those globals function pointers get overwritten with the address to our wrapper
+library, and the application will segfault when trying to write to them. For
+these applications it is possible to trace by using `glxtrace.so` as an
+ordinary `libGL.so` and injecting it via `LD_LIBRARY_PATH`:
ln -s glxtrace.so wrappers/libGL.so
ln -s glxtrace.so wrappers/libGL.so.1
@@ -134,6 +134,9 @@ to trace by using `glxtrace.so` as an ordinary `libGL.so` and injecting into
export TRACE_LIBGL=/path/to/real/libGL.so.1
/path/to/application
+If you are an application developer, you can avoid this either by linking with
+`-Bsymbolic` flag, or by using some unique prefix for your function pointers.
+
See the `ld.so` man page for more information about `LD_PRELOAD` and
`LD_LIBRARY_PATH` environment flags.