[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
MessageArgumentDescriptions.cpp is included only in SourcesCocoa.txt. Should I disable ENABLE_IPC_TESTING_API for non cocoa ports?
Created attachment 411287 [details] WIP patch
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
Weird. How come EWS didn't catch this? Is this downstream PlayStation build that we don't have EWS for?
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.
Created attachment 411295 [details] WIP patch
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.
Created attachment 411300 [details] Patch
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 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 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 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.
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 ***