Boost logo

Boost-Build :

Subject: Re: [Boost-build] Patch for building Boost 1.40 on Mac OS X Snow Leopard
From: Vladimir Prus (ghost_at_[hidden])
Date: 2009-11-04 10:48:16

Boris Dušek wrote:

> Hi, I wrote this reply some time ago, but now it's also relevant:

[snip comprehensive explanation]

> So e.g. if you use g++-4.0 or g++-4.2 and compile for 10.5 SDK, you can get
> 4-way binaries running on 10.5 and later. If you use g++-4.0 and compile for
> 10.4 SDK, you can get 4-way binaries running on 10.4 or later, but be vary
> that on Tiger, e.g. system's libz is 4-way, but system's libbz2 is only
> 2-way (32-bit), so you have to supply your own 4-way bz2 to iostreams (only
> a few libraries on Tiger were 4-way). And if you do that with your own 4-way
> static build of libbz2, you run into's library path issue that I
> won't go into here (this post is already way longer than I intendet it to
> be).
> Sorry for the huge post, but I hope this attempt makes things a little bit
> more understandable w.r.t. building for ppc64 (and even others) _on_ Snow
> Leopard _for_ various target versions of Mac OS X.


thanks for writing this up, it was very helpful in understanding the situation.
I've arrived at the attached patch to address this. The desired effect is that
with gcc 4.2, when targeting 10.6:

- if architecture=combined address-model=32_64 is specified, we build 3-way fat
  binary, skipping ppc64.
- if architecture=power address-model=32_64 is specified, or
  architecture=combined address-model=64, we emit an error.

Can you give this a try? Not having OSX, I could only verify that darwin.jam
is not a brick after applying this patch -- I did not check the actual logic.

- Volodya

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at