Bug 217688 - [CMake][WK2] reference to undefined symbol `IPC::messageReplyArgumentDescriptions(IPC::MessageName)' since r268431
Summary: [CMake][WK2] reference to undefined symbol `IPC::messageReplyArgumentDescript...
Status: RESOLVED DUPLICATE of bug 217565
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Fujii Hironori
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-10-13 17:17 PDT by Fujii Hironori
Modified: 2021-09-08 18:06 PDT (History)
11 users (show)

See Also:


Attachments
WIP patch (684 bytes, patch)
2020-10-13 17:48 PDT, Fujii Hironori
no flags Details | Formatted Diff | Diff
WIP patch (1.28 KB, patch)
2020-10-13 19:55 PDT, Fujii Hironori
no flags Details | Formatted Diff | Diff
Patch (6.70 KB, patch)
2020-10-13 21:53 PDT, Fujii Hironori
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Fujii Hironori 2020-10-13 17:17:02 PDT
[WinCaio][PlayStation] reference to undefined symbol `IPC::messageReplyArgumentDescriptions(IPC::MessageName)' since r268431

WinCairo debug
https://build.webkit.org/builders/WinCairo-64-bit-WKL-Debug-Build/builds/21994

FAILED: bin64/WebKit2.dll lib64/WebKit2.lib 
cmd.exe /C "cd . && C:\tools\cmake\bin\cmake.exe -E vs_link_dll --intdir=Source\WebKit\CMakeFiles\WebKit.dir --rc="C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\rc.exe" --mt="C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe" --manifests  -- C:\MSVS\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\WebKit.rsp  /out:bin64\WebKit2.dll /implib:lib64\WebKit2.lib /pdb:bin64\WebKit2.pdb /dll /version:0.0 /machine:x64 /DEBUG /OPT:ICF /OPT:REF /OPT:NOREF /OPT:NOICF /INCREMENTAL:NO /debug /INCREMENTAL /INCREMENTAL:NO  /DELAYLOAD:d3d9.dll /DELAYLOAD:dxva2.dll /DELAYLOAD:evr.dll /DELAYLOAD:mf.dll /DELAYLOAD:mfplat.dll  && cd ."
LINK Pass 1: command "C:\MSVS\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\WebKit.rsp /out:bin64\WebKit2.dll /implib:lib64\WebKit2.lib /pdb:bin64\WebKit2.pdb /dll /version:0.0 /machine:x64 /DEBUG /OPT:ICF /OPT:REF /OPT:NOREF /OPT:NOICF /INCREMENTAL:NO /debug /INCREMENTAL /INCREMENTAL:NO /DELAYLOAD:d3d9.dll /DELAYLOAD:dxva2.dll /DELAYLOAD:evr.dll /DELAYLOAD:mf.dll /DELAYLOAD:mfplat.dll /MANIFEST /MANIFESTFILE:Source\WebKit\CMakeFiles\WebKit.dir/intermediate.manifest Source\WebKit\CMakeFiles\WebKit.dir/manifest.res" failed (exit code 1120) with the following output:
   Creating library lib64\WebKit2.lib and object lib64\WebKit2.exp
UnifiedSource-54928a2b-17.cpp.obj : error LNK2019: unresolved external symbol "class WTF::Optional<class JSC::JSValue> __cdecl IPC::jsValueForReplyArguments(class JSC::JSGlobalObject *,enum IPC::MessageName,class IPC::Decoder &)" (?jsValueForReplyArguments@IPC@@YA?AV?$Optional@VJSValue@JSC@@@WTF@@PEAVJSGlobalObject@JSC@@W4MessageName@1@AEAVDecoder@1@@Z) referenced in function "class JSC::JSObject * __cdecl WebKit::IPCTestingAPI::jsResultFromReplyDecoder(class JSC::JSGlobalObject *,enum IPC::MessageName,class IPC::Decoder &)" (?jsResultFromReplyDecoder@IPCTestingAPI@WebKit@@YAPEAVJSObject@JSC@@PEAVJSGlobalObject@4@W4MessageName@IPC@@AEAVDecoder@7@@Z)
UnifiedSource-54928a2b-17.cpp.obj : error LNK2019: unresolved external symbol "class WTF::Optional<class WTF::Vector<struct IPC::ArgumentDescription,0,class WTF::CrashOnOverflow,16,struct WTF::FastMalloc> > __cdecl IPC::messageArgumentDescriptions(enum IPC::MessageName)" (?messageArgumentDescriptions@IPC@@YA?AV?$Optional@V?$Vector@UArgumentDescription@IPC@@$0A@VCrashOnOverflow@WTF@@$0BA@UFastMalloc@4@@WTF@@@WTF@@W4MessageName@1@@Z) referenced in function "private: static struct OpaqueJSValue const * __cdecl WebKit::IPCTestingAPI::JSIPC::messages(struct OpaqueJSContext const *,struct OpaqueJSValue *,struct OpaqueJSString *,struct OpaqueJSValue const * *)" (?messages@JSIPC@IPCTestingAPI@WebKit@@CAPEBUOpaqueJSValue@@PEBUOpaqueJSContext@@PEAU4@PEAUOpaqueJSString@@PEAPEBU4@@Z)
UnifiedSource-54928a2b-17.cpp.obj : error LNK2019: unresolved external symbol "class WTF::Optional<class WTF::Vector<struct IPC::ArgumentDescription,0,class WTF::CrashOnOverflow,16,struct WTF::FastMalloc> > __cdecl IPC::messageReplyArgumentDescriptions(enum IPC::MessageName)" (?messageReplyArgumentDescriptions@IPC@@YA?AV?$Optional@V?$Vector@UArgumentDescription@IPC@@$0A@VCrashOnOverflow@WTF@@$0BA@UFastMalloc@4@@WTF@@@WTF@@W4MessageName@1@@Z) referenced in function "private: static struct OpaqueJSValue const * __cdecl WebKit::IPCTestingAPI::JSIPC::sendMessage(struct OpaqueJSContext const *,struct OpaqueJSValue *,struct OpaqueJSValue *,unsigned __int64,struct OpaqueJSValue const * const * const,struct OpaqueJSValue const * *)" (?sendMessage@JSIPC@IPCTestingAPI@WebKit@@CAPEBUOpaqueJSValue@@PEBUOpaqueJSContext@@PEAU4@1_KQEBQEBU4@PEAPEBU4@@Z)
bin64\WebKit2.dll : fatal error LNK1120: 3 unresolved externals

PlayStation debug
https://build.webkit.org/builders/PlayStation-Debug-Build/builds/4492

FAILED: bin/libWebKit.prx lib/libWebKit_stub_weak.a 
cmd.exe /C "cd . && C:\orbis\sdk\host_tools\bin\orbis-ld.exe -Wl,--no-undefined -L"C:/ORBIS/SDK/../internal/target/lib"   --prx-stub-output-dir=C:/BW/playstation-debug/build/WebKitBuild/Debug/lib C:/PlayStationRequirements/lib/libdl.a -Wl,--wrap=dlopen -Wl,--wrap=dlclose -Wl,--wrap=dlsym -Wl,--wrap=dlerror -Wl,--wrap=dladdr -o bin\libWebKit.prx --oformat=prx --start-group @CMakeFiles\WebKit.rsp --end-group && cmd.exe /C "cd /D C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit && C:\tools\python\python2.exe C:/orbis/internal/host_tools/bin/make_self.py -e C:/BW/playstation-debug/build/WebKitBuild/Debug/bin/libWebKit.prx -s C:/BW/playstation-debug/build/WebKitBuild/Debug/bin/libWebKit.sprx -i prx_system""
orbis-ld 8.00.0.514 (rel,orbis,8.000 @472166 x64) C:\orbis\sdk\host_tools\bin\orbis-ld.exe
Command line : warning: L0093: unrecognised option '--no-undefined'
Link : error: L0039: reference to undefined symbol `IPC::jsValueForReplyArguments(JSC::JSGlobalObject*, IPC::MessageName, IPC::Decoder&)' in file "C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit\CMakeFiles\WebKit.dir\__\__\WebKit\DerivedSources\unified-sources\UnifiedSource-54928a2b-17.cpp.o"
Link : error: L0039: reference to undefined symbol `IPC::messageArgumentDescriptions(IPC::MessageName)' in file "C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit\CMakeFiles\WebKit.dir\__\__\WebKit\DerivedSources\unified-sources\UnifiedSource-54928a2b-17.cpp.o"
Link : error: L0039: reference to undefined symbol `IPC::messageReplyArgumentDescriptions(IPC::MessageName)' in file "C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit\CMakeFiles\WebKit.dir\__\__\WebKit\DerivedSources\unified-sources\UnifiedSource-54928a2b-17.cpp.o"
UnifiedSource-54928a2b-17.cpp : error: L0039: reference to undefined symbol `IPC::messageReplyArgumentDescriptions(IPC::MessageName)' in file "C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit\CMakeFiles\WebKit.dir\__\__\WebKit\DerivedSources\unified-sources\UnifiedSource-54928a2b-17.cpp.o"
UnifiedSource-54928a2b-17.cpp : error: L0039: reference to undefined symbol `IPC::messageArgumentDescriptions(IPC::MessageName)' in file "C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit\CMakeFiles\WebKit.dir\__\__\WebKit\DerivedSources\unified-sources\UnifiedSource-54928a2b-17.cpp.o"
UnifiedSource-54928a2b-17.cpp : error: L0039: reference to undefined symbol `IPC::messageReplyArgumentDescriptions(IPC::MessageName)' in file "C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit\CMakeFiles\WebKit.dir\__\__\WebKit\DerivedSources\unified-sources\UnifiedSource-54928a2b-17.cpp.o"
UnifiedSource-54928a2b-17.cpp : error: L0039: reference to undefined symbol `IPC::jsValueForReplyArguments(JSC::JSGlobalObject*, IPC::MessageName, IPC::Decoder&)' in file "C:\BW\playstation-debug\build\WebKitBuild\Debug\Source\WebKit\CMakeFiles\WebKit.dir\__\__\WebKit\DerivedSources\unified-sources\UnifiedSource-54928a2b-17.cpp.o"
ninja: build stopped: subcommand failed.
program finished with exit code 1
Comment 1 Fujii Hironori 2020-10-13 17:40:36 PDT
MessageArgumentDescriptions.cpp is included only in SourcesCocoa.txt.
Should I disable ENABLE_IPC_TESTING_API for non cocoa ports?
Comment 2 Fujii Hironori 2020-10-13 17:48:57 PDT
Created attachment 411287 [details]
WIP patch
Comment 3 Fujii Hironori 2020-10-13 17:49:40 PDT
This WIP patch can't compile.

> WebKit\DerivedSources\MessageArgumentDescriptions.cpp(366): fatal error C1083: Cannot open include file: 'WebCore/CAAudioStreamDescription.h': No such file or directory
Comment 4 Ryosuke Niwa 2020-10-13 19:37:09 PDT
Weird. How come EWS didn't catch this? Is this downstream PlayStation build that we don't have EWS for?
Comment 5 Fujii Hironori 2020-10-13 19:48:16 PDT
It's not strange.
ENABLE_IPC_TESTING_API is enabled only in debug build.
And, WinCairo and PlayStation ports don't have Debug EWS builders.
Comment 6 Fujii Hironori 2020-10-13 19:55:49 PDT
Created attachment 411295 [details]
WIP patch
Comment 7 Fujii Hironori 2020-10-13 21:35:08 PDT
GTK Debug also failed.
https://build.webkit.org/builders/GTK-Linux-64-bit-Debug-Build/builds/36047

It's strange that WPE Debug doesn't fail.
Comment 8 Fujii Hironori 2020-10-13 21:53:40 PDT
Created attachment 411300 [details]
Patch
Comment 9 Ryosuke Niwa 2020-10-13 22:21:20 PDT
Comment on attachment 411300 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411300&action=review

> Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:33
> +#if PLATFORM(COCOA)

We already have PLATFORM(COCOA) above. Revert?

> Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.messages.in:27
> +#if PLATFORM(COCOA)

Ditto.

> Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorderManager.h:64
> +#if ENABLE(MEDIA_STREAM) 

We already check ENABLE(MEDIA_STREAM) above. Revert?

> Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in:27
> +#if ENABLE(MEDIA_STREAM) 

Ditto.
Comment 10 Fujii Hironori 2020-10-13 23:03:10 PDT
Comment on attachment 411300 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411300&action=review

>> Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:33
>> +#if PLATFORM(COCOA)
> 
> We already have PLATFORM(COCOA) above. Revert?

These extra conditions are needed because parameter.condition was None for CAAudioStreamDescription.
attachment#411295 [details] is another approach of fixing parameter.condition to include master_condition.
If you prefer the approach, I'm going to take it.
However, it will take more time for me to take the approach, I'd like to land this patch or revert your r268431 before that.
Comment 11 Darin Adler 2020-10-14 12:17:09 PDT
Comment on attachment 411300 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411300&action=review

>>> Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:33
>>> +#if PLATFORM(COCOA)
>> 
>> We already have PLATFORM(COCOA) above. Revert?
> 
> These extra conditions are needed because parameter.condition was None for CAAudioStreamDescription.
> attachment#411295 [details] is another approach of fixing parameter.condition to include master_condition.
> If you prefer the approach, I'm going to take it.
> However, it will take more time for me to take the approach, I'd like to land this patch or revert your r268431 before that.

Sorry, don’t understand that.

This whole file is already wrapped in #if PLATFORM(COCOA). Adding another #if should have no effect. Please don’t add it.
Comment 12 Darin Adler 2020-10-14 12:18:10 PDT
Comment on attachment 411300 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411300&action=review

>>>> Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:33
>>>> +#if PLATFORM(COCOA)
>>> 
>>> We already have PLATFORM(COCOA) above. Revert?
>> 
>> These extra conditions are needed because parameter.condition was None for CAAudioStreamDescription.
>> attachment#411295 [details] is another approach of fixing parameter.condition to include master_condition.
>> If you prefer the approach, I'm going to take it.
>> However, it will take more time for me to take the approach, I'd like to land this patch or revert your r268431 before that.
> 
> Sorry, don’t understand that.
> 
> This whole file is already wrapped in #if PLATFORM(COCOA). Adding another #if should have no effect. Please don’t add it.

Oh, I get it now.

Yes, we do prefer fixing the script as the longer term solution. If this is a workaround for a problem in the script, please add a comment saying so.
Comment 13 Fujii Hironori 2020-10-14 14:05:02 PDT
Yup, The patch looks too hacky. And, I don't understand the scripts. r268486 reverted the offending changes.

*** This bug has been marked as a duplicate of bug 217565 ***