[webkit-dev] Removing BUILDING_ON / TARGETING macros in favor of system availability macros

Mark Rowe mrowe at apple.com
Thu Jul 12 12:10:48 PDT 2012

On 2012-07-12, at 11:29, Mark Mentovai <mark at chromium.org> wrote:

> We just discovered (via a rollout on bug 91103) that there’s a bug with __MAC_OS_X_VERSION_MAX_ALLOWED in the version of the 10.5 SDK as present in Xcode 3.2.6. This may be the last version of the 10.5 SDK ever released (I haven’t checked all of the early Xcode 4 releases). Chromium uses this SDK for its builds, although will likely switch to the 10.6 SDK in the near future.
> In short, __MAC_OS_X_VERSION_MAX_ALLOWED, which is supposed to track the SDK version, is set to 1060 instead of the expected 1050 in this version of the 10.5 SDK.

This is unfortunate. My understanding is that Chromium will soon be dropping Leopard support so this problem should go away in the near future.

> At least for the purposes of testing whether the 10.5 SDK is in use, we’ll need to use <AvailabilityMacros.h>’s MAC_OS_X_VERSION_MAX_ALLOWED instead of <Availability.h>’s __MAC_OS_X_VERSION_MAX_ALLOWED. I guess it’s a question of style whether the rest of WebKit should follow.

It'd be complicated to do this more widely since the AvailabilityMacros.h version of the macros are defined even when building for iOS. We'd need to review all of the uses to ensure that they were handled correctly. Given that I think it'd be better to just use this as a localized workaround until we drop support for building for Leopard.

An alternative workaround would be to explicitly define __MAC_OS_X_VERSION_MAX_ALLOWED == 1050 in your compiler invocation when building against the 10.5 SDK.

- Mark

More information about the webkit-dev mailing list