Yeah, I've been reading a helpful document on shared libraries to fill my knowledge gaps (
http://www.akkadia.org/drepper/dsohowto.pdf).
I think I made a major breakthrough this morning. What I did was to remove the line in the Tcl script that loads the Commontcl.so library where all these missing symbols are located. I replaced that by going into the C++ code and calling dlopen instead:
Code:
void* retval = dlopen("lib/common/drivers/Commontcl.so", RTLD_NOW | RTLD_GLOBAL);
if (retval == NULL) {
std::cerr << "Failed to open Commontcl.so. dlerror: " << std::endl;
std::cerr << dlerror() << std::endl;
}
Lo and behold, now there are no unresolved symbols! So naturally my guess is that somehow the default settings for how Tcl loads shared library files changed. So I'm looking into that at the moment.