[CMake][WPE] WebKitTestRunner shouldn't link object files of JavaScriptCore and WebCore
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
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)
Created attachment 459849 [details] Patch
Created attachment 459850 [details] Patch
Created attachment 459852 [details] Patch
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
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].
This broke builds with LTO enabled. I will try to get the linker error message to paste here.
/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.
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"?
(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]
Thank you. Unfortunately, My PC doesn't have enough RAM to finish the LTO linking. 😥
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?
This issue isn't urgent. I'll revisit it after buying a new machine.
See bug#249368 for another LTO problem.