Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-111761

qtwebengine does not compile with yocto sdk

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.5.0
    • Device Creation, WebEngine
    • None

    Description

      It seems the way yocto meta-qt6 integrates cross compile toolchain changed and arm
      toolchain is now chained, instead of being setup by qt-cmake wrapper.

      qtwebengine needs host infomration to be albe to setup host build tools , therefore it runs

        externalproject_add(hostBuild
              SOURCE_DIR  ${CMAKE_CURRENT_LIST_DIR}/host
              BINARY_DIR  ${CMAKE_CURRENT_BINARY_DIR}/host
              PREFIX      host
              USES_TERMINAL_BUILD TRUE
              EXCLUDE_FROM_ALL TRUE
              CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${QT_HOST_PATH}/lib/cmake/Qt6/qt.toolchain.cmake
                         -DWEBENGINE_ROOT_BUILD_DIR=${PROJECT_BINARY_DIR}
                         -DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR}
                         -DGN_TARGET_CPU=${TEST_architecture_arch}
                         -DCMAKE_C_FLAGS=
                         -DCMAKE_CXX_FLAGS=
                         -DQT_FEATURE_qtwebengine_build=${QT_FEATURE_qtwebengine_build}
                         -DQT_FEATURE_qtpdf_build=${QT_FEATURE_qtpdf_build}
          )
      

      This uses host toolchain which should have native toolchain, however curretly this will load arm toolchain giving false infomration.

      What would be the best to solve this issue ?

      /usr/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake -DWEBENGINE_ROOT_BUILD_DIR=/home/stefan/workspaces/qt/qt5-builds/6.5/b2qt -DWEBENGINE_ROOT_SOURCE_DIR=/home/stefan/workspaces/qt/qt5/qtwebengine.6.5 -DGN_TARGET_CPU=arm -DCMAKE_C_FLAGS= -DCMAKE_CXX_FLAGS= -DQT_FEATURE_qtwebengine_build=ON -DQT_FEATURE_qtpdf_build=ON -GNinja /home/stefan/workspaces/qt/qt5/qtwebengine.6.5/src/host && /usr/bin/cmake -E touch /home/stefan/workspaces/qt/qt5-builds/6.5/b2qt/src/host/src/hostBuild-stamp/hostBuild-configure
      

      Will result in:

      -- The CXX compiler identification is GNU 12.2.0
      -- The C compiler identification is GNU 12.2.0
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - failed
      -- Check for working CXX compiler: /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
      -- Check for working CXX compiler: /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ - broken
      CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:62 (message):
        The C++ compiler
      
          "/opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++"
      
        is not able to compile a simple test program.
      

      As you can it loads arm compiler.

      How to call native toolchain , without loading cross compile one ?

      Trace:

      /home/stefan/workspaces/qt/qt5/qtwebengine.6.5/src/host/CMakeLists.txt(16):  set(CMAKE_MODULE_PATH  /home/stefan/workspaces/qt/qt5/qtwebengine.6.5/cmake )
      /home/stefan/workspaces/qt/qt5/qtwebengine.6.5/src/host/CMakeLists.txt(18):  project(QtWebEngineConfigure VERSION 6.5.0 LANGUAGES CXX C )
      /home/stefan/workspaces/qt/qt5-builds/6.5/b2qt/src/host/CMakeFiles/3.23.3/CMakeSystem.cmake(1):  set(CMAKE_HOST_SYSTEM Linux-5.15.69-gentoo )
      /home/stefan/workspaces/qt/qt5-builds/6.5/b2qt/src/host/CMakeFiles/3.23.3/CMakeSystem.cmake(2):  set(CMAKE_HOST_SYSTEM_NAME Linux )
      /home/stefan/workspaces/qt/qt5-builds/6.5/b2qt/src/host/CMakeFiles/3.23.3/CMakeSystem.cmake(3):  set(CMAKE_HOST_SYSTEM_VERSION 5.15.69-gentoo )
      /home/stefan/workspaces/qt/qt5-builds/6.5/b2qt/src/host/CMakeFiles/3.23.3/CMakeSystem.cmake(4):  set(CMAKE_HOST_SYSTEM_PROCESSOR x86_64 )
      /home/stefan/workspaces/qt/qt5-builds/6.5/b2qt/src/host/CMakeFiles/3.23.3/CMakeSystem.cmake(6):  include(/opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(1):  set(__qt_toolchain_used_variables QT_CHAINLOAD_TOOLCHAIN_FILE QT_TOOLCHAIN_INCLUDE_FILE QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR QT_TOOLCHAIN_RELOCATABLE_PREFIX QT_ADDITIONAL_PACKAGES_PREFIX_PATH )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(12):  list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES QT_CHAINLOAD_TOOLCHAIN_FILE;QT_TOOLCHAIN_INCLUDE_FILE;QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR;QT_TOOLCHAIN_RELOCATABLE_PREFIX;QT_ADDITIONAL_PACKAGES_PREFIX_PATH )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(13):  list(REMOVE_DUPLICATES CMAKE_TRY_COMPILE_PLATFORM_VARIABLES )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(18):  if( )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(25):  set(__qt_initially_configured_toolchain_file /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/../../../share/cmake/Qt6Toolchain.cmake )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(26):  set(__qt_chainload_toolchain_file /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/../../../share/cmake/Qt6Toolchain.cmake )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(37):  if(NOT  STREQUAL  )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(40):  if(__qt_chainload_toolchain_file )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(41):  get_filename_component(__qt_chainload_toolchain_file_real_path /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/../../../share/cmake/Qt6Toolchain.cmake REALPATH )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(43):  if(__qt_chainload_toolchain_file_real_path STREQUAL CMAKE_CURRENT_LIST_FILE )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(49):  elseif(NOT EXISTS /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(52):  else()
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake(53):  include(/opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/lib/cmake/Qt6/../../../share/cmake/Qt6Toolchain.cmake )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(1):  cmake_minimum_required(VERSION 3.11 )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(2):  include_guard(GLOBAL )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(4):  get_filename_component(SYSROOTS /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/../../../.. ABSOLUTE )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(6):  set(ENV{PATH} /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/14/bin )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(7):  set(ENV{PKG_CONFIG_SYSROOT_DIR} /opt/b2qt/apalis-imx6/4.1.2/sysroots/cortexa9t2hf-neon-poky-linux-gnueabi )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(8):  set(ENV{PKG_CONFIG_PATH} /opt/b2qt/apalis-imx6/4.1.2/sysroots/cortexa9t2hf-neon-poky-linux-gnueabi/usr/lib/pkgconfig )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(10):  set(CMAKE_SYSTEM_NAME Linux )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(11):  set(CMAKE_SYSROOT /opt/b2qt/apalis-imx6/4.1.2/sysroots/cortexa9t2hf-neon-poky-linux-gnueabi )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(13):  set(CMAKE_FIND_ROOT_PATH /opt/b2qt/apalis-imx6/4.1.2/sysroots/cortexa9t2hf-neon-poky-linux-gnueabi )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(14):  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(15):  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(16):  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(17):  set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(19):  set(CMAKE_SYSTEM_PROCESSOR cortexa9t2hf-neon )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(21):  set(CMAKE_C_COMPILER /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(22):  set(CMAKE_CXX_COMPILER /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ )
      /opt/b2qt/apalis-imx6/4.1.2/sysroots/x86_64-pokysdk-linux/usr/share/cmake/Qt6Toolchain.cmake(24):  set(TARGET_COMPILER_FLAGS  -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 -fstack-protector-strong   -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/b2qt/apalis-imx6/4.1.2/sysroots/cortexa9t2hf-neon-poky-linux-gnueabi )
      

      Attachments

        For Gerrit Dashboard: QTBUG-111761
        # Subject Branch Project Status CR V

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            michal Michal Klocek
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There is 1 open Gerrit change