Rather than running load_twice on libmirclient.so.* it should be run on libmirprotobuf.so.* directly. That's the source of the problem and does crash, but only if you change RTLD_LAZY to RTLD_NOW.
Loading libmirclient.so.* is just an indirect fudge to force it to try and resolve more symbols, but not necessary if you use RTLD_NOW on libmirprotobuf.so.* directly. ** Summary changed: - Loading libmircommon.so twice leads to a segfault in libprotobuf.so + Loading libmirclient.so twice leads to a segfault in libmirprotobuf.so -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to mir in Ubuntu. https://bugs.launchpad.net/bugs/1391976 Title: Loading libmirclient.so twice leads to a segfault in libmirprotobuf.so Status in Mir: Triaged Status in mir package in Ubuntu: Triaged Bug description: Can be reproduced with: load_twice libmircommon.so.1 (or .2) For recent versions of mir use: load_twice libmirclient.so.X (currently .8) load_twice.c: #include <stdio.h> #include <dlfcn.h> int main(int argc, char** argv) { void *dl; int i; for (i = 0; i < 2; i++) { dl = dlopen (argv[1], RTLD_LAZY); printf ("%d open dl: %p\n", i, dl); if (dl) dlclose (dl); } } To manage notifications about this bug go to: https://bugs.launchpad.net/mir/+bug/1391976/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp