Hi list !
I am working on the Linux port of Lubyk and am stuck with some differences between OS X and Linux regarding symbols in shared objects:
I have two shared objects "core.so" and "thread.so". The "core.so" library defines "lubyk::Thread" (C++ wrapper around POSIX threads). The "thread.so" library defines "lk::Thread" (C++ class to be used with Lua).
On OS X, everything works fine as long as "core.so" is loaded before "thread.so" but on Linux, the lua crashes with undefined symbols.
By looking at the symbol map, the missing symbol corresponds to the typeinfo for "lubyk::Thread" which is defined as:
========== OS X
========== Linux (Ubuntu 10.10)
From the man pages of "nm", the "V" stands for "weak object" but I have no clue as of why it is marked as such on Linux (the source code can be found here: ).
Any help would be greatly appreciated...