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

gcc v4.8.2: error: no matching function for call to ‘atomic_compare_exchange_strong_explicit / template argument deduction/substitution failed

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.14.1, 5.15.0 Alpha
    • 5.14.0
    • Core: I/O
    • None
    • Linux/X11
    • 5034f8d8d5e05dc1a477d5fabe486a0997679b97 (qt/qtbase/5.14)

    Description

      We normally do a static build of Qt on an old platform that uses gcc v4.8.2.

      Up until Qt v5.13.2 this was no problem, but Qt v5.14.0 (after using a preliminary patch for QTBUG-80765) fails on:

      g++ -c -include .pch/Qt5Core -pipe -O3 -fPIC -std=c++11 -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -Wall -Wextra -Wvla -Wno-missing-field-initializers -D_REENTRANT -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_USING_NAM
      ESPACE -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_DEPRECATED_WA
      RNINGS_SINCE=0x060000 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DPCRE2_CODE_UNIT_WIDTH=16 -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib -I. -Iglobal -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty/md5 -I/home/development/
      qt-everywhere-src-5.14.0/qtbase/src/3rdparty/md4 -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty/sha3 -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty/double-conversion/incl
      ude -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty/harfbuzz/src -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty/forkfd -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty/tinycbor/src -I/home/development/qt-everywhere-src-5
      .14.0/qtbase/include -I/home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore -I../../include -I../../include/QtCore -I/home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/5.14.0 -I/home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/5.1
      4.0/QtCore -I../../include/QtCore/5.14.0 -I../../include/QtCore/5.14.0/QtCore -I.moc -I.tracegen -I/home/development/qt-everywhere-src-5.14.0/qtbase/src/3rdparty/pcre2/src -isystem /usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/home/development/qt-everywhere-src-
      5.14.0/qtbase/mkspecs/linux-g++ -o .obj/forkfd_qt.o /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/forkfd_qt.cpp
      In file included from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd_atomic.h:29:0,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c:93,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/forkfd_qt.cpp:48:
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c: In function ‘ProcessInfo* tryAllocateInSection(Header*, ProcessInfo*, int)’:
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:60:83: error: no matching function for call to ‘atomic_compare_exchange_strong_explicit(ffd_atomic_int*, int*, int, std::memory_order, std::memory_order)’
           atomic_compare_exchange_strong_explicit(ptr, expected, desired, order1, order2)
                                                                                         ^
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c:159:17: note: in expansion of macro ‘ffd_atomic_compare_exchange’
                   if (ffd_atomic_compare_exchange(&entries[i].pid, &expected_pid,
                       ^
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:60:83: note: candidates are:
           atomic_compare_exchange_strong_explicit(ptr, expected, desired, order1, order2)
                                                                                         ^
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c:159:17: note: in expansion of macro ‘ffd_atomic_compare_exchange’
                   if (ffd_atomic_compare_exchange(&entries[i].pid, &expected_pid,
                       ^
      In file included from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:45:0,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qatomic_cxx11.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/thread/qbasicatomic.h:53,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qbasicatomic.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/thread/qatomic.h:46,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qatomic.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/global/qglobal.h:1296,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qglobal.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/global/qt_pch.h:56:
      /usr/include/c++/4.8.2/atomic:881:5: note: template<class _ITp> bool std::atomic_compare_exchange_strong_explicit(volatile std::atomic<_ITp>*, _ITp*, _ITp, std::memory_order, std::memory_order)
           atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a,
           ^
      /usr/include/c++/4.8.2/atomic:881:5: note:   template argument deduction/substitution failed:
      In file included from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd_atomic.h:29:0,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c:93,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/forkfd_qt.cpp:48:
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:60:83: note:   ‘ffd_atomic_int {aka std::__atomic_base<int>}’ is not derived from ‘volatile std::atomic<_ITp>’
           atomic_compare_exchange_strong_explicit(ptr, expected, desired, order1, order2)
                                                                                         ^
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c:159:17: note: in expansion of macro ‘ffd_atomic_compare_exchange’
                   if (ffd_atomic_compare_exchange(&entries[i].pid, &expected_pid,
                       ^
      In file included from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:45:0,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qatomic_cxx11.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/thread/qbasicatomic.h:53,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qbasicatomic.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/thread/qatomic.h:46,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qatomic.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/../../src/corelib/global/qglobal.h:1296,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/include/QtCore/qglobal.h:1,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/global/qt_pch.h:56:
      /usr/include/c++/4.8.2/atomic:873:5: note: template<class _ITp> bool std::atomic_compare_exchange_strong_explicit(std::atomic<_ITp>*, _ITp*, _ITp, std::memory_order, std::memory_order)
           atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a,
           ^
      /usr/include/c++/4.8.2/atomic:873:5: note:   template argument deduction/substitution failed:
      In file included from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd_atomic.h:29:0,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c:93,
                       from /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/forkfd_qt.cpp:48:
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:60:83: note:   ‘ffd_atomic_int {aka std::__atomic_base<int>}’ is not derived from ‘std::atomic<_ITp>’
           atomic_compare_exchange_strong_explicit(ptr, expected, desired, order1, order2)
                                                                                         ^
      /home/development/qt-everywhere-src-5.14.0/qtbase/src/corelib/io/../../3rdparty/forkfd/forkfd.c:159:17: note: in expansion of macro ‘ffd_atomic_compare_exchange’
      
      ...

      Attachments

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

        Activity

          People

            thiago Thiago Macieira
            jirauser24743 user-678dd (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes