[MacRuby-devel] -twolevel_namespace issue?

Laurent Sansonetti laurent.sansonetti at gmail.com
Sun Sep 18 02:10:49 PDT 2011


Hi Jeremy,

Could the problem be fixed by linking statically your own copy of
SQLite against the Amalgalite library, and perhaps passing all SQLite
symbols to -unexported_symbols_list during ld time? I am guessing
symbols wouldn't collide anymore this way.

>From what I understand, it looks like it would be better to fix the
problem in Amalgalite itself, and not in each client requiring it.

Laurent

On Mon, Sep 12, 2011 at 8:39 PM, Jeremy Hinegardner
<jeremy at hinegardner.org> wrote:
> Hey all,
>
> I develop the Amalgalite gem[1] and it ships with its own copy of SQLite.
> It does this as it adds in additional compile-time features, and I try and
> keep it as current as posssible.
>
> The problem is that since MacRuby is linked to CoreServices etc, the sqlite
> library that ships with OSX gets linked at runtime before the sqlite library
> that is built into the amalgalite gem extension.  I've encountered this
> before[2] with amalgalite, when it was loaded with my 'hitimes' gem (which on osx links
> against -framework CoreServes).
>
> I am wondering what the appropriate approach is here. I was able to fix this in
> MRI by compiling MRI with -twolevel_namespace and I think there is an open ticket
> with ruby-core to see if MRI on osx should be compiled with that flag.
>
> I attempted to compile MacRuby with -twolevel_namespace to resolve this, and I
> was unsuccessful. There appeared to be other flags that conflicted with it.
>
> I would expect something like this may also affect the nokogiri gem as limxml2
> is also a system library on osx, and may conflict with the version that nokogiri
> expects.
>
> Thoughts? Opinions? I'm sure this is a rare case, Amalgalite may be the only
> project that could experience an issue like this. What is the best way to handle
> this in the MacRuby ecosystem?
>
> enjoy,
>
> -jeremy
>
> [1] - https://github.com/copiousfreetime/amalgalite
> [2] - https://github.com/copiousfreetime/amalgalite/blob/master/lib/amalgalite/sqlite3/version.rb#L42-L56-54
> --
> ========================================================================
>  Jeremy Hinegardner                              jeremy at hinegardner.org
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>


More information about the MacRuby-devel mailing list