Nobuyoshi Nakada
2/3/2009 3:59:00 PM
Hi,
At Wed, 4 Feb 2009 00:33:40 +0900,
Ian Campbell wrote in [ruby-talk:326749]:
> I would be very grateful if someone could explain what was happening
> here. My guess would be memory addresses being overwritten for symbols
> with the same name when modules are loaded in. It would just be nice to
> know that it's not something more sinister that I am doing incorrectly.
Ruby uses RTLD_GLOBAL flag to dlopen() on Linux, but it can
vary on other platforms. You can't depend on whether a symbols
in an extension library is visible from another extension
library.
> So if this is not how Ruby C extensions should be used, is the answer
> to use unique names between modules? This just seems a little odd to me.
Making them static except for Init function.
--
Nobu Nakada