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

qtsvg fails to link when configuring with -no-sse3

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • Not Evaluated
    • None
    • 6.0.0 Beta3
    • SVG Support
    • None
    • Linux/X11

    Description

      I am trying to disable as many SIMD instructions as possible in order to analyze Qt with the least amount of errors from Clang Static Analyzer. My configure flags are:

       -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-avx512
      

      QtBase links and installs fine.
      QtSvg fails to link:

      [15/33] Linking CXX shared library lib/libQt6Svg.so.6.0.0
      FAILED: lib/libQt6Svg.so.6.0.0 
      : && /usr/bin/clang++-11 -fPIC -g  -Wl,--no-undefined -shared -Wl,-soname,libQt6Svg.so.6 -o lib/libQt6Svg.so.6.0.0 src/svg/CMakeFiles/Svg.dir/Svg_autogen/mocs_compilation.cpp.o src>
      /usr/bin/ld: src/svg/CMakeFiles/Svg.dir/qsvghandler.cpp.o: in function `parseBaseGradient(QSvgNode*, QXmlStreamAttributes const&, QSvgGradientStyle*, QSvgHandler*)':
      /home/cc-runs/src/qt/qt5/qtsvg/build/../src/svg/qsvghandler.cpp:2863: undefined reference to `QGradient::setStops(QList<std::pair<double, QColor> > const&)'
      /usr/bin/ld: src/svg/CMakeFiles/Svg.dir/qsvghandler.cpp.o: in function `parseStopNode(QSvgStyleProperty*, QXmlStreamAttributes const&, QSvgHandler*)':
      /home/cc-runs/src/qt/qt5/qtsvg/build/../src/svg/qsvghandler.cpp:3215: undefined reference to `QGradient::setStops(QList<std::pair<double, QColor> > const&)'
      /usr/bin/ld: src/svg/CMakeFiles/Svg.dir/qsvgstyle.cpp.o: in function `QSvgGradientStyle::brush(QPainter*, QSvgExtraStates&)':
      /home/cc-runs/src/qt/qt5/qtsvg/build/../src/svg/qsvgstyle.cpp:429: undefined reference to `QGradient::setStops(QList<std::pair<double, QColor> > const&)'
      /usr/bin/ld: src/svg/CMakeFiles/Svg.dir/qsvgstyle.cpp.o: in function `QSvgGradientStyle::resolveStops_helper(QList<QString>*)':
      /home/cc-runs/src/qt/qt5/qtsvg/build/../src/svg/qsvgstyle.cpp:970: undefined reference to `QGradient::setStops(QList<std::pair<double, QColor> > const&)'
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      

      QtDeclarative also fails to link:

      [305/885] Linking CXX shared library lib/libQt6Qml.so.6.0.0
      FAILED: lib/libQt6Qml.so.6.0.0 
      : && /usr/bin/clang++-11 -fPIC -g  -Wl,--no-undefined -shared -Wl,-soname,libQt6Qml.so.6 -o lib/libQt6Qml.so.6.0.0 src/qml/CMakeFiles/Qml.dir/Qml_autogen/mocs_compilation.cpp.o src>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerConverter<QJSValue, QMap<QString, QVariant>, QMap<QString, QVariant> (*)(QJS>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerConverter<QJSValue, QList<QVariant>, QList<QVariant> (*)(QJSValue const&)>(Q>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerConverter<QJSValue, QList<QString>, QList<QString> (*)(QJSValue const&)>(QLi>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerConverter<QJSValue, QSequentialIterable, QSequentialIterable (*)(QJSValue co>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerConverter<QList<int>, QIterable<QMetaSequence>, QtPrivate::QSequentialIterab>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerMutableView<QList<int>, QIterable<QMetaSequence>, QtPrivate::QSequentialIter>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerConverter<QList<QObject*>, QIterable<QMetaSequence>, QtPrivate::QSequentialI>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4engine.cpp.o: in function `bool QMetaType::registerMutableView<QList<QObject*>, QIterable<QMetaSequence>, QtPrivate::QSequentia>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerConverter<std::vector<int, std::allocator<int> >, QIterable<QMetaSeq>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerMutableView<std::vector<int, std::allocator<int> >, QIterable<QMetaS>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerConverter<std::vector<double, std::allocator<double> >, QIterable<QM>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerMutableView<std::vector<double, std::allocator<double> >, QIterable<>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerConverter<std::vector<bool, std::allocator<bool> >, QIterable<QMetaS>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerMutableView<std::vector<bool, std::allocator<bool> >, QIterable<QMet>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerConverter<std::vector<QString, std::allocator<QString> >, QIterable<>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerMutableView<std::vector<QString, std::allocator<QString> >, QIterabl>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerConverter<std::vector<QUrl, std::allocator<QUrl> >, QIterable<QMetaS>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerMutableView<std::vector<QUrl, std::allocator<QUrl> >, QIterable<QMet>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerConverter<std::vector<QModelIndex, std::allocator<QModelIndex> >, QI>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4qobjectwrapper.cpp.o: in function `bool QMetaType::registerMutableView<std::vector<QModelIndex, std::allocator<QModelIndex> >, >
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlbinding.cpp.o: in function `bool QMetaType::registerConverter<QList<QUrl>, QIterable<QMetaSequence>, QtPrivate::QSequentialIterableC>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlbinding.cpp.o: in function `bool QMetaType::registerMutableView<QList<QUrl>, QIterable<QMetaSequence>, QtPrivate::QSequentialIterabl>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlobjectcreator.cpp.o: in function `bool QMetaType::registerConverter<QList<double>, QIterable<QMetaSequence>, QtPrivate::QSequentialI>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlobjectcreator.cpp.o: in function `bool QMetaType::registerMutableView<QList<double>, QIterable<QMetaSequence>, QtPrivate::QSequentia>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlobjectcreator.cpp.o: in function `bool QMetaType::registerConverter<QList<bool>, QIterable<QMetaSequence>, QtPrivate::QSequentialIte>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlobjectcreator.cpp.o: in function `bool QMetaType::registerMutableView<QList<bool>, QIterable<QMetaSequence>, QtPrivate::QSequentialI>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlvmemetaobject.cpp.o: in function `bool QMetaType::registerConverter<QList<QQmlGuard<QObject> >, QIterable<QMetaSequence>, QtPrivate:>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/qml/qqmlvmemetaobject.cpp.o: in function `bool QMetaType::registerMutableView<QList<QQmlGuard<QObject> >, QIterable<QMetaSequence>, QtPrivat>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/debugger/qqmlprofiler.cpp.o: in function `bool QMetaType::registerConverter<QHash<unsigned long long, QQmlProfiler::Location>, QIterable<QMe>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/debugger/qqmlprofiler.cpp.o: in function `bool QMetaType::registerMutableView<QHash<unsigned long long, QQmlProfiler::Location>, QIterable<Q>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4profiling.cpp.o: in function `bool QMetaType::registerConverter<QHash<unsigned long long, QV4::Profiling::FunctionLocation>, QI>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4profiling.cpp.o: in function `bool QMetaType::registerMutableView<QHash<unsigned long long, QV4::Profiling::FunctionLocation>, >
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4sequenceobject.cpp.o: in function `bool QMetaType::registerConverter<QList<QModelIndex>, QIterable<QMetaSequence>, QtPrivate::Q>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:568: undefined reference to `QMetaType::registerConverterFunction(std::function<bool (void const*, void*)> const&, QMetaType, Q>
      /usr/bin/ld: src/qml/CMakeFiles/Qml.dir/jsruntime/qv4sequenceobject.cpp.o: in function `bool QMetaType::registerMutableView<QList<QModelIndex>, QIterable<QMetaSequence>, QtPrivate:>
      /home/cc-runs/install_dir/include/QtCore/qmetatype.h:586: undefined reference to `QMetaType::registerMutableViewFunction(std::function<bool (void*, void*)> const&, QMetaType, QMeta>
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      

      Is this a known issue? What would be the minimum set of SIMD instruction sets to build Qt with?

      NOTE: I'm not 100% sure that all errors here are caused by my SIMD flags (especially the qtdeclarative ones might simply be dependency version incompatibility, since I build all libraries at HEAD).

      Attachments

        Issue Links

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

          Activity

            People

              Unassigned Unassigned
              jimis Dimitrios Apostolou
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes