[MacRuby-devel] -twolevel_namespace issue?

Jeremy Hinegardner jeremy at hinegardner.org
Sun Sep 18 11:19:37 PDT 2011


I will see if that can work. So the approache would be to statically compile the
sqlite lib that ships with amalgalite, and separately link it to the extension
vs. compiling it all together as it does today.

I will give those options a try and see who it all works. Thanks for the info,
compiler flags and linking options are not my forte.

-jeremy

On Sun, Sep 18, 2011 at 11:10:49AM +0200, Laurent Sansonetti wrote:
> 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
> >

-- 
========================================================================
 Jeremy Hinegardner                              jeremy at hinegardner.org 



More information about the MacRuby-devel mailing list