[PATCH] D27827: [ObjC] CodeGen support for @available on macOS
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 16 14:32:07 PST 2016
explicitly suggests sysctl as replacement when targeting 10.8+, which
strongly suggests that it'll work.
On Fri, Dec 16, 2016 at 4:37 PM, Erik Pilkington via Phabricator <
reviews at reviews.llvm.org> wrote:
> erik.pilkington added a comment.
> I seem to remember that mapping from kernel versions to marketing versions
> was tossed around as a potential alternative to Gestalt. I think that the
> problem was Apple sometimes introduces (or reserves the right to introduce)
> new SDKs in a patch release (ie, Z in X.Y.Z), which wouldn't necessary
> imply a new kernel version, and would still need to be queried by
> @available. This makes it impossible to use kernel version in the general
> case (Or at least I think, it would be nice if someone internal to Apple
> could confirm this?). This rules out using `sysctl()` and the like.
> AFAIK this just leaves `Gestalt()` and Objective-C's `NSProcessInfo`, the
> latter would mean pulling in the Objective-C runtime, which would be
> unfortunate for C users (using the `__builtin_available` spelling). I don't
> think `Gestalt()` is in any danger of actually being removed, so we might
> as well use it. The only alternative I know of to those would be manually
> parsing the `SystemVersion.plist` XML file, but I think that might cause
> problems with sandboxed processes (right?). Any thoughts here would be much
> appreciated, `Gestalt()` is by no means a perfect solution.
> Compiler-rt does seem like a good place it put this, should I move the
> runtime code there instead?
> Thanks for taking a look!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits