Supporting C++11 on old OS X (Was: kdevelop 4.7 and beyond (was: clang++-mp-3.4 doesn't find initializer_list on OS X 10.6))

Brandon Allbery allbery.b at gmail.com
Mon Sep 8 13:24:30 PDT 2014


On Mon, Sep 8, 2014 at 2:44 PM, Brandon Allbery <allbery.b at 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
allbery.b at gmail.com                                  ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-dev/attachments/20140908/181ca6ca/attachment.html>


More information about the macports-dev mailing list