From: Douglas Gregor (doug.gregor_at_[hidden])
Date: 2006-09-24 07:58:31
On Sep 24, 2006, at 3:13 AM, Vladimir Prus wrote:
> On Friday 22 September 2006 22:28, Doug Gregor wrote:
>> On Mac OS X, I believe frameworking linking is
>> always dynamic linking, so the problem doesn't crop up. At least, the
>> Python tests seem to be running...
>> I still don't think we're handling extension modules properly. We
>> should be linking them with -bundle and (possibly) -bundle_loader,
>> but we aren't. Darwin is such a pain :(
> What's the difference between -framework and -bundle?
-framework combines -I for include directories, -L for library
directories, and -l for linking against libraries in one "easy"
package. If you're following the Mac OS X conventions for building
Python models (which, of course, are different from all other
conventions...) then just adding "-framework Python" will do the
right thing when compiling with and linking against Python.
-bundle indicates that the shared library being build is actually a
"bundle", which is a special kind of shared library meant to be
loaded as an extension module in an application. You can't link
against bundles directly. For Python extension modules, we should be
using "-bundle", but not for shared libraries like libboost_python.
Confused? Me too.
> In any way, I know too little about Darwin to make any meaningfull
> I'd suggest to go ahead with this patch. If somebody has more
> comments we can
> always adjust things.
> But can you please add a comment here? At least, saying that on
> extensions must link to Python directly, or link error will occur?
Okay, will do.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk