Re: [pyxpcom] pyxpcom on mac, anyone?
by Brendan O'Connor other posts by this author
Aug 19 2005 1:17PM messages near this date
view in the new Beta List Site
Re: [pyxpcom] pyxpcom on mac, anyone?
|
Re: [pyxpcom] pyxpcom on mac, anyone?
Yeah, the discrepency on 10.4's python 2.3's use of dynload_shilb.o is
what I first noticed, and why I tried dynload_shlib myself.
I'm using Python 2.4.1 actually, building from source. Interesting to
hear both MacPython and ActiveState builds are using dynload_next...
Well, dynload_shlib doesn't complain when loading pyxpcom, so works
here...
Brendan
On 8/19/05, Trent Mick <trentm@[...].com> wrote:
> [Brendan O'Connor wrote]
> > Thanks for all the help! I finally got it working, but weirdly, it
> > came down to how python's shared library loader works on OS X.
> >
> > A default python build on OS X uses Python/dynload_next.c (as in
> > NeXT), which knows how to load shared libraries that are "bundles".
> > This loader is what fails to load _xpcom.so / lib_xpcom.dylib and
> > throws the ImportError, "Inappropriate file type for dynamic loading".
> > From what I gather from some apple docs, the functions used in
> > dynload_next.c can only load bundles, and but not load normal shared
> > libraries. I can't believe this is right, since my dynload_next built
> > python uses all sorts of swig-wrapped shared libraries that don't look
> > like bundles, but whatever, it doesn't work for pyxpcom's shared
> > libraries.
>
> Our custom Python build (the same ActivePython package that we build)
> uses dynload_next.c as well.
>
>
> > Apple's build of python uses the library loader
> > Python/dynload_shlib.c, the standard unix-y one. (Thank god for the
> > saved lib/python2.3/config/Makefile !) If I build my own python using
> > that one via DYNLOADFILE=dynload_shlib.o, I can load _xpcom.so just
> > fine, and run the pyxpcomxul test extension!
>
> Are you sure? The system Python on Panther (10.3) seems to use
> dynload_next
>
> # /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/config/Makefi
le
> # line 157
> ...
> DYNLOADFILE= dynload_next.o
> ...
>
> Whoa, interesting, the system Python 2.3 build for Tiger (10.4) switched
> to dynload_shlib.
>
> DYNLOADFILE= dynload_shlib.o
>
> However, the Python 2.4 distro from the MacPython guys uses
> dynload_next.o. I couldn't find any relevant discussion from some quick
> searching.
>
>
> > No one else has ever run into this thing? I feel like I just spent a
> > ton of time with the most obscure problems ever..
>
> PyXPCOM is working for us on Mac OS X (both on Panther and Tiger) using
> dynload_next.o and Python 2.4. You seem to be using Python 2.3. Perhaps
> there is something in that.
>
> Trent
>
> --
> Trent Mick
> TrentM@[...].com
>
_______________________________________________
pyxpcom mailing list
pyxpcom@[...].com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Thread:
Brendan O'Connor
Shane Caraveo
Brendan O'Connor
Shane Caraveo
Trent Mick
Brendan O'Connor
Trent Mick
Brendan O'Connor
Brendan O'Connor
|