too much dynamic loading?

ryan woodsmall rwoodsmall at mac.com
Sat May 22 21:19:28 CDT 2010


> I'm not convinced direct linking will work better on Mac OS X, unless
> you ship libpng and libjpeg with Wine.

And libgnutls (plus prereqs libgpg-error & libgcrypt). And libgphoto2,  
libexif, libtiff, libgsm, libjbig... - there's a laundry list of  
libraries that are required for a full-featured Wine install, and  
prereqs of prereqs, prereqs of THOSE. You get the point. Static  
libraries on Mac OS X/Darwin also misbehave in odd ways that you  
simply don't see with dylibs as well.

I package all of these up with osxwinebuilder, building shared libs  
from source, and it's a bit tricky. Things fail in unforeseen ways if  
a user's modified their environment. I had an issue this morning where  
libghoto2 was failing for version 2.4.9+, but working for anything  
older. Turns out that GD had been installed into /usr from source on  
Leopard, the user upgraded to Snow Leopard (which broke a few of GD's  
reqs), and libgphoto2 2.4.9+ now checks for GD, which it found,  
mysteriously breaking the compile. Had GD been compiled statically, it  
may have worked - or not. But that's not something I (or Wine) check  
for, just something I didn't consider until today when a prereq broke.

Wine really wants to map and use share libraries like they're supposed  
to be used: dynamically, when a module needs them. Pain in getting to  
that point on Macs is one reason there's not a binary Wine package  
available; licensing and binary distribution questions/methods is  
another. Static libraries may be a quick workaround, but ultimately  
full shared library coverage for all prereqs on all supported  
platforms is the way to go.

If you want a bad example, take a look at GSM. configure simply won't  
work with/find a static libgsm on OS X, but a manually-built dylib  
works just fine from what I can glean. The fact that the distributor 
(s) don't include an easy method for building shared GSM libs on OS X  
made this a little tricky to workaround IMO. But it's doable.

Kind of ranting. Let me know if clarification is needed on any point.  
Standard Wine on OS X may not work in a Mac user-friendly way, but it  
works very well if you just forego a GUI, have good prereq coverage  
and use it from the terminal. That's good enough for me! -r



More information about the wine-devel mailing list