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

parallel static builds break due to premature plugin registration

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P2: Important
    • None
    • 5.7.0 Beta, 5.11.1
    • Build System

    Description

      Hi, Everyone,

      Got errors for Qt builds using Mingw-w64:

      configure -prefix "%CD%\..\GCC64r\lib" -release -opensource -c++std c++11 -static -plugin-sql-sqlite -opengl desktop -openvg -I "%CD%\..\..\libMESA-11.2-dev\GCC64r\include" -platform win32-g++ -iconv -no-pch -qt-zlib -qt-pcre -icu -I "%CD%\..\..\libICU-57.1\GCC64r\include" -L "%CD%\..\..\libICU-57.1\GCC64r\lib" -qt-libpng -qt-libjpeg -avx -openssl -I "%CD%\..\..\libOPENSSL-1.1.0-dev\GCC64r\include" -L "%CD%\..\..\libOPENSSL-1.1.0-dev\GCC64r\lib" -dbus-runtime -confirm-license && mingw32-make -j%NUMBER_OF_PROCESSORS%
      
      [snip]
      
      g++: error: C:\libQT-5.7-dev\src\qtimageformats\plugins\imageformats\libqtiff.a: No such file or directory
      mingw32-make[5]: *** [release\enumerator.exe] Error 1
      mingw32-make[4]: *** [release] Error 2
      mingw32-make[3]: *** [sub-enumerator-make_first-ordered] Error 2
      mingw32-make[2]: *** [sub-serialport-make_first] Error 2
      mingw32-make[1]: *** [sub-examples-make_first] Error 2
      mingw32-make: *** [module-qtserialport-make_first] Error 2
      mingw32-make: *** Waiting for unfinished jobs....
      
      [snip]
      
      g++: error: C:\libQT-5.7-dev\src\qtimageformats\plugins\imageformats\libqwebp.a: No such file or directory
      mingw32-make[4]: *** [..\..\bin\dumpdoc.exe] Error 1
      mingw32-make[3]: *** [release] Error 2
      mingw32-make[2]: *** [sub-dumpdoc-make_first-ordered] Error 2
      mingw32-make[1]: *** [sub-tools-make_first] Error 2
      mingw32-make[1]: *** Waiting for unfinished jobs....
      g++: error: C:\libQT-5.7-dev\src\qtimageformats\plugins\imageformats\libqwebp.a: No such file or directory
      mingw32-make[5]: *** [release\webbrowser.exe] Error 1
      mingw32-make[4]: *** [release] Error 2
      mingw32-make[3]: *** [sub-webbrowser-make_first] Error 2
      mingw32-make[2]: *** [sub-activeqt-make_first] Error 2
      mingw32-make[1]: *** [sub-examples-make_first] Error 2
      mingw32-make: *** [module-qtactiveqt-make_first] Error 2
      

      ICC:

      configure -prefix "%CD%\..\ICC64r\lib" -release -opensource -c++std c++11 -static -plugin-sql-sqlite -opengl desktop -openvg -I "%CD%\..\..\libMESA-11.2-dev\ICC64r\include" -platform win32-icc -iconv -no-pch -qt-zlib -qt-pcre -icu -I "%CD%\..\..\libICU-57.1\ICC64r\include" -L "%CD%\..\..\libICU-57.1\ICC64r\lib" -qt-libpng -qt-libjpeg -avx -openssl -I "%CD%\..\..\libOPENSSL-1.1.0-dev\ICC64r\lib\include" -L "%CD%\..\..\libOPENSSL-1.1.0-dev\ICC64r\lib\lib" -dbus-runtime -confirm-license && jom
      
      [snip]
      
      ipo: error #11018: Cannot open C:\libQT-5.7-dev\src\qtimageformats\plugins\imageformats\qwebp.lib
      remark #11074: Inlining inhibited by limit max-size 
      remark #11075: To get full report use -Qopt-report:4 -Qopt-report-phase ipo
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\serialport\enumerator\Makefile.Release [release\enumerator.exe] Error 1181
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\serialport\enumerator\Makefile [release] Error 2
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\serialport\Makefile [sub-enumerator-make_first-ordered] Error 2
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\Makefile [sub-serialport-make_first] Error 2
      jom: C:\libQT-5.7-dev\src\qtserialport\Makefile [sub-examples-make_first] Error 2
      jom: C:\libQT-5.7-dev\src\Makefile [module-qtserialport-make_first] Error 2
      Project MESSAGE: perl -w C:\libQT-5.7-dev\src\qtbase\bin\syncqt.pl -module ActiveQt -version 5.7.0 -outdir C:/libQT-5.7-dev/src/qtactiveqt C:/libQT-5.7-dev/src/qtactiveqt
      
      [snip]
      
      ipo: error #11018: Cannot open C:\libQT-5.7-dev\src\qtimageformats\plugins\imageformats\qwebp.lib
      jom: C:\libQT-5.7-dev\src\qtactiveqt\tools\dumpdoc\Makefile.Release [..\..\bin\dumpdoc.exe] Error 1181
      jom: C:\libQT-5.7-dev\src\qtactiveqt\tools\dumpdoc\Makefile [release] Error 2
      jom: C:\libQT-5.7-dev\src\qtactiveqt\tools\Makefile [sub-dumpdoc-make_first-ordered] Error 2
      jom: C:\libQT-5.7-dev\src\qtactiveqt\Makefile [sub-tools-make_first] Error 2
      remark #11074: Inlining inhibited by limit max-size 
      remark #11075: To get full report use -Qopt-report:4 -Qopt-report-phase ipo
      ipo: error #11018: Cannot open C:\libQT-5.7-dev\src\qtimageformats\plugins\imageformats\qwebp.lib
      jom: C:\libQT-5.7-dev\src\qtactiveqt\examples\activeqt\comapp\Makefile.Release [release\comapp.exe] Error 1181
      jom: C:\libQT-5.7-dev\src\qtactiveqt\examples\activeqt\comapp\Makefile [release] Error 2
      jom: C:\libQT-5.7-dev\src\qtactiveqt\examples\activeqt\Makefile [sub-comapp-make_first] Error 2
      ipo: error #11018: Cannot open C:\libQT-5.7-dev\src\qtimageformats\plugins\imageformats\qwebp.lib
      jom: C:\libQT-5.7-dev\src\qtactiveqt\examples\activeqt\menus\Makefile.Release [release\menusax.exe] Error 1181
      jom: C:\libQT-5.7-dev\src\qtactiveqt\examples\activeqt\menus\Makefile [release] Error 2
      jom: C:\libQT-5.7-dev\src\qtactiveqt\examples\activeqt\Makefile [sub-menus-make_first] Error 2
      

      and MSVC:

      configure -prefix "%CD%\..\MSVC64r\lib" -release -opensource -c++std c++11 -static -plugin-sql-sqlite -opengl desktop -openvg -I "%CD%\..\..\libMESA-11.2-dev\MSVC64r\include" -platform win32-msvc2015 -iconv -no-pch -qt-zlib -qt-pcre -icu -I "%CD%\..\..\libICU-57.1\MSVC64r\include" -L "%CD%\..\..\libICU-57.1\MSVC64r\lib" -qt-libpng -qt-libjpeg -avx -openssl -I "%CD%\..\..\libOPENSSL-1.1.0-dev\MSVC64r\lib\include" -L "%CD%\..\..\libOPENSSL-1.1.0-dev\MSVC64r\lib\lib" -dbus-runtime -confirm-license && jom /J2
      
      [snip]
      
      Project MESSAGE: perl -w C:\libQT-5.7-dev\src\qtbase\bin\syncqt.pl -module QtSerialPort -version 5.7.0 -outdir C:/libQT-5.7-dev/src/qtserialport C:/libQT-5.7-dev/src/qtserialport
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\serialport\enumerator\Makefile.Release [release\enumerator.exe] Error 1181
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\serialport\enumerator\Makefile [release] Error 2
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\serialport\Makefile [sub-enumerator-make_first-ordered] Error 2
      jom: C:\libQT-5.7-dev\src\qtserialport\examples\Makefile [sub-serialport-make_first] Error 2
      jom: C:\libQT-5.7-dev\src\qtserialport\Makefile [sub-examples-make_first] Error 2
      jom: C:\libQT-5.7-dev\src\Makefile [module-qtserialport-make_first] Error 2
      

      Error reproduced for static builds only, if parallel build jobs (2 or more) were executed. It not appear for shared builds, or if make used without -j key and nmake used instead of jom.

      Error occur because some binaries requested before they were built. Re-execution of make/jom allow to successfully finish all builds.

      It's not a big thing to repeat make/jom commands for a single build. But it's a real pain for a scripted builds, since generate errors where not needed. In addition, it could be a blocker for implementing static builds into Qt CI system, when and if such task would be planned.

      Regards,
      Alexander

      Attachments

        Issue Links

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

          Activity

            People

              qtbuildsystem Qt Build System Team
              sav sav
              Votes:
              4 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes