[webkit-changes] [WebKit/WebKit] aa721f: [iOS 17] Build on the public SDK
Elliott Williams
noreply at github.com
Thu Aug 3 13:34:07 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: aa721f7998fcfe5bba32f0feb9b7217c7ba520da
https://github.com/WebKit/WebKit/commit/aa721f7998fcfe5bba32f0feb9b7217c7ba520da
Author: Elliott Williams <emw at apple.com>
Date: 2023-08-03 (Thu, 03 Aug 2023)
Changed paths:
M Source/WTF/wtf/PlatformHave.h
M Source/WebKit/NetworkProcess/cocoa/AppStoreDaemonSPI.h
M Tools/Scripts/configure-xcode-for-embedded-development
A Tools/Scripts/extract-tbds-from-internal-sdk
A Tools/Scripts/strip-tbd
M Tools/WebKitTestRunner/Configurations/Base.xcconfig
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/SDKSettings.plist
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd
A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/SDKSettings.plist
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/FontServices.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd
A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
Log Message:
-----------
[iOS 17] Build on the public SDK
https://bugs.webkit.org/show_bug.cgi?id=259513
Reviewed by Alexey Proskuryakov.
Adds iphoneos17.0-additions and iphonesimulator17.0-additions SDKs
containing stubs for private frameworks. Unlike past cycles, these have
been generated automatically from the internal SDK, using a `strip-tbd`
program (also added). The workflow I used was:
1. Using products from an internal build, `otool -L` relevant binaries
(WebCore, WebKit, TestWebKitAPI) to find private frameworks linked
against.
2. Copy those frameworks' tbd stubs from the internal SDK to the same
locations in the sparse SDK.
3. Strip out all the symbols we aren't binding to:
nm -gj WebKitBuild/Debug/WebCore.framework/WebCore > /tmp/WebKit.exp
nm -gj WebKitBuild/Debug/WebKit.framework/WebKit >> /tmp/WebKit.exp
# etc.
strip-tbd -s /tmp/WebKit.exp WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/**/*.tbd
Additionally, this workflow has been automated into a script which generates the API stubs
for a sparse SDK in a single invocation. I generated iphonesimulator17.0
framework stubs by running:
extract-tbds-from-internal-sdk -b $build `xcrun --show-sdk-path --sdk iphonesimulator.internal` WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk
The new linker included in Xcode 15 is stricter about validating targets
in TBDs (it uses LLVM's codepath for parsing TBDs, which treats unknown
platforms as an error). As a result,
configure-xcode-for-embedded-development needs to patch TBDs in the base
SDK with *target* strings, not just architectures. This also means that
the private framework stubs cannot be shared between device and
simulator variants, but since we can now auto-generate the stubs, I
think it's reasonable to check in separate TBDs for both SDKs.
Aside from the sparse SDK changes, make a few minor fixups.
* Source/WTF/wtf/PlatformHave.h: Lockdown mode was never supported in
simulators, and a Core Graphics function we call in LDM was removed
from the simulator SDK. Refine this platform macro.
* Source/WebKit/NetworkProcess/cocoa/AppStoreDaemonSPI.h: The public
side was missing NONNULL markers.
* Tools/Scripts/configure-xcode-for-embedded-development: Patch TBDs
with target strings, as mentioned above.
* Tools/Scripts/extract-tbds-from-internal-sdk: Added.
* Tools/Scripts/strip-tbd: Added.
* Tools/WebKitTestRunner/Configurations/Base.xcconfig:
In non-macOS builds, /System/Library/PrivateFrameworks is being given
as a framework search path, causing frameworks on the *host* machine
to be preferred over system frameworks. Prefix it with $(SDK_DIR),
which is probably what was originally intended.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/SDKSettings.plist: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/FontServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/SDKSettings.plist: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h: Copied from other SDK additions.
Canonical link: https://commits.webkit.org/266551@main
More information about the webkit-changes
mailing list