Setup a /system/bin/linker_asan as a symlink to "linker". Read the linker name from PT_INTERP, and if it is linker_asan, switch default library lookup paths to the ASan set, which starts with the path to the instrumented libraries (/data/lib), followed by /system/lib as a fallback. This ensures that ASan binaries prefer ASan libraries, when available. This approach is way better then RPATH/RUNPATH and even better than LD_LIBRARY_PATH: - RUNPATH is per-DSO, while default paths are global. - LD_LIBRARY_PATH is overwritten by android_update_LD_LIBRARY_PATH. - neither RUNPATH nor LD_LIBRARY_PATH appear in android_get_LD_LIBRARY_PATH which is used to build java.lang.path. Having ASan libraries in java.lang.path is a good thing. Bug: 22355945 Change-Id: I1d2791fbf5740618f18f71a3ae3d873714669d3f
4.2 KiB
4.2 KiB