On Mon, Sep 8, 2014 at 2:44 PM, Brandon Allbery <allber...@gmail.com> wrote:

> So the cases here are:
>
> - pre-C++11 C++ support must use the system libstdc++ (the binary-only
> backward compatibility one on newer systems whose development C++ runtime
> is libc++).
>
> - C++11 C++ support must either face the license issue of a later
> libstdc++ or use libc++. In either case, the system C++ runtime cannot be
> used on older systems. On newer systems where Apple shipped C++11, the
> system runtime is libc++ and C++11 compatible, so use it.
>
> - The case of pre-C++11 libc++ does not come up because Apple has not to
> my knowledge ever shipped this.
>
> In summary, on pre-C++11 systems you need to provide a different C++
> runtime no matter what; on C++11 systems you can always use Apple's runtime.
>

I should probably also mention the implication that the only options for
code on older OS X that uses any C++ frameworks from Apple are:

- use the modern libstdc++, which may mean building locally and not
distributing any binaries which might involve combining it with non-GPL3
code --- assuming that it has backward compatibility support for pre-C++11
g++ objects / libraries; or

- find someone who can clean-room the API *and ABI* details for pre-C++11
libstdc++, and then someone else (necessarily to avoid license issues) to
use that clean-room information to add compatibility to libc++.

Simply providing libc++ on older systems is not sufficient for this case,
because it won't interoperate with pre-C++11 compiled objects or libraries
from Apple.

-- 
brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to