Bug 241002

Summary: [CMake][WPE] WebKitTestRunner shouldn't link object files of JavaScriptCore and WebCore
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: CMakeAssignee: Fujii Hironori <Hironori.Fujii>
Status: REOPENED    
Severity: Normal CC: annulen, aperez, cgarcia, don.olmstead, ews-watchlist, gyuyoung.kim, keith_miller, mark.lam, mcatanzaro, msaboff, ryuan.choi, saam, sergio, tzagallo
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=240755
https://bugs.webkit.org/show_bug.cgi?id=249368
Bug Depends on: 242340    
Bug Blocks:    
Attachments:
Description Flags
WIP patch
none
Patch
none
Patch
none
Patch none

Fujii Hironori
Reported 2022-05-26 22:20:13 PDT
[CMake][WPE] WebKitTestRunner shouldn't link object files of JavaScriptCore and WebCore
Attachments
WIP patch (1.36 KB, patch)
2022-05-26 23:14 PDT, Fujii Hironori
no flags
Patch (4.70 KB, patch)
2022-05-29 22:37 PDT, Fujii Hironori
no flags
Patch (3.84 KB, patch)
2022-05-29 22:39 PDT, Fujii Hironori
no flags
Patch (4.68 KB, patch)
2022-05-30 01:06 PDT, Fujii Hironori
no flags
Fujii Hironori
Comment 1 2022-05-26 22:26:30 PDT
In WPE builds, bin/WebKitTestRunner depends on a lot of object files of JSC and WebCore. ./Tools/Scripts/build-webkit --wpe --release |& tee build.log ninja -C WebKitBuild/WPE/Release -t query bin/WebKitTestRunner On the other hand, GTK doesn't. ./Tools/Scripts/build-webkit --gtk --release --generate-project-only ninja -C WebKitBuild/GTK/Release -t query bin/WebKitTestRunner
Fujii Hironori
Comment 2 2022-05-26 23:14:15 PDT
Created attachment 459802 [details] WIP patch This WIP patch fixes the dependency by reverting the part of Bug 222860. But it can't compile. FAILED: bin/WebKitTestRunner : && /usr/bin/c++ -fdiagnostics-color=always -Wextra -Wall -pipe -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wcast-align -Wno-tautological-compare -fno-strict-aliasing -fno-exceptions -fno-rtti -O3 -DNDEBUG -fuse-ld=lld -Wl,--disable-new-dtags Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/CyclicRedundancyCheck.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/GeolocationProviderMock.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/Options.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/PixelDumpSupport.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/TestController.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/TestInvocation.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/TestOptions.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/UIScriptControllerCommon.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/WebNotificationProvider.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/WorkQueueManager.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/cairo/TestInvocationCairo.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/libwpe/EventSenderProxyLibWPE.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/libwpe/PlatformWebViewLibWPE.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/wpe/TestControllerWPE.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/wpe/UIScriptControllerWPE.cpp.o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/wpe/main.cpp.o -o bin/WebKitTestRunner -Wl,-rpath,/app/webkit/WebKitBuild/Release/lib Source/JavaScriptCore/CMakeFiles/LowLevelInterpreterLib.dir/./llint/LowLevelInterpreter.cpp.o lib/libTestRunnerShared.a /usr/lib/x86_64-linux-gnu/libglib-2.0.so -lxkbcommon /usr/lib/x86_64-linux-gnu/libWPEBackend-fdo-1.0.so /usr/lib/x86_64-linux-gnu/libcairo.so lib/libWebCoreTestSupport.a lib/libPAL.a lib/libWPEWebKit-1.1.so.0.2.0 /usr/lib/x86_64-linux-gnu/libseccomp.so -latomic /usr/lib/x86_64-linux-gnu/libicudata.so /usr/lib/x86_64-linux-gnu/libicui18n.so /usr/lib/x86_64-linux-gnu/libicuuc.so -lpthread /usr/lib/x86_64-linux-gnu/libsystemd.so /usr/lib/x86_64-linux-gnu/libxml2.so /usr/lib/x86_64-linux-gnu/libsqlite3.so /usr/lib/x86_64-linux-gnu/libxslt.so lib/libANGLE.a -ldl /usr/lib/x86_64-linux-gnu/liblcms2.so /usr/lib/x86_64-linux-gnu/libwoff2dec.so lib/libxdgmime.a /usr/lib/x86_64-linux-gnu/libfontconfig.so /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libharfbuzz-icu.so /usr/lib/x86_64-linux-gnu/libgcrypt.so /usr/lib/x86_64-linux-gnu/libgpg-error.so /usr/lib/x86_64-linux-gnu/libgstallocators-1.0.so /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so /usr/lib/x86_64-linux-gnu/libgstpbutils-1.0.so /usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so /usr/lib/x86_64-linux-gnu/libgsttranscoder-1.0.so /usr/lib/x86_64-linux-gnu/libgsttag-1.0.so /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so /usr/lib/x86_64-linux-gnu/libgstgl-1.0.so /usr/lib/x86_64-linux-gnu/libgstrtp-1.0.so /usr/lib/x86_64-linux-gnu/libgstsdp-1.0.so /usr/lib/x86_64-linux-gnu/libgstwebrtc-1.0.so /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/x86_64-linux-gnu/libgstfft-1.0.so /usr/lib/x86_64-linux-gnu/libocdm.so /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so /usr/lib/x86_64-linux-gnu/libgio-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libopenjp2.so /usr/lib/x86_64-linux-gnu/libwebpdemux.so /usr/lib/x86_64-linux-gnu/libwebp.so /usr/lib/x86_64-linux-gnu/libjxl.so /usr/lib/x86_64-linux-gnu/libavif.so /usr/lib/x86_64-linux-gnu/libsoup-3.0.so /usr/lib/x86_64-linux-gnu/libtasn1.so /usr/lib/x86_64-linux-gnu/libopenxr_loader.so /usr/lib/x86_64-linux-gnu/libgbm.so /usr/lib/x86_64-linux-gnu/libdrm.so lib/libWPEToolingBackends.a -lxkbcommon /usr/lib/x86_64-linux-gnu/libcairo.so /usr/lib/x86_64-linux-gnu/libepoxy.so /usr/lib/x86_64-linux-gnu/libwpe-1.0.so /usr/lib/x86_64-linux-gnu/libatk-1.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so -lwayland-server -lwayland-egl -lwayland-client /usr/lib/x86_64-linux-gnu/libWPEBackend-fdo-1.0.so /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so && : ld.lld: error: undefined symbol: llint_throw_stack_overflow_error >>> referenced by LowLevelInterpreter.cpp >>> Source/JavaScriptCore/CMakeFiles/LowLevelInterpreterLib.dir/./llint/LowLevelInterpreter.cpp.o:(vmEntryToJavaScript) >>> referenced by LowLevelInterpreter.cpp >>> Source/JavaScriptCore/CMakeFiles/LowLevelInterpreterLib.dir/./llint/LowLevelInterpreter.cpp.o:(vmEntryToNative)
Fujii Hironori
Comment 3 2022-05-29 22:37:43 PDT
Fujii Hironori
Comment 4 2022-05-29 22:39:41 PDT
Fujii Hironori
Comment 5 2022-05-30 01:06:54 PDT
EWS
Comment 6 2022-05-30 06:32:44 PDT
Found 3 new test failures: webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html, webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html, webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html
EWS
Comment 7 2022-05-30 15:03:42 PDT
Committed r295034 (251129@main): <https://commits.webkit.org/251129@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 459852 [details].
Michael Catanzaro
Comment 8 2022-07-05 06:50:32 PDT
This broke builds with LTO enabled. I will try to get the linker error message to paste here.
Michael Catanzaro
Comment 9 2022-07-05 09:17:53 PDT
/usr/bin/ld: /tmp/cc7qCcvm.ltrans29.ltrans.o: in function `WTF::SharedTaskFunctor<void (JSC::LinkBuffer&), JSC::AccessCase::generateImpl(JSC::AccessGenerationState&)::{lambda(JSC::LinkBuffer&)#3}>::run(JSC::LinkBuffer&)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/assembler/X86Assembler.h:4055: undefined reference to `vmEntryCustomSetter' /usr/bin/ld: /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/assembler/X86Assembler.h:4055: undefined reference to `vmEntryCustomGetter' /usr/bin/ld: /tmp/cc7qCcvm.ltrans29.ltrans.o: in function `WTF::SharedTaskFunctor<void (JSC::LinkBuffer&), JSC::AccessCase::generateImpl(JSC::AccessGenerationState&)::{lambda(JSC::LinkBuffer&)#3}>::run(JSC::LinkBuffer&)': /usr/include/bits/string_fortified.h:29: undefined reference to `vmEntryCustomGetter' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `vmEntryCustomSetter' /usr/bin/ld: /tmp/cc7qCcvm.ltrans50.ltrans.o: in function `JSC::DFG::SpeculativeJIT::compileCallDOMGetter(JSC::DFG::Node*)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/dfg/DFGJITCompiler.h:71: undefined reference to `vmEntryCustomGetter' /usr/bin/ld: /tmp/cc7qCcvm.ltrans61.ltrans.o: in function `JSC::FTL::(anonymous namespace)::LowerDFGToB3::compileCallDOMGetter() [clone .lto_priv.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:15719: undefined reference to `vmEntryCustomGetter' /usr/bin/ld: /tmp/cc7qCcvm.ltrans71.ltrans.o: in function `JSC::CallFrame::callerFrame(JSC::EntryFrame*&) const': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/CallFrame.cpp:189: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans71.ltrans.o: in function `JSC::CallFrame::convertToStackOverflowFrame(JSC::VM&, JSC::CodeBlock*)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/CallFrame.cpp:350: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans71.ltrans.o: in function `JSC::isFromJSCode(void*)': /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeStart' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeEnd' /usr/bin/ld: /tmp/cc7qCcvm.ltrans71.ltrans.o: in function `JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBufferImpl(JSC::X86Registers::RegisterID, JSC::RegisterSet const&)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/EntryFrame.h:38: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans71.ltrans.o: in function `JSC::AssemblyHelpers::copyCalleeSavesToEntryFrameCalleeSavesBufferImpl(JSC::X86Registers::RegisterID)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/EntryFrame.h:38: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans71.ltrans.o: in function `JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer(JSC::EntryFrame*&, JSC::TempRegisterSet const&)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/EntryFrame.h:38: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans74.ltrans.o: in function `operationOptimize': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/dfg/DFGOSREntry.cpp:302: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans74.ltrans.o:/builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/dfg/DFGOSREntry.cpp:302: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans80.ltrans.o: in function `WTF::SharedTaskFunctor<void (JSC::LinkBuffer&), JSC::nativeForGenerator(JSC::VM&, JSC::ThunkFunctionType, JSC::CodeSpecializationKind, JSC::ThunkEntryType)::{lambda(JSC::LinkBuffer&)#2}>::run(JSC::LinkBuffer&) [clone .lto_priv.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/assembler/X86Assembler.h:4055: undefined reference to `vmEntryHostFunction' /usr/bin/ld: /tmp/cc7qCcvm.ltrans80.ltrans.o: in function `WTF::SharedTaskFunctor<void (JSC::LinkBuffer&), JSC::nativeForGenerator(JSC::VM&, JSC::ThunkFunctionType, JSC::CodeSpecializationKind, JSC::ThunkEntryType)::{lambda(JSC::LinkBuffer&)#2}>::run(JSC::LinkBuffer&) [clone .lto_priv.0]': /usr/include/bits/string_fortified.h:29: undefined reference to `vmEntryHostFunction' /usr/bin/ld: /tmp/cc7qCcvm.ltrans80.ltrans.o: in function `WTF::SharedTaskFunctor<void (JSC::LinkBuffer&), JSC::nativeForGenerator(JSC::VM&, JSC::ThunkFunctionType, JSC::CodeSpecializationKind, JSC::ThunkEntryType)::{lambda(JSC::LinkBuffer&)#1}>::run(JSC::LinkBuffer&) [clone .lto_priv.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/assembler/X86Assembler.h:4055: undefined reference to `vmEntryHostFunction' /usr/bin/ld: /tmp/cc7qCcvm.ltrans80.ltrans.o: in function `WTF::SharedTaskFunctor<void (JSC::LinkBuffer&), JSC::nativeForGenerator(JSC::VM&, JSC::ThunkFunctionType, JSC::CodeSpecializationKind, JSC::ThunkEntryType)::{lambda(JSC::LinkBuffer&)#1}>::run(JSC::LinkBuffer&) [clone .lto_priv.0]': /usr/include/bits/string_fortified.h:29: undefined reference to `vmEntryHostFunction' /usr/bin/ld: /tmp/cc7qCcvm.ltrans85.ltrans.o: in function `JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/Interpreter.cpp:1022: undefined reference to `vmEntryToNative' /usr/bin/ld: /tmp/cc7qCcvm.ltrans85.ltrans.o: in function `JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans86.ltrans.o: in function `JSC::construct(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::ArgList const&, JSC::JSValue)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/Interpreter.cpp:1101: undefined reference to `vmEntryToNative' /usr/bin/ld: /tmp/cc7qCcvm.ltrans86.ltrans.o: in function `JSC::construct(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::ArgList const&, JSC::JSValue)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans87.ltrans.o: in function `std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<JSC::initialize()::{lambda()#1}>(std::once_flag&, JSC::initialize()::{lambda()#1}&&)::{lambda()#1}>(JSC::initialize()::{lambda()#1}&)::{lambda()#1}::_FUN()': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/llint/LLIntData.cpp:78: undefined reference to `llint_entry' /usr/bin/ld: /tmp/cc7qCcvm.ltrans87.ltrans.o:/builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/llint/LLIntData.cpp:81: undefined reference to `wasm_entry' /usr/bin/ld: /tmp/cc7qCcvm.ltrans92.ltrans.o: in function `JSC::JSModuleRecord::evaluate(JSC::JSGlobalObject*, JSC::JSValue, JSC::JSValue)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans97.ltrans.o: in function `operationStringProtoFuncReplaceRegExpEmptyStr': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans98.ltrans.o: in function `operationStringProtoFuncReplaceRegExpString': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans98.ltrans.o: in function `JSC::stringProtoFuncReplaceUsingRegExp(JSC::JSGlobalObject*, JSC::CallFrame*) [clone .lto_priv.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans98.ltrans.o: in function `JSC::stringProtoFuncReplaceUsingStringSearch(JSC::JSGlobalObject*, JSC::CallFrame*) [clone .lto_priv.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans98.ltrans.o:/builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: more undefined references to `vmEntryToJavaScript' follow /usr/bin/ld: /tmp/cc7qCcvm.ltrans99.ltrans.o: in function `JSC::sanitizeStackForVM(JSC::VM&)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/runtime/VM.cpp:1302: undefined reference to `sanitizeStackForVMImpl' /usr/bin/ld: /tmp/cc7qCcvm.ltrans100.ltrans.o: in function `WTF::ScopedLambdaRefFunctor<void (WTF::PlatformRegisters&), JSC::VMTraps::SignalSender::work()::{lambda(WTF::PlatformRegisters&)#1}>::implFunction(void*, WTF::PlatformRegisters&)': /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeStart' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeEnd' /usr/bin/ld: /tmp/cc7qCcvm.ltrans104.ltrans.o: in function `WTF::Detail::CallableWrapper<JSC::Wasm::prepareFastMemory()::{lambda()#1}::operator()() const::{lambda(WTF::Signal, WTF::SigInfo&, WTF::PlatformRegisters&)#1}, WTF::SignalAction, WTF::Signal, WTF::SigInfo&, WTF::PlatformRegisters&>::call(WTF::Signal, WTF::SigInfo&, WTF::PlatformRegisters&)': /usr/include/bits/string_fortified.h:29: undefined reference to `wasmLLIntPCRangeStart' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `wasmLLIntPCRangeEnd' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `wasmLLIntPCRangeStart' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `wasmLLIntPCRangeEnd' /usr/bin/ld: /tmp/cc7qCcvm.ltrans107.ltrans.o: in function `JSC::callWebAssemblyFunction(JSC::JSGlobalObject*, JSC::CallFrame*)': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/llint/LLIntThunks.h:64: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans115.ltrans.o: in function `JSC::SamplingProfiler::takeSample(WTF::Seconds&) [clone .part.0] [clone .constprop.0]': /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeStart' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeEnd' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeStart' /usr/bin/ld: /usr/include/bits/string_fortified.h:29: undefined reference to `llintPCRangeEnd' /usr/bin/ld: /tmp/cc7qCcvm.ltrans115.ltrans.o: in function `JSC::SamplingProfiler::takeSample(WTF::Seconds&) [clone .part.0] [clone .constprop.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/CallFrame.cpp:199: undefined reference to `vmEntryRecord' /usr/bin/ld: /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/CallFrame.cpp:199: undefined reference to `vmEntryRecord' /usr/bin/ld: /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/CallFrame.cpp:199: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans115.ltrans.o: in function `JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*) [clone .constprop.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' /usr/bin/ld: /tmp/cc7qCcvm.ltrans115.ltrans.o: in function `JSC::Interpreter::unwind(JSC::VM&, JSC::CallFrame*&, JSC::Exception*) [clone .constprop.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/Interpreter.cpp:645: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans115.ltrans.o:/builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/interpreter/Interpreter.cpp:645: undefined reference to `vmEntryRecord' /usr/bin/ld: /tmp/cc7qCcvm.ltrans121.ltrans.o: in function `JSC::Interpreter::execute(JSC::EvalExecutable*, JSC::JSGlobalObject*, JSC::JSValue, JSC::JSScope*) [clone .constprop.0]': /builddir/build/BUILD/webkitgtk-2.36.4/Source/JavaScriptCore/jit/JITCodeInlines.h:42: undefined reference to `vmEntryToJavaScript' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed.
Fujii Hironori
Comment 10 2022-07-06 00:23:11 PDT
I haven't tried LTO build. How did you build? Which port? Can I use build-webkit for LTO build, like "build-webkit --gtk --release --lto-mode=full"?
Adrian Perez
Comment 11 2022-07-06 00:54:17 PDT
(In reply to Fujii Hironori from comment #10) > I haven't tried LTO build. How did you build? Which port? > Can I use build-webkit for LTO build, like "build-webkit --gtk --release > --lto-mode=full"? AFAIR the “--lto-mode=” flag does not work well with the CMake ports. This is the easiest way to reproduce: CFLAGS=-flto CXXFLAGS=-flto LDFLAGS=-flto \ build-webkit --gtk [--release | --debug]
Fujii Hironori
Comment 12 2022-07-06 10:54:40 PDT
Thank you. Unfortunately, My PC doesn't have enough RAM to finish the LTO linking. 😥
Michael Catanzaro
Comment 13 2022-07-06 12:48:15 PDT
It looks like something is wrong specifically with inline assembler after this change? The functions generated from inline assembler are missing at link time? (In reply to Fujii Hironori from comment #12) > Thank you. Unfortunately, My PC doesn't have enough RAM to finish the LTO > linking. 😥 Would you be interested in investigating further if we find a way to get you remote access to beefier hardware?
Fujii Hironori
Comment 14 2022-07-06 14:16:25 PDT
This issue isn't urgent. I'll revisit it after buying a new machine.
Fujii Hironori
Comment 15 2022-12-15 17:21:26 PST
See bug#249368 for another LTO problem.
Note You need to log in before you can comment on or make changes to this bug.