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

Precompiled headers break Qt 6.0.0 on Ubuntu 20.04

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Invalid
    • Not Evaluated
    • None
    • 6.0.0
    • Build System: CMake
    • None
    • Linux/X11

    Description

      I have a strange error that I fail to resolve. I can successfully build Qt 6.0.0 on a number of very similar Ubuntu 20.04 desktops, except one. The Linus installations are similar enough that I can see no relevant differences in cmake configure output, in CMakeCache.txt and in build.ninja. However, one of the machines consistently fails to build, with thousands of errors that are similar to the one given here:

      [416/2907] /data/memmenlauer/BioDataAnalysis/user-artifacts-Ubuntu-Skylake-20.04-x86_64-gcc9/Tools/lib/ccache/c++ -DCore_EXPORTS -DELF_INTERPRETER=\"/lib64/ld-linux-x86-64.so.2\" -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_CORE_LIB -DQT_CORE_QOBJECT_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -Iqtbase/src/corelib/Core_autogen/include -Iqtbase/include -Iqtbase/include/QtCore -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib -Iqtbase/src/corelib -Iqtbase/src/corelib/global -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/../3rdparty/tinycbor/src -Iqtbase/include/QtCore/6.0.0 -Iqtbase/include/QtCore/6.0.0/QtCore -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/../3rdparty/forkfd -Iqtbase/src/corelib/.rcc -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++ -isystem /data/memmenlauer/BioDataAnalysis/user-artifacts-Ubuntu-Skylake-20.04-x86_64-gcc9/Debug/include -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -g -Og -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wsuggest-override -fPIC -std=c++17 -Winvalid-pch -include /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx -MD -MT qtbase/src/corelib/CMakeFiles/Core.dir/io/qdir.cpp.o -MF qtbase/src/corelib/CMakeFiles/Core.dir/io/qdir.cpp.o.d -o qtbase/src/corelib/CMakeFiles/Core.dir/io/qdir.cpp.o -c /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp
      FAILED: qtbase/src/corelib/CMakeFiles/Core.dir/io/qdir.cpp.o 
      /data/memmenlauer/BioDataAnalysis/user-artifacts-Ubuntu-Skylake-20.04-x86_64-gcc9/Tools/lib/ccache/c++ -DCore_EXPORTS -DELF_INTERPRETER=\"/lib64/ld-linux-x86-64.so.2\" -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_CORE_LIB -DQT_CORE_QOBJECT_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -Iqtbase/src/corelib/Core_autogen/include -Iqtbase/include -Iqtbase/include/QtCore -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib -Iqtbase/src/corelib -Iqtbase/src/corelib/global -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/../3rdparty/tinycbor/src -Iqtbase/include/QtCore/6.0.0 -Iqtbase/include/QtCore/6.0.0/QtCore -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/../3rdparty/forkfd -Iqtbase/src/corelib/.rcc -I/home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++ -isystem /data/memmenlauer/BioDataAnalysis/user-artifacts-Ubuntu-Skylake-20.04-x86_64-gcc9/Debug/include -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -g -Og -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wsuggest-override -fPIC -std=c++17 -Winvalid-pch -include /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx -MD -MT qtbase/src/corelib/CMakeFiles/Core.dir/io/qdir.cpp.o -MF qtbase/src/corelib/CMakeFiles/Core.dir/io/qdir.cpp.o.d -o qtbase/src/corelib/CMakeFiles/Core.dir/io/qdir.cpp.o -c /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp
      In file included from qtbase/include/QtCore/../../../../../../../../home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++/qplatformdefs.h:45,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp:40:
      /usr/include/c++/9/type_traits:57:12: error: redefinition of ‘struct std::integral_constant<_Tp, __v>’
         57 |     struct integral_constant
            |            ^~~~~~~~~~~~~~~~~
      In file included from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qt_pch.h:56,
                       from /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx:5,
                       from <command-line>:1:
      /usr/include/c++/9/type_traits:57:12: note: previous definition of ‘struct std::integral_constant<_Tp, __v>’
         57 |     struct integral_constant
            |            ^~~~~~~~~~~~~~~~~
      In file included from qtbase/include/QtCore/../../../../../../../../home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++/qplatformdefs.h:45,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp:40:
      /usr/include/c++/9/type_traits:98:12: error: redefinition of ‘struct std::__or_<>’
         98 |     struct __or_<>
            |            ^~~~~~~
      In file included from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qt_pch.h:56,
                       from /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx:5,
                       from <command-line>:1:
      /usr/include/c++/9/type_traits:98:12: note: previous definition of ‘struct std::__or_<>’
         98 |     struct __or_<>
            |            ^~~~~~~
      In file included from qtbase/include/QtCore/../../../../../../../../home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++/qplatformdefs.h:45,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp:40:
      /usr/include/c++/9/type_traits:103:12: error: redefinition of ‘struct std::__or_<_B1>’
        103 |     struct __or_<_B1>
            |            ^~~~~~~~~~
      In file included from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qt_pch.h:56,
                       from /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx:5,
                       from <command-line>:1:
      /usr/include/c++/9/type_traits:103:12: note: previous definition of ‘struct std::__or_<_B1>’
        103 |     struct __or_<_B1>
            |            ^~~~~~~~~~
      In file included from qtbase/include/QtCore/../../../../../../../../home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++/qplatformdefs.h:45,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp:40:
      /usr/include/c++/9/type_traits:108:12: error: redefinition of ‘struct std::__or_<_B1, _B2>’
        108 |     struct __or_<_B1, _B2>
            |            ^~~~~~~~~~~~~~~
      In file included from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qt_pch.h:56,
                       from /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx:5,
                       from <command-line>:1:
      /usr/include/c++/9/type_traits:108:12: note: previous definition of ‘struct std::__or_<_B1, _B2>’
        108 |     struct __or_<_B1, _B2>
            |            ^~~~~~~~~~~~~~~
      In file included from qtbase/include/QtCore/../../../../../../../../home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++/qplatformdefs.h:45,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp:40:
      /usr/include/c++/9/type_traits:113:12: error: redefinition of ‘struct std::__or_<_B1, _B2, _B3, _Bn ...>’
        113 |     struct __or_<_B1, _B2, _B3, _Bn...>
            |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qt_pch.h:56,
                       from /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx:5,
                       from <command-line>:1:
      /usr/include/c++/9/type_traits:113:12: note: previous definition of ‘struct std::__or_<_B1, _B2, _B3, _Bn ...>’
        113 |     struct __or_<_B1, _B2, _B3, _Bn...>
            |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from qtbase/include/QtCore/../../../../../../../../home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/mkspecs/linux-g++/qplatformdefs.h:45,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/io/qdir.cpp:40:
      /usr/include/c++/9/type_traits:121:12: error: redefinition of ‘struct std::__and_<>’
        121 |     struct __and_<>
            |            ^~~~~~~~
      In file included from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qglobal.h:45,
                       from qtbase/include/QtCore/qglobal.h:1,
                       from /home/memmenlauer/BioDataAnalysis/Source/qt/qtbase/src/corelib/global/qt_pch.h:56,
                       from /data/memmenlauer/BioDataAnalysis/tmp/qt/qtbase/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx:5,
                       from <command-line>:1:
      /usr/include/c++/9/type_traits:121:12: note: previous definition of ‘struct std::__and_<>’
        121 |     struct __and_<>
            |            ^~~~~~~~
      ...
      

      When I disable precompiled headers with cmake options "-DBUILD_WITH_PCH=OFF" "-DFEATURE_precompile_header=OFF" the build works on the previously failing machine.

      I'm using ccache on all build machines (working and non-working), and cleaning the cache before the build did not make a difference, so I doubt ccache is involved in this.

      Does this mean anything to anyone?

      Attachments

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

        Activity

          People

            qtbuildsystem Qt Build System Team
            emmenlau Mario Emmenlauer
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes