dlopening RTLD_LOCAL does not actually solve the problem. Symbols from the namespace of the application can override symbols pulled in by the libraries. RTLD_GROUP, not supported by glibc, comes fairly close to being sufficient in most cases.