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

FTBFS qtdoc documentviewer example: missing -fPIC -mno-direct-extern-access options

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P3: Somewhat important
    • None
    • dev
    • Build System: CMake
    • None

    Description

      Qt dev compiled with -DFEATURE_no_direct_extern_access=ON.

      The static library abstractviewer inside the example is not getting the required options for compiling:

      [1/22] cd /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app && /usr/bin/cmake -E cmake_autogen /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app/CMakeFiles/abstractviewer_autogen.dir/AutogenInfo.json "" && /usr/bin/cmake -E touch /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app/abstractviewer_autogen/timestamp && /usr/bin/cmake -E cmake_transform_depfile Ninja gccdepfile /home/tjmaciei/src/qt/qt6/qtdoc/examples/demos/documentviewer /home/tjmaciei/src/qt/qt6/qtdoc/examples/demos/documentviewer/app /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app/abstractviewer_autogen/deps /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/CMakeFiles/d/7637e2ee1775488c1587094917ebf431be91fdb0213934be538c39903d8c7160.d
      [2/22] /home/tjmaciei/bin/c++ -DQT_CORE_LIB -DQT_DOCUMENTVIEWER_PRINTSUPPORT -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -I/home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app/abstractviewer_autogen/include -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtCore -isystem /home/tjmaciei/obj/qt/qt6/qtbase/mkspecs/linux-g++-optimised -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtGui -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtWidgets -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtPrintSupport -mno-direct-extern-access -MD -MT app/CMakeFiles/abstractviewer.dir/abstractviewer_autogen/mocs_compilation.cpp.o -MF app/CMakeFiles/abstractviewer.dir/abstractviewer_autogen/mocs_compilation.cpp.o.d -o app/CMakeFiles/abstractviewer.dir/abstractviewer_autogen/mocs_compilation.cpp.o -c /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app/abstractviewer_autogen/mocs_compilation.cpp
      [3/22] /home/tjmaciei/bin/c++ -DQT_CORE_LIB -DQT_DOCUMENTVIEWER_PRINTSUPPORT -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -I/home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/app/abstractviewer_autogen/include -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtCore -isystem /home/tjmaciei/obj/qt/qt6/qtbase/mkspecs/linux-g++-optimised -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtGui -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtWidgets -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtPrintSupport -mno-direct-extern-access -MD -MT app/CMakeFiles/abstractviewer.dir/abstractviewer.cpp.o -MF app/CMakeFiles/abstractviewer.dir/abstractviewer.cpp.o.d -o app/CMakeFiles/abstractviewer.dir/abstractviewer.cpp.o -c /home/tjmaciei/src/qt/qt6/qtdoc/examples/demos/documentviewer/app/abstractviewer.cpp
      

      Note the absence of either -fPIC and -mno-direct-extern-access. They are present when compiling the main application:

      [7/22] /home/tjmaciei/bin/c++ -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DOCUMENTVIEWER_PRINTSUPPORT -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_PLUGIN -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -Djsonviewer_EXPORTS -I/home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/plugins/jsonviewer/jsonviewer_autogen/include -I/home/tjmaciei/src/qt/qt6/qtdoc/examples/demos/documentviewer/plugins/jsonviewer/../../app -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtCore -isystem /home/tjmaciei/obj/qt/qt6/qtbase/mkspecs/linux-g++-optimised -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtGui -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtWidgets -isystem /home/tjmaciei/obj/qt/qt6/qtbase/include/QtPrintSupport -fPIC -mno-direct-extern-access -MD -MT plugins/jsonviewer/CMakeFiles/jsonviewer.dir/jsonviewer_autogen/mocs_compilation.cpp.o -MF plugins/jsonviewer/CMakeFiles/jsonviewer.dir/jsonviewer_autogen/mocs_compilation.cpp.o.d -o plugins/jsonviewer/CMakeFiles/jsonviewer.dir/jsonviewer_autogen/mocs_compilation.cpp.o -c /home/tjmaciei/obj/qt/qt6/qtdoc/examples/demos/documentviewer/plugins/jsonviewer/jsonviewer_autogen/mocs_compilation.cpp
      

      This absence results in a linking failure:

      [2/12] Linking CXX shared module app/libtxtviewer.so
      FAILED: app/libtxtviewer.so 
      : && /home/tjmaciei/bin/c++ -fPIC    -shared  -o app/libtxtviewer.so plugins/txtviewer/CMakeFiles/txtviewer.dir/txtviewer_autogen/mocs_compilation.cpp.o plugins/txtviewer/CMakeFiles/txtviewer.dir/txtviewer.cpp.o  -Wl,-rpath,/home/tjmaciei/obj/qt/qt6/qtbase/lib  app/libabstractviewer.a  /home/tjmaciei/obj/qt/qt6/qtbase/lib/libQt6PrintSupport.t.so.6.7.0  /home/tjmaciei/obj/qt/qt6/qtbase/lib/libQt6Widgets.t.so.6.7.0  /home/tjmaciei/obj/qt/qt6/qtbase/lib/libQt6Gui.t.so.6.7.0  /usr/lib64/libGLX.so  /usr/lib64/libOpenGL.so  /home/tjmaciei/obj/qt/qt6/qtbase/lib/libQt6Core.t.so.6.7.0  -Wl,-rpath-link,/home/tjmaciei/obj/qt/qt6/qtbase/lib && :
      /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: app/libabstractviewer.a(mocs_compilation.cpp.o): relocation R_X86_64_32S against `.data.rel.ro.local' can not be used when making a shared object; recompile with -fPIC
      /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: failed to set dynamic section sizes: bad value
      collect2: error: ld returned 1 exit status
      

      The error comes from a "mocs_compilation", so by definition it's code using QtCore. So why aren't the options being applied?

      Attachments

        1. trace.zst
          100 kB
          Thiago Macieira

        Issue Links

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

          Activity

            People

              semlanik Alexey Edelev
              thiago Thiago Macieira
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes