Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-31577

WebAssembly kits don't get their toolchain updated when setting up emsdk

    XMLWordPrintable

Details

    • c642ec5ce (master)

    Description

      In order to build and run Qt for WebAssembly applications, an Emscripten SDK needs to be registered. Users do that in the Devices -> WebASsembly settings. When applying the settings, the WebAssembl;y plugins detects and registers the Emscripten toolchains and then calls Kit::fix() in the hope that the WebAssembly kits get the matching Emscripten toolchains assigned.

      That used to work up until change 9cf9e0aa344ec3affba749c68c6d4e9f32dfb343 . After that change, some toolchain gets assigned to the WebAssembly kits on IDE start. But calling calls Kit::fix() does not trigger assigning the matching toolchains, anymore.

      Before 9cf9e0aa344ec3affba749c68c6d4e9f32dfb343
      ProjectExplorer!`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1>::operator()(class ProjectExplorer::Toolchain * tc = 0x00000246`1e30d7c0)+0xf [src\plugins\projectexplorer\kitaspects.cpp @ 626]
      ProjectExplorer!std::invoke<`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1> &,ProjectExplorer::Toolchain &>(class ProjectExplorer::ToolchainKitAspect::setBundle::__l2::<lambda_1> * _Obj = 0x000000e1`8d8f03c8, class ProjectExplorer::Toolchain * _Arg1 = 0x00000246`1e30d7c0)+0x1e [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\type_traits @ 1549]
      ProjectExplorer!std::_Invoker_ret<void,1>::_Call<`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1> &,ProjectExplorer::Toolchain &>(class ProjectExplorer::ToolchainKitAspect::setBundle::__l2::<lambda_1> * _Func = 0x000000e1`8d8f03c8, class ProjectExplorer::Toolchain * <_Vals_0> = 0x00000246`1e30d7c0)+0x1e [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\functional @ 652]
      ProjectExplorer!std::_Func_impl_no_alloc<`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1>,void,ProjectExplorer::Toolchain &>::_Do_call(class ProjectExplorer::Toolchain * <_Args_0> = 0x00000246`1e30d7c0)+0x2a [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\functional @ 823]
      ProjectExplorer!std::_Func_class<void,ProjectExplorer::Toolchain &>::operator()(class ProjectExplorer::Toolchain * <_Args_0> = 0x00000246`1e30d7c0)+0x62 [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\functional @ 870]
      ProjectExplorer!ProjectExplorer::ToolchainBundle::forEach<ProjectExplorer::Toolchain>(class std::function<void __cdecl(ProjectExplorer::Toolchain &)> * modifier = 0x000000e1`8d8f03c0)+0xa1 [src\plugins\projectexplorer\toolchain.h @ 252]
      ProjectExplorer!ProjectExplorer::ToolchainKitAspect::setBundle(class ProjectExplorer::Kit * k = 0x00000246`1beef360, class ProjectExplorer::ToolchainBundle * bundle = 0x00000246`1bcc1e50)+0x53 [src\plugins\projectexplorer\kitaspects.cpp @ 625]
      QtSupport!QtSupport::QtKitAspectFactory::fix(class ProjectExplorer::Kit * k = 0x00000246`1beef360)+0x432 [src\plugins\qtsupport\qtkitaspect.cpp @ 300]
      ProjectExplorer!ProjectExplorer::Kit::fix(void)+0xd7 [src\plugins\projectexplorer\kit.cpp @ 259]
      WebAssembly!WebAssembly::Internal::registerToolChains(void)+0x3bc [src\plugins\webassembly\webassemblytoolchain.cpp @ 165]
      WebAssembly!QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (<function> ** f = 0x00000246`1bcfb1e0, void ** arg = 0x000000e1`8d8f0b88)+0x16 [C:\Qt\6.6.2\msvc2019_64\include\QtCore\qobjectdefs_impl.h @ 137]
      WebAssembly!QtPrivate::Functor<void (<function> ** f = 0x00000246`1bcfb1e0, void * __formal = 0x00007ffb`f3118290, void ** arg = 0x000000e1`8d8f0b88)+0x23 [C:\Qt\6.6.2\msvc2019_64\include\QtCore\qobjectdefs_impl.h @ 340]
      WebAssembly!QtPrivate::QCallableObject<void (int which = 0n1, class QtPrivate::QSlotObjectBase * this_ = 0x00000246`1bcfb1d0, class QObject * r = 0x00007ffb`f3118290, void ** a = 0x000000e1`8d8f0b88, bool * ret = 0x00000000`00000000)+0x90 [C:\Qt\6.6.2\msvc2019_64\include\QtCore\qobjectdefs_impl.h @ 534]
      Qt6Cored!QtPrivate::QSlotObjectBase::call(class QObject * r = 0x00007ffb`f3118290, void ** a = 0x000000e1`8d8f0b88)+0x43 [C:\Users\qt\work\qt\qtbase\src\corelib\kernel\qobjectdefs_impl.h @ 433]
      Qt6Cored!doActivate<0>(class QObject * sender = 0x00007ffb`f3118290, int signal_index = 0n10, void ** argv = 0x000000e1`8d8f0b88)+0x908 [C:\Users\qt\work\qt\qtbase\src\corelib\kernel\qobject.cpp @ 4039]
      Qt6Cored!QMetaObject::activate(class QObject * sender = 0x00007ffb`f3118290, struct QMetaObject * m = 0x00007ffb`fc2bc470, int local_signal_index = 0n0, void ** argv = 0x00000000`00000000)+0x68 [C:\Users\qt\work\qt\qtbase\src\corelib\kernel\qobject.cpp @ 4100]
      Utils!Utils::AspectContainer::applied(void)+0x22 [src\libs\utils\Utils_autogen\EWIEGA46WW\moc_aspects.cpp @ 1724]
      Utils!Utils::AspectContainer::apply(void)+0xd5 [src\libs\utils\aspects.cpp @ 3233]
      Core!Core::IOptionsPage::apply(void)+0x18f [src\plugins\coreplugin\dialogs\ioptionspage.cpp @ 270]
      Core!Core::Internal::SettingsDialog::apply(void)+0xaa [src\plugins\coreplugin\dialogs\settingsdialog.cpp @ 759]
      ...
      
      After 9cf9e0aa344ec3affba749c68c6d4e9f32dfb343
      ProjectExplorer!`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1>::operator()(class ProjectExplorer::Toolchain * tc = 0x000001e7`9a0ca860)+0xf [src\plugins\projectexplorer\kitaspects.cpp @ 674]
      ProjectExplorer!std::invoke<`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1> &,ProjectExplorer::Toolchain &>(class ProjectExplorer::ToolchainKitAspect::setBundle::__l2::<lambda_1> * _Obj = 0x00000083`431a58b8, class ProjectExplorer::Toolchain * _Arg1 = 0x000001e7`9a0ca860)+0x1e [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\type_traits @ 1549]
      ProjectExplorer!std::_Invoker_ret<void,1>::_Call<`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1> &,ProjectExplorer::Toolchain &>(class ProjectExplorer::ToolchainKitAspect::setBundle::__l2::<lambda_1> * _Func = 0x00000083`431a58b8, class ProjectExplorer::Toolchain * <_Vals_0> = 0x000001e7`9a0ca860)+0x1e [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\functional @ 652]
      ProjectExplorer!std::_Func_impl_no_alloc<`ProjectExplorer::ToolchainKitAspect::setBundle'::`2'::<lambda_1>,void,ProjectExplorer::Toolchain &>::_Do_call(class ProjectExplorer::Toolchain * <_Args_0> = 0x000001e7`9a0ca860)+0x2a [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\functional @ 823]
      ProjectExplorer!std::_Func_class<void,ProjectExplorer::Toolchain &>::operator()(class ProjectExplorer::Toolchain * <_Args_0> = 0x000001e7`9a0ca860)+0x62 [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\functional @ 870]
      ProjectExplorer!ProjectExplorer::ToolchainBundle::forEach<ProjectExplorer::Toolchain>(class std::function<void __cdecl(ProjectExplorer::Toolchain &)> * modifier = 0x00000083`431a58b0)+0xa1 [src\plugins\projectexplorer\toolchain.h @ 252]
      ProjectExplorer!ProjectExplorer::ToolchainKitAspect::setBundle(class ProjectExplorer::Kit * k = 0x000001e7`9a32b480, class ProjectExplorer::ToolchainBundle * bundle = 0x000001e7`9a325d10)+0x53 [src\plugins\projectexplorer\kitaspects.cpp @ 673]
      ProjectExplorer!ProjectExplorer::setToolchainsFromAbis(class ProjectExplorer::Kit * k = 0x000001e7`9a32b480, class QList<std::pair<Utils::Id,ProjectExplorer::Abi> > * abisByLanguage = 0x00000083`431a5be8)+0x312 [src\plugins\projectexplorer\kitaspects.cpp @ 474]
      ProjectExplorer!ProjectExplorer::setMissingToolchainsToHostAbi(class ProjectExplorer::Kit * k = 0x000001e7`9a32b480, class QList<Utils::Id> * languageBlacklist = 0x00000083`431a5ed0)+0x15c [src\plugins\projectexplorer\kitaspects.cpp @ 489]
      ProjectExplorer!ProjectExplorer::setupForSdkKit(class ProjectExplorer::Kit * k = 0x000001e7`9a32b480)+0x3ab [src\plugins\projectexplorer\kitaspects.cpp @ 523]
      ProjectExplorer!ProjectExplorer::ToolchainKitAspectFactory::setup(class ProjectExplorer::Kit * k = 0x000001e7`9a32b480)+0x6c [src\plugins\projectexplorer\kitaspects.cpp @ 540]
      ProjectExplorer!ProjectExplorer::Kit::setup(void)+0xd7 [src\plugins\projectexplorer\kit.cpp @ 267]
      ProjectExplorer!ProjectExplorer::KitManager::restoreKits(void)+0x49a [src\plugins\projectexplorer\kitmanager.cpp @ 255]
      ProjectExplorer!ProjectExplorer::ProjectExplorerPlugin::delayedInitialize(void)+0x12a [src\plugins\projectexplorer\projectexplorer.cpp @ 2141]
      ExtensionSystem!ExtensionSystem::CppPluginSpec::delayedInitialize(void)+0x109 [src\libs\extensionsystem\pluginspec.cpp @ 1249]
      ExtensionSystem!ExtensionSystem::Internal::PluginManagerPrivate::startDelayedInitialize(void)+0x2e8 [src\libs\extensionsystem\pluginmanager.cpp @ 946]
      ExtensionSystem!QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (<function> * f = 0x00007ffc`3ab22761, class ExtensionSystem::Internal::PluginManagerPrivate * o = 0x000001e7`8f5f7870, void ** arg = 0x00000083`431a7a28)+0x27 [C:\Qt\6.6.2\msvc2019_64\include\QtCore\qobjectdefs_impl.h @ 145]
      ...
      

      Attachments

        For Gerrit Dashboard: QTCREATORBUG-31577
        # Subject Branch Project Status CR V

        Activity

          People

            kandeler Christian Kandeler
            portale Alessandro Portale
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes