In Internals.cpp we require convertEnumerationToString(PlatformMediaSession::RemoteControlCommandType) but that is guarded by an ifdef in PlatformMediaSession.
Created attachment 443785 [details] [fast-cq] Patch
Comment on attachment 443785 [details] [fast-cq] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=443785&action=review > Source/WebCore/ChangeLog:9 > + functions, required by Internals. This looks adjacent to the issue from bug #226088 — I didn't get to the bottom of it, but there we run in a multiple definition issue due to the same method (exactly the same!) being generated from a WebIDL file. Why is this not a problem here? Is something latent here being hidden as well by unified builds, I wonder?
I don't think it's related with unified builds, if you open PlatformMediaSession.h you'll see, not guarded by ifdef: WEBCORE_EXPORT String convertEnumerationToString(PlatformMediaSession::RemoteControlCommandType); But in the cpp unit it is currently guarded by an ifdef, hence the link error happening when MEDIA_SESSION is enabled, but release logs are disabled.
(In reply to Philippe Normand from comment #3) > I don't think it's related with unified builds, if you open > PlatformMediaSession.h you'll see, not guarded by ifdef: > > WEBCORE_EXPORT String > convertEnumerationToString(PlatformMediaSession::RemoteControlCommandType); > > But in the cpp unit it is currently guarded by an ifdef, hence the link > error happening when MEDIA_SESSION is enabled, but release logs are disabled. It's only related in that I am trying to solve another bug that happens to result in multiple definitions of this symbol when unified builds are disabled because my test builds I typically do with logging enabled so the function was being compiled in my case, too — but that's all.
Committed r285718 (244177@main): <https://commits.webkit.org/244177@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 443785 [details].
<rdar://problem/85343300>