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

        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