Jeremy Huddleston Sequoia <jerem...@apple.com> wrote:
>> On Oct 2, 2015, at 08:01, Clemens Lang <cal at macports.org> wrote:
>> There are changes that can be done by Apple with OS upgrades that will render
>> your currently installed libraries useless. Examples for changes that are of
>> this nature are:
>>  - Apple changing CPU architecture
>>  - Apple changing the ABI of a library you link against (e.g. when moving
>>    to C++11 using libc++)
> 
> We haven't changed the ABI.
> 
> We've added a new C++ runtime (libc++), but still continue to ship the older 
> libstdc++ runtime for binary compatibility.

You are technically correct of course, but making the distinction may be
muddying the waters. Binary compatibility only applies where an
executable and the libraries it uses are all built for the same target.

Yes, if you upgrade the OS, all your installed ports will generally work
fine--to start with. But if we didn't require a rebuild for ports that
were built for a different OS version, something like this would happen:

X 1.0 uses libstdc++ and links with libY 1.0 which also uses libstdc++
User updates OS to a version where the compiler defaults to libc++
libY is updated to 1.1 and is now using libc++
X is now broken.

- Josh
_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-users

Reply via email to