RESOLVED FIXED 257560
[WebKit] Enable InstallAPI for macOS/tvOS/watchOS
https://bugs.webkit.org/show_bug.cgi?id=257560
Summary [WebKit] Enable InstallAPI for macOS/tvOS/watchOS
Elliott Williams
Reported 2023-05-31 12:50:47 PDT
Most of the work has already been done since iOS supports InstallAPI in WebKit/WebKitLegacy. Now that we have TAPI_USE_SRCROOT, we can enable it further without risking staleness build bugs.
Attachments
Elliott Williams
Comment 1 2023-05-31 12:51:13 PDT
Elliott Williams
Comment 2 2023-06-01 16:37:48 PDT
EWS
Comment 3 2023-06-08 12:31:24 PDT
Committed 264993@main (110ccc3202f3): <https://commits.webkit.org/264993@main> Reviewed commits have been landed. Closing PR #14608 and removing active labels.
EWS
Comment 4 2023-06-08 19:22:58 PDT
Committed 265005@main (e32ba22bd31f): <https://commits.webkit.org/265005@main> Reviewed commits have been landed. Closing PR #14801 and removing active labels.
Elliott Williams
Comment 5 2023-06-09 14:45:22 PDT
EWS
Comment 6 2023-06-12 10:02:09 PDT
Committed 265074@main (5ddcda389f55): <https://commits.webkit.org/265074@main> Reviewed commits have been landed. Closing PR #14826 and removing active labels.
EWS
Comment 7 2023-06-12 12:09:44 PDT
Committed 265078@main (39ba36f985d0): <https://commits.webkit.org/265078@main> Reviewed commits have been landed. Closing PR #14874 and removing active labels.
Elliott Williams
Comment 8 2023-06-15 17:20:13 PDT
Elliott Williams
Comment 9 2023-06-15 17:29:47 PDT
We need to build fix this for Mac Catalyst, due to the way that TAPI handles symbols in reexported frameworks. In the catalyst build: - WebCore implements WKRetain/WKRelease as part of the WAK library. The symbols are hidden (but present in the debug build's symbol table). - WebKit implements its own WKRetain/WKRelease, which is exported. It also reexports WebCore, which it only does on macOS. - During the InstallAPI verification phase, TAPI ignores any symbols from headers that are implemented from a reexported framework. This means that even though it parses WebKit's WKRetain/WKRelease declarations, it refuses to use them, failing with error: no declaration found for exported symbol '_WKRelease' in dynamic library error: no declaration found for exported symbol '_WKRetain' in dynamic library This doesn't happen in production builds, because they stubify WebCore before WebKit begins building, so TAPI only reads re-exported symbols from WebCore.tbd. Catalyst WebKit re-exporting WebCore, when all other iOS-like platforms do not, is probably an oversight, but it's too risky to fix now. The easiest thing we can do is just rename the hidden symbol.
EWS
Comment 10 2023-06-16 13:50:45 PDT
Committed 265255@main (159993b61597): <https://commits.webkit.org/265255@main> Reviewed commits have been landed. Closing PR #15031 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.