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

Include cross-repo resource object files in generated prl files for Qt static builds

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • P2: Important
    • None
    • None
    • Build System: CMake

    Description

      Many resource object files were not added into generated .prl files, which led to undefined symbol linker errors when linking a final application using qmake and a static build of Qt.

      See https://bugreports.qt.io/browse/QTBUG-87702 and https://bugreports.qt.io/browse/QTBUG-88425 and their fixes for details.

      After those fixes, we process and include resource object files only for the repo that is being built. Aka, prl files for qtdeclarative modules will only include resource object files that were built as part of qtdeclarative, but will not inherit resource object files that were built as part of qtbase (e.g. mimetypes).

      Depending on the project, and which dependencies are explicitly listed in the QT += qmake section (as well as imported plugins and qml plugins), this could lead to linker errors or worse, runtime errors, due to missing resource initialisation.

      We need to export resource object file information for a built repo (qtbase), in a way that can then be used in leaf repos (qtdeclarative), so that the lear repo prl files contain resource object files for all dependent modules / plugins across all repos.

      Attachments

        Issue Links

          Activity

            People

              qtbuildsystem Qt Build System Team
              alexandru.croitor Alexandru Croitor
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: