Hello. I specify my question: I have an executable, let it be MyExe. It used (dynamic link) a vendor lib, let say vendor.so, and I can't compile it myself. The vendor.so is dynamically link to another vendor lib, let say: boost_thread_1.35.so (name chosen totally by chance ;-)), this boost_thread_1.35.so is provided by the vendor. MyExe is also dynamically linked to one of my libs: let say myLib.so, this latter being dyn. linked to boost_thread_1.44.so.
"Graphically": MyExe /\ /\ | | vendor.so myLib.so /\ /\ | | boost_thread1.35 boost_thread_1.44 The issue is: boost_thread1.35 and 1.44 defines the same symbols are not compatible. MyExe really needs boost in version 44 (not 35). I played to check the issue: 1) when MyExe only uses functions of vendor.so (and so boost_thread1.35) 1.1) when boost_thread1.35 is loaded before 1.44 by the system (I check with strace): no problem 1.2) when boost_thread1.44 is loaded before 1.35: seg fault. 2) when MyExe only uses functions of myLib.so (and so boost_thread1.44) 1.1) when boost_thread1.44 is loaded before 1.35 by the system: no problem 1.2) when boost_thread1.35 is loaded before 1.44: seg fault. 3) when MyExe uses both functions of myLib.so and vendor.so: seg fault whatever the load order of the boost thread libs. The solution I think about: I can compile the boost_thread 1.35 as a static lib. I wonder if I can do something with that: I'd like to be able to say to vendor.so: "don't search your symbol in boost_thread1.35.so, but" ....where? And : "don't be dynamically linked to boost_thread1.35.so". And how to say that? Any suggestion? Thanks in advance for answers. _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org https://lists.gnu.org/mailman/listinfo/help-gplusplus