[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#837162: marked as done (dh-acc: Testing C++ headers with dh-acc results in: function body not available)



Your message dated Thu, 19 Jan 2017 14:21:25 +0100
with message-id <4286c844-c37f-9ed0-9508-cb7ba3148e8a@debian.org>
and subject line Re: dh-acc: Testing C++ headers with dh-acc results in: function body not available
has caused the Debian Bug report #837162,
regarding dh-acc: Testing C++ headers with dh-acc results in: function body not available
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
837162: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837162
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: dh-acc
Version: 1.99.22-1
Severity: important

Hi,

Lately, I've been having some issues with dh-acc as used in the KDE packages 
(only used to test the headers running in an autopkgtest test), the run stops 
in a gcc error related to an inline function that can't be expanded. For 
example the kglobalaccel acc test log ends with:

 The GCC parameters:
   gcc -fdump-translation-unit -fkeep-inline-functions -c -x c++-header -fpermissive -w  -fPIC "/tmp/7OQ4QvzIdj/dump1.h"  -I/usr/include/KF5/KGlobalAccel -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore
 
 In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QtCore:13:0,
                  from /usr/include/x86_64-linux-gnu/qt5/QtDBus/QtDBusDepends:3,
                  from /usr/include/x86_64-linux-gnu/qt5/QtDBus/QtDBus:3,
                  from /usr/include/KF5/KGlobalAccel/private/kglobalacceld.h:31,
                  from /tmp/7OQ4QvzIdj/dump1.h:10:
 /usr/include/x86_64-linux-gnu/qt5/QtCore/qendian.h: In function ‘void qbswap(T, uchar*) [with T = long long unsigned int; uchar = unsigned char]’:
 /usr/include/x86_64-linux-gnu/qt5/QtCore/qendian.h:72:44: error: inlining failed in call to always_inline ‘void qToUnaligned(T, uchar*) [with T = long long unsigned int; uchar = unsigned char]’: function body not available
  template <typename T> Q_ALWAYS_INLINE void qToUnaligned(const T src, uchar *dest)
                                             ^~~~~~~~~~~~
 /usr/include/x86_64-linux-gnu/qt5/QtCore/qendian.h:120:59: note: called from here
      qToUnaligned<quint64>(__builtin_bswap64(source), dest);
                                                            ^

Removing either the "-fkeep-inline-functions" parameter or the "-x c++-header" 
in the gcc call makes the gcc invocation to succeed. But, in principle, 
keeping those arguments make sense for acc.

I've seen this issue in some libstdc++ calls, and not only in qt5 ones, but 
I'm still not sure if the issue is in to gcc, libstdc++ or if something's 
really wrong with acc.

Please reassign as you see fit.

Happy hacking,

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'buildd-unstable'), (500, 'testing'), (500, 'stable'), (50, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf

Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)

Versions of packages dh-acc depends on:
ii  abi-compliance-checker  1.99.22-1
ii  debhelper               9.20160814
ii  perl                    5.22.2-4

dh-acc recommends no packages.

dh-acc suggests no packages.

-- no debconf information
Temporary header file '/tmp/shVagLXFQx/dump1.h' with the following content will be compiled to create GCC translation unit dump:

  // add includes
  #include "/usr/include/KF5/KGlobalAccel/KGlobalAccel"
  #include "/usr/include/KF5/KGlobalAccel/kglobalaccel.h"
  #include "/usr/include/KF5/KGlobalAccel/kglobalaccel_export.h"
  #include "/usr/include/KF5/KGlobalAccel/private/kf5globalaccelprivate_export.h"
  #include "/usr/include/KF5/KGlobalAccel/private/kglobalaccel_interface.h"
  #include "/usr/include/KF5/KGlobalAccel/KGlobalShortcutInfo"
  #include "/usr/include/KF5/KGlobalAccel/kglobalshortcutinfo.h"
  #include "/usr/include/KF5/KGlobalAccel/private/kglobalacceld.h"

  // add namespaces
  namespace QDBusPendingReplyTypes{typedef int tmp_add_type_1;}
  QDBusPendingReplyTypes::tmp_add_type_1 tmp_add_func_1(){return 0;};
  namespace Qt{typedef int tmp_add_type_2;}
  Qt::tmp_add_type_2 tmp_add_func_2(){return 0;};
  namespace QtMetaTypePrivate{typedef int tmp_add_type_3;}
  QtMetaTypePrivate::tmp_add_type_3 tmp_add_func_3(){return 0;};
  namespace QtPrivate{typedef int tmp_add_type_4;}
  QtPrivate::tmp_add_type_4 tmp_add_func_4(){return 0;};
  namespace QtPrivate{namespace internal{typedef int tmp_add_type_5;}}
  QtPrivate::internal::tmp_add_type_5 tmp_add_func_5(){return 0;};
  namespace QtPrivate{namespace std{typedef int tmp_add_type_6;}}
  QtPrivate::std::tmp_add_type_6 tmp_add_func_6(){return 0;};
  namespace QtPrivate{namespace SwapExceptionTester{typedef int tmp_add_type_7;}}
  QtPrivate::SwapExceptionTester::tmp_add_type_7 tmp_add_func_7(){return 0;};
  namespace QtSharedPointer{typedef int tmp_add_type_8;}
  QtSharedPointer::tmp_add_type_8 tmp_add_func_8(){return 0;};

  // add classes
  KGlobalAccel* tmp_add_class_0;
  KGlobalAccelD* tmp_add_class_1;
  KGlobalAccelInterface* tmp_add_class_2;
  KGlobalShortcutInfo* tmp_add_class_3;
  QAbstractAnimation* tmp_add_class_4;
  QAbstractConcatenable* tmp_add_class_5;
  QAbstractEventDispatcher* tmp_add_class_6;
  QAbstractItemModel* tmp_add_class_7;
  QAbstractListModel* tmp_add_class_8;
  QAbstractNativeEventFilter* tmp_add_class_9;
  QAbstractProxyModel* tmp_add_class_10;
  QAbstractState* tmp_add_class_11;
  QAbstractTableModel* tmp_add_class_12;
  QAbstractTransition* tmp_add_class_13;
  QAnimationDriver* tmp_add_class_14;
  QAnimationGroup* tmp_add_class_15;
  QArrayData* tmp_add_class_16;
  QAssociativeIterable* tmp_add_class_17;
  QAtomicInt* tmp_add_class_18;
  QBasicMutex* tmp_add_class_19;
  QBasicTimer* tmp_add_class_20;
  QBitArray* tmp_add_class_21;
  QBitRef* tmp_add_class_22;
  QBuffer* tmp_add_class_23;
  QByteArrayDataPtr* tmp_add_class_24;
  QByteArrayMatcher* tmp_add_class_25;
  QByteRef* tmp_add_class_26;
  QChar* tmp_add_class_27;
  QCharRef* tmp_add_class_28;
  QChildEvent* tmp_add_class_29;
  QCollator* tmp_add_class_30;
  QCollatorSortKey* tmp_add_class_31;
  QCommandLineOption* tmp_add_class_32;
  QCommandLineParser* tmp_add_class_33;
  QContiguousCacheData* tmp_add_class_34;
  QCoreApplication* tmp_add_class_35;
  QCryptographicHash* tmp_add_class_36;
  QDBusAbstractAdaptor* tmp_add_class_37;
  QDBusAbstractInterface* tmp_add_class_38;
  QDBusAbstractInterfaceBase* tmp_add_class_39;
  QDBusArgument* tmp_add_class_40;
  QDBusConnection* tmp_add_class_41;
  QDBusConnectionInterface* tmp_add_class_42;
  QDBusContext* tmp_add_class_43;
  QDBusError* tmp_add_class_44;
  QDBusInterface* tmp_add_class_45;
  QDBusMessage* tmp_add_class_46;
  QDBusMetaType* tmp_add_class_47;
  QDBusObjectPath* tmp_add_class_48;
  QDBusPendingCall* tmp_add_class_49;
  QDBusPendingCallWatcher* tmp_add_class_50;
  QDBusPendingReplyData* tmp_add_class_51;
  QDBusServer* tmp_add_class_52;
  QDBusServiceWatcher* tmp_add_class_53;
  QDBusSignature* tmp_add_class_54;
  QDBusUnixFileDescriptor* tmp_add_class_55;
  QDBusVariant* tmp_add_class_56;
  QDBusVirtualObject* tmp_add_class_57;
  QDate* tmp_add_class_58;
  QDateTime* tmp_add_class_59;
  QDebugStateSaver* tmp_add_class_60;
  QDeferredDeleteEvent* tmp_add_class_61;
  QDir* tmp_add_class_62;
  QDirIterator* tmp_add_class_63;
  QDynamicPropertyChangeEvent* tmp_add_class_64;
  QEasingCurve* tmp_add_class_65;
  QElapsedTimer* tmp_add_class_66;
  QEvent* tmp_add_class_67;
  QEventLoop* tmp_add_class_68;
  QEventLoopLocker* tmp_add_class_69;
  QEventTransition* tmp_add_class_70;
  QException* tmp_add_class_71;
  QFactoryInterface* tmp_add_class_72;
  QFile* tmp_add_class_73;
  QFileDevice* tmp_add_class_74;
  QFileInfo* tmp_add_class_75;
  QFileSelector* tmp_add_class_76;
  QFileSystemWatcher* tmp_add_class_77;
  QFinalState* tmp_add_class_78;
  QFlag* tmp_add_class_79;
  QFutureInterfaceBase* tmp_add_class_80;
  QFutureWatcherBase* tmp_add_class_81;
  QGenericArgument* tmp_add_class_82;
  QGenericReturnArgument* tmp_add_class_83;
  QHashData* tmp_add_class_84;
  QHashDummyValue* tmp_add_class_85;
  QHistoryState* tmp_add_class_86;
  QIODevice* tmp_add_class_87;
  QIdentityProxyModel* tmp_add_class_88;
  QIncompatibleFlag* tmp_add_class_89;
  QInternal* tmp_add_class_90;
  QItemSelection* tmp_add_class_91;
  QItemSelectionModel* tmp_add_class_92;
  QItemSelectionRange* tmp_add_class_93;
  QJsonArray* tmp_add_class_94;
  QJsonDocument* tmp_add_class_95;
  QJsonObject* tmp_add_class_96;
  QJsonParseError* tmp_add_class_97;
  QJsonValue* tmp_add_class_98;
  QJsonValuePtr* tmp_add_class_99;
  QJsonValueRef* tmp_add_class_100;
  QJsonValueRefPtr* tmp_add_class_101;
  QKeySequence* tmp_add_class_102;
  QLatin1Char* tmp_add_class_103;
  QLatin1String* tmp_add_class_104;
  QLibrary* tmp_add_class_105;
  QLibraryInfo* tmp_add_class_106;
  QLine* tmp_add_class_107;
  QLineF* tmp_add_class_108;
  QLinkedListData* tmp_add_class_109;
  QListData* tmp_add_class_110;
  QLocale* tmp_add_class_111;
  QLockFile* tmp_add_class_112;
  QMapDataBase* tmp_add_class_113;
  QMapNodeBase* tmp_add_class_114;
  QMargins* tmp_add_class_115;
  QMarginsF* tmp_add_class_116;
  QMessageAuthenticationCode* tmp_add_class_117;
  QMessageLogContext* tmp_add_class_118;
  QMetaClassInfo* tmp_add_class_119;
  QMetaEnum* tmp_add_class_120;
  QMetaMethod* tmp_add_class_121;
  QMetaObject* tmp_add_class_122;
  QMetaProperty* tmp_add_class_123;
  QMetaType* tmp_add_class_124;
  QMimeData* tmp_add_class_125;
  QMimeDatabase* tmp_add_class_126;
  QMimeType* tmp_add_class_127;
  QModelIndex* tmp_add_class_128;
  QMutex* tmp_add_class_129;
  QMutexLocker* tmp_add_class_130;
  QObject* tmp_add_class_131;
  QObjectCleanupHandler* tmp_add_class_132;
  QObjectData* tmp_add_class_133;
  QObjectUserData* tmp_add_class_134;
  QParallelAnimationGroup* tmp_add_class_135;
  QPauseAnimation* tmp_add_class_136;
  QPersistentModelIndex* tmp_add_class_137;
  QPluginLoader* tmp_add_class_138;
  QPoint* tmp_add_class_139;
  QPointF* tmp_add_class_140;
  QProcess* tmp_add_class_141;
  QProcessEnvironment* tmp_add_class_142;
  QPropertyAnimation* tmp_add_class_143;
  QReadLocker* tmp_add_class_144;
  QReadWriteLock* tmp_add_class_145;
  QRect* tmp_add_class_146;
  QRectF* tmp_add_class_147;
  QRegExp* tmp_add_class_148;
  QRegularExpression* tmp_add_class_149;
  QRegularExpressionMatch* tmp_add_class_150;
  QRegularExpressionMatchIterator* tmp_add_class_151;
  QResource* tmp_add_class_152;
  QRunnable* tmp_add_class_153;
  QSaveFile* tmp_add_class_154;
  QScopedPointerPodDeleter* tmp_add_class_155;
  QSemaphore* tmp_add_class_156;
  QSequentialAnimationGroup* tmp_add_class_157;
  QSequentialIterable* tmp_add_class_158;
  QSettings* tmp_add_class_159;
  QSharedData* tmp_add_class_160;
  QSharedMemory* tmp_add_class_161;
  QSignalBlocker* tmp_add_class_162;
  QSignalMapper* tmp_add_class_163;
  QSignalTransition* tmp_add_class_164;
  QSize* tmp_add_class_165;
  QSizeF* tmp_add_class_166;
  QSocketNotifier* tmp_add_class_167;
  QSortFilterProxyModel* tmp_add_class_168;
  QStandardPaths* tmp_add_class_169;
  QState* tmp_add_class_170;
  QStateMachine* tmp_add_class_171;
  QStaticPlugin* tmp_add_class_172;
  QStorageInfo* tmp_add_class_173;
  QStringDataPtr* tmp_add_class_174;
  QStringList* tmp_add_class_175;
  QStringListModel* tmp_add_class_176;
  QStringMatcher* tmp_add_class_177;
  QStringRef* tmp_add_class_178;
  QSysInfo* tmp_add_class_179;
  QSystemSemaphore* tmp_add_class_180;
  QTemporaryDir* tmp_add_class_181;
  QTemporaryFile* tmp_add_class_182;
  QTextBoundaryFinder* tmp_add_class_183;
  QTextCodec* tmp_add_class_184;
  QTextDecoder* tmp_add_class_185;
  QTextEncoder* tmp_add_class_186;
  QTextStream* tmp_add_class_187;
  QTextStreamManipulator* tmp_add_class_188;
  QThread* tmp_add_class_189;
  QThreadPool* tmp_add_class_190;
  QThreadStorageData* tmp_add_class_191;
  QTime* tmp_add_class_192;
  QTimeLine* tmp_add_class_193;
  QTimeZone* tmp_add_class_194;
  QTimer* tmp_add_class_195;
  QTimerEvent* tmp_add_class_196;
  QTranslator* tmp_add_class_197;
  QUnhandledException* tmp_add_class_198;
  QUrl* tmp_add_class_199;
  QUrlQuery* tmp_add_class_200;
  QUuid* tmp_add_class_201;
  QVariant* tmp_add_class_202;
  QVariantAnimation* tmp_add_class_203;
  QVariantComparisonHelper* tmp_add_class_204;
  QVersionNumber* tmp_add_class_205;
  QWaitCondition* tmp_add_class_206;
  QWriteLocker* tmp_add_class_207;
  QXmlStreamAttribute* tmp_add_class_208;
  QXmlStreamAttributes* tmp_add_class_209;
  QXmlStreamEntityDeclaration* tmp_add_class_210;
  QXmlStreamEntityResolver* tmp_add_class_211;
  QXmlStreamNamespaceDeclaration* tmp_add_class_212;
  QXmlStreamNotationDeclaration* tmp_add_class_213;
  QXmlStreamReader* tmp_add_class_214;
  QXmlStreamStringRef* tmp_add_class_215;
  QXmlStreamWriter* tmp_add_class_216;
  pthread_attr_t* tmp_add_class_217;

The GCC parameters:
  gcc -fdump-translation-unit -fkeep-inline-functions -c -x c++-header -fpermissive -w  -fPIC "/tmp/shVagLXFQx/dump1.h"  -I/usr/include/KF5/KGlobalAccel -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore

In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QtCore:13:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtDBus/QtDBusDepends:3,
                 from /usr/include/x86_64-linux-gnu/qt5/QtDBus/QtDBus:3,
                 from /usr/include/KF5/KGlobalAccel/private/kglobalacceld.h:31,
                 from /tmp/shVagLXFQx/dump1.h:10:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qendian.h: In function ‘void qbswap(T, uchar*) [with T = long long unsigned int; uchar = unsigned char]’:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qendian.h:72:44: error: inlining failed in call to always_inline ‘void qToUnaligned(T, uchar*) [with T = long long unsigned int; uchar = unsigned char]’: function body not available
 template <typename T> Q_ALWAYS_INLINE void qToUnaligned(const T src, uchar *dest)
                                            ^~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qendian.h:120:59: note: called from here
     qToUnaligned<quint64>(__builtin_bswap64(source), dest);
                                                           ^


--- End Message ---
--- Begin Message ---
This is fixed in gcc-6 6.3.0-3.

--- End Message ---

Reply to: