[webkit-changes] [WebKit/WebKit] 6e4c60: Fix availability declaration silencing in recent SDKs

Elliott Williams noreply at github.com
Mon Feb 24 19:19:40 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6e4c604d51530a246b719663df42b53dee5b580c
      https://github.com/WebKit/WebKit/commit/6e4c604d51530a246b719663df42b53dee5b580c
  Author: Elliott Williams <emw at apple.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M WebKitLibraries/SDKs/appletvos18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/appletvsimulator18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/iphoneos18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/iphonesimulator18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/macosx15.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/watchos11.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/watchsimulator11.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/xros2.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    M WebKitLibraries/SDKs/xrsimulator2.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h

  Log Message:
  -----------
  Fix availability declaration silencing in recent SDKs
rdar://145186083
https://bugs.webkit.org/show_bug.cgi?id=288045

Reviewed by Alexey Proskuryakov.

Recent versions of the os_availabilty library include a hash in their
implementation-detail macro names, to detect collisions with other
copies of the Availability headers in a malformed build. Since we
silence availability attributes by selectively undef-ing some of these
macros, adapt to the change by also checking for known hash names of
these macros.

While it's possible to obtain the Availability hash using
__AVAILABILITY_VERSIONS_VERSION_HASH, its value cannot be used to
un/define a preprocessor token. The best we can do is check for
unhandled hashes and emit an error message describing what to do.

In the future, we should come up with a better way to silence
availability, to avoid this bookkeeping and fix other issues like
https://bugs.webkit.org/show_bug.cgi?id=280912.

* WebKitLibraries/SDKs/appletvos18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/appletvsimulator18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/iphoneos18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/iphonesimulator18.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/macosx15.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/watchos11.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/watchsimulator11.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/xros2.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:
* WebKitLibraries/SDKs/xrsimulator2.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h:

Canonical link: https://commits.webkit.org/291004@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list