[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ABI Compatibility (was Re: Installation woes for the average user...
From: |
Jens Ayton |
Subject: |
Re: ABI Compatibility (was Re: Installation woes for the average user...) |
Date: |
Fri, 22 May 2009 02:24:49 +0200 |
On May 21, 2009, at 11:47, David Chisnall wrote:
Only half of this is true. Apple only ships one version of its
frameworks. Each framework, however, contains different versions of
the libraries. You may have noticed all of the OS X version macros
in the headers. Each of those defines the parts of the interface
that are visible in a particular version of the framework, but they
are also used when compiling. Each version of OS X has a
Foundation.framework containing several libFoundation.dylib files,
one compiled for compatibility with each previous version.
Oh, really? Have you taken the time to actually look? ;-)
The bundle structure used for frameworks in OS X is specifically
designed to allow this (except the library binary is called
Foundation, not libFoundation.dylib), but it isn’t used much, if at
all. The Foundation framework, for instance, does not use this method,
and neither does CoreFoundation (which implements the most fundamental
Foundation classes).
In practice, the differences between different API versions is handled
entirely using runtime checks. This can be seen in the public CFLite
source code (see http://www.opensource.apple.com/ - no longer requires
an account). The 10.4 versions of CFLite include the real
implementation of the version checking function,
_CFExecutableLinkedOnOrAfter(); 10.5 versions only have a stub.
The problem of fragile ivars is handled (in the 32-bit runtime) by not
changing class layouts, or changing them but keeping sizes unchanged.
--
Jens Ayton
- Re: ABI Compatibility (was Re: Installation woes for the average user...), (continued)
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Richard Frith-Macdonald, 2009/05/20
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Richard Frith-Macdonald, 2009/05/20
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Fred Kiefer, 2009/05/20
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Yavor Doganov, 2009/05/20
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Richard Frith-Macdonald, 2009/05/20
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Yavor Doganov, 2009/05/20
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Richard Frith-Macdonald, 2009/05/21
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Wolfgang Lux, 2009/05/21
- Re: ABI Compatibility (was Re: Installation woes for the average user...), David Chisnall, 2009/05/21
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Wolfgang Lux, 2009/05/21
- Re: ABI Compatibility (was Re: Installation woes for the average user...),
Jens Ayton <=
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Richard Frith-Macdonald, 2009/05/21
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Wolfgang Lux, 2009/05/21
- Re: ABI Compatibility (was Re: Installation woes for the average user...), Yavor Doganov, 2009/05/22