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

Platform spec macx-llvm fails to build simd-sensitive code correctly resulting in libQt5Gui link failure

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • 5.3.1
    • 5.2.1
    • Build System
    • None
    • Mac OS X 10.7.5, Xcode 4.3.3, llvm compiler (4.2.1), 10.6 & 10.7 SDKs.
    • 3b00cc480400d47c59c29d3507c7fcdc9be2a489

    Description

      If configure is given the platform spec 'macx-llvm', simd components (e.g. qdrawhelper_sse2) aren't compiled leading to a link failure of libQ5Gui.dylib:

      Undefined symbols for architecture x86_64:
        "convert_ARGB_to_ARGB_PM_inplace_sse2(QImageData*, QFlags<Qt::ImageConversionFlag>)", referenced from:
            qInitImageConversions()     in qimage.o
        "convert_RGB888_to_RGB32_ssse3(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)", referenced from:
            qInitImageConversions()     in qimage.o
        "qt_memfill32_sse2(unsigned int*, unsigned int, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_memfill16_sse2(unsigned short*, unsigned short, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_bitmapblit32_sse2(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_bitmapblit16_sse2(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_scale_image_argb32_on_argb32_sse2(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, int)", refe
      renced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_blend_rgb32_on_rgb32_sse2(unsigned char*, int, unsigned char const*, int, int, int, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_blend_argb32_on_argb32_sse2(unsigned char*, int, unsigned char const*, int, int, int, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_fetch_radial_gradient_sse2(unsigned int*, Operator const*, QSpanData const*, int, int, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "qt_blend_argb32_on_argb32_ssse3(unsigned char*, int, unsigned char const*, int, int, int, int)", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "_qt_functionForMode_SSE2", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
        "_qt_functionForModeSolid_SSE2", referenced from:
            qInitDrawhelperAsm()     in qdrawhelper.o
      ld: symbol(s) not found for architecture x86_64
      collect2: ld returned 1 exit status
      

      Problem is in mkspecs/features/simd.prf which fails to match the project spec and doesn't generate the necessary compiler directives for SSE2_SOURCES, etc.

      Attachments

        For Gerrit Dashboard: QTBUG-38544
        # Subject Branch Project Status CR V

        Activity

          People

            thiago Thiago Macieira
            slmcb Monty Brandenberg
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes