[pylucene-dev] Static builds and OS X Universal support

Kevin Ollivier kevino at tulane.edu
Mon Jun 19 10:50:42 PDT 2006


Hi all,

Getting back to some PyLucene stuff, and I see on Mac 2.0 is still  
using shared library builds. Were there problems with the static  
builds, or was there another reason we still can't use them? The  
shared bits that come with PyLucene take up quite a bit of space, and  
significantly complicate the issue of making a Universal binary. If  
everything were statically linked, we could pretty easily create a  
Universal binary by running the following command after the intel and  
ppc builds complete:

lipo -create /path/to/intel/_PyLucene.so /path/to/ppc/_PyLucene.so - 
output /path/to/universal/_PyLucene.so

This should be all that's needed for a Universal binary. It's not so  
easy, however, with the shared libraries to worry about. It's  
possible we could lipo the shared libraries together, but that will  
probably bloat the space requirement for the PyLucene extension alone  
to around 50MB, not to mention I don't like the idea in principle of  
lipoing together two different libraries into one filename, as the  
filename is no longer accurate. My guess is that, by using static  
libraries, we could drop the Universal size down to less than 1/3  
that. I realize this would probably need a testing period, but unless  
we know it's impossible, I really think it's worth a shot.

Granted, for me it will only be useful for Tiger builds right now  
(due to wxPython Universal issues), but it would still be very  
useful, and IMHO the transition will need to happen eventually. I'd  
like to be able to think of one day being able to only maintain one  
Mac binary for my software. ;-) We still support Panther, but I  
envision Panther support going away a lot faster than PPC support.  
Considering that Leopard will probably be a Universal binary too,  
we'll probably be looking at supporting (at least Tiger+) PPC users  
for several years to come.

I'd go ahead and attempt this myself, but it sounds like the process  
to get gcj working on Intel is pretty involved, and I was hoping it  
would be pretty easy to do a static (and Universal) build on Mac if  
you've got everything already setup on your end. Otherwise, it would  
be very helpful if you could provide the complete GCJ build you used  
and spare me some pain. ;-)

I'll of course be happy to test the new binaries. :-)

Thanks,

Kevin


More information about the pylucene-dev mailing list