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

endless qmake loop with boot2qt on Windows

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: P3: Somewhat important
    • Resolution: Unresolved
    • Affects Version/s: 6.2.3
    • Fix Version/s: None
    • Component/s: Build tools: qmake
    • Labels:
      None
    • Platform/s:
      Windows

      Description

      How to reproduce

      • Install Boot2Qt_6_2_3_NXP_i_MX_8M_Mini_LPDDR4_EVK on Windows with the Qt installer.
      • create a new widgets application with Qt Creator in a long path like D:\works\foobaru\longpath_longpath_longpath_longpath_longpath_longpath
      • build it and watch qmake being called over and over again
      11:13:00: Starting: "D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\make.exe" -j4
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      D:\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\x86_64-w64-mingw32\usr\bin\qmake.exe -o Makefile ..\untitled\untitled.pro -spec linux-oe-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
      

      .h4 Analysis

      • The Makefile target is out of date and calls qmake to re-generate the Makefile.
      • mingw32-make notices that the Makefile is newer than the .pro file and reloads the Makefile.
      • the Makefile target is still out of date and calls qmake to re-generate the Makefile.
      • round and round we go...

      This is apparently, because mingw32-make fails to read the timestamps of files if the paths are too long.

      The project builds fine in a shorter path.

      Makefile: ..\untitled\untitled.pro ..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\linux-oe-g++\qmake.conf ..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\features\spec_pre.prf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\common\unix.conf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\common\linux.conf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\common\sanitize.conf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\common\gcc-base.conf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\common\gcc-base-unix.conf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\common\g++-base.conf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\common\g++-unix.conf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\oe-device-extra.pri \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\qdevice.pri \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\features\device_config.prf \
      		..\..\..\..\Qt\6.2.3\Boot2Qt\imx8mm-lpddr4-evk\toolchain\sysroots\cortexa53-crypto-poky-linux\usr\lib\mkspecs\qconfig.pri \
      ...
      

      After changing the ..\..\..\..\Qt\... paths to D:\Qt\..., the project builds fine.

      .h4 possible solution

      qmake could generate absolute file paths for every path that's outside the source root and outside the build root. Or possibly, just absolute paths everywhere.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            qtbuildsystem Qt Build System Team
            Reporter:
            jbornema Joerg Bornemann
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes