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

Qt 5.12.4 fails to build for arm64-v8a, reporting missing neon functions

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.12.5
    • 5.12.4
    • Build System
    • None
    • Host = Ubuntu 18.04.
      Android SDK = up to date, set for 23.
      Android NDK = 20 (using clang).
    • Android, Linux/X11

    Description

      Qt 5.12.4 (github branch 5.12, commit 452e0d94d40bba15a56293a0a0f7d093dececda9, fetched 2019-06-18) compiles for Linux, Windows, and Android with 32-bit ARM (armeabi-v7a), but fails to build for Android with 64-bit ARM ("--android-arch arm64-v8a").

      The failure is with a set of linker errors, "undefined reference to...", with functions including qt_memfill32, qt_blend_rgb32_on_rgb32_neon, qt_blend_argb32_on_argb32_neon, ...

      Lots of these functions look they come from qtbase/src/gui/painting/qdrawhelper.cpp and qtbase/src/gui/painting/qdrawhelper_neon.cpp, and that they are conditional on "#ifdef _ARM_NEON_".

      Attached: config.opt files from successful ARM 32-bit and unsuccessful ARM 64-bit builds, plus end of compilation log from the failing build.

      Attachments

        1. config.log
          208 kB
          Rudolf Cardinal
        2. config.opt.arm32
          0.9 kB
          Rudolf Cardinal
        3. config.opt.arm64
          0.9 kB
          Rudolf Cardinal
        4. config.summary
          12 kB
          Rudolf Cardinal
        5. link_failure_arm64.txt
          15 kB
          Rudolf Cardinal
        For Gerrit Dashboard: QTBUG-76445
        # Subject Branch Project Status CR V

        Activity

          People

            allan.jensen Allan Sandfeld Jensen
            rudolf@pobox.com Rudolf Cardinal
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes