Darwin Version

Jeremy Huddleston Sequoia jeremyhu at apple.com
Sat Oct 3 01:51:24 PDT 2015


> On Oct 2, 2015, at 07:00, Brandon Allbery <allbery.b at gmail.com> wrote:
> 
> I should note that that's just an example; libSystem has only changed that way once, I think.

Do you have a radar or forum post or something regarding this example of where libSystem broke in a binary incompatible way (and wasn't seen as a bug and wasn't fixed)?  If you notice, we've gone to great lengths to maintain binary compatibility which is why we have so many symbol variants for cases where we needed to change behavior (eg: for our change to 64bit inodes, for UNIX2003 conformance changes, etc).

> But the same applies to other Apple-only frameworks, which change more often and more radically. Apple also has no qualms about removing old frameworks they don't care about any more, in which case your old 10.5 programs relying on those frameworks *will* stop working (I think they did that with QuickTime?).

Frameworks are removed from the SDK after a long period of deprecation, but the binaries are still shipped long after that for binary compatibility.  Take a look, and you will see that /System/Library/Frameworks/QuickTime.framework is still there.

> Basically, if Apple cared they could make this stuff work. But they don't, so migration becomes a major hassle.

File radars if you think there are problems.  FWIW, I don't migrate, and I don't have problems.

> 
> On Fri, Oct 2, 2015 at 9:52 AM, Brandon Allbery <allbery.b at gmail.com> wrote:
> On Fri, Oct 2, 2015 at 9:31 AM, Bachsau <web at bachsau.name> wrote:
> Maybe. Seems like I'm just not getting what is technically causing these problems. When libraries change, and it breaks a particular application, why can't I recompile just that? And why would the build of a newly installed port fail, just because there are other ports installed that were compiled against older system libraries?
> 
> Dependencies. Port X compiles against new libSystem, depends on port Y that was linked against old libSystem, link fails because it tries to bring in both versions and they conflict. (Keeping around old libSystem versions is how you can still run applications built for 10.5 on 10.10/10.11.)
> 
> This doesn't happen on Linux because glibc is obsessive about maintaining backward compatibility interfaces, so the older program links against the current glibc and uses compatibility interfaces from it; this works even for libraries. Apple doesn't care about backward compatibility enough to do things that way.
> 
> -- 
> brandon s allbery kf8nh                               sine nomine associates
> allbery.b at gmail.com                                  ballbery at sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
> 
> 
> 
> -- 
> brandon s allbery kf8nh                               sine nomine associates
> allbery.b at gmail.com                                  ballbery at sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
> _______________________________________________
> macports-users mailing list
> macports-users at lists.macosforge.org
> https://lists.macosforge.org/mailman/listinfo/macports-users

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4109 bytes
Desc: not available
URL: <https://lists.macosforge.org/pipermail/macports-users/attachments/20151003/35d242c4/attachment.p7s>


More information about the macports-users mailing list