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

parallel static builds break due to premature plugin registration

XMLWordPrintable

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

      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

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

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

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes