<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Sep 8, 2014 at 2:44 PM, Brandon Allbery <span dir="ltr">&lt;<a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra">So the cases here are:</div><div class="gmail_extra"><br></div><div class="gmail_extra">- 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++).</div><div class="gmail_extra"><br></div><div class="gmail_extra">- 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.<br><br clear="all"><div>- The case of pre-C++11 libc++ does not come up because Apple has not to my knowledge ever shipped this.</div><div><br></div><div>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&#39;s runtime.</div></div></blockquote></div><br>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:</div><div class="gmail_extra"><br></div><div class="gmail_extra">- 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</div><div class="gmail_extra"><br></div><div class="gmail_extra">- 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++.<br clear="all"><div><br></div><div>Simply providing libc++ on older systems is not sufficient for this case, because it won&#39;t interoperate with pre-C++11 compiled objects or libraries from Apple.</div><div><br></div>-- <br><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>                                  <a href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div><div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div></div>
</div></div>