[Development] android arm64-v8a support

thomas vincent vrince at gmail.com
Fri Nov 14 16:17:54 CET 2014


Hi guys,

I made changes in Qt sources (nothing fancy) to cross compile 5.4 branch is
the following env :

Host
linux_x86_64

Target
arch : arm64 (arm64-v8a)
toolchain : aarch64-linux-android-4.9
platform : android-21

I managed to make and install qt.
Compiling against this qt build works (using qmake directly from the
command line seem to legit binaries).

But I'am stuck making QtCreator recognise this version of Qt as valid one.
I get "Failed to detect the ABIs used by the Qt version"

I guess my change in config.test (arch,...) and mkspec (android-g++) broke
something.

Output of qmake -version seem ok to me :
QT_SYSROOT:
QT_INSTALL_PREFIX:/home/thomas/Qt5.4_arm64
QT_INSTALL_ARCHDATA:/home/thomas/Qt5.4_arm64
QT_INSTALL_DATA:/home/thomas/Qt5.4_arm64
QT_INSTALL_DOCS:/home/thomas/Qt5.4_arm64/doc
QT_INSTALL_HEADERS:/home/thomas/Qt5.4_arm64/include
QT_INSTALL_LIBS:/home/thomas/Qt5.4_arm64/lib
QT_INSTALL_LIBEXECS:/home/thomas/Qt5.4_arm64/libexec
QT_INSTALL_BINS:/home/thomas/Qt5.4_arm64/bin
QT_INSTALL_TESTS:/home/thomas/Qt5.4_arm64/tests
QT_INSTALL_PLUGINS:/home/thomas/Qt5.4_arm64/plugins
QT_INSTALL_IMPORTS:/home/thomas/Qt5.4_arm64/imports
QT_INSTALL_QML:/home/thomas/Qt5.4_arm64/qml
QT_INSTALL_TRANSLATIONS:/home/thomas/Qt5.4_arm64/translations
QT_INSTALL_CONFIGURATION:
QT_INSTALL_EXAMPLES:/home/thomas/Qt5.4_arm64/examples
QT_INSTALL_DEMOS:/home/thomas/Qt5.4_arm64/examples
QT_HOST_PREFIX:/home/thomas/Qt5.4_arm64
QT_HOST_DATA:/home/thomas/Qt5.4_arm64
QT_HOST_BINS:/home/thomas/Qt5.4_arm64/bin
QT_HOST_LIBS:/home/thomas/Qt5.4_arm64/lib
QMAKE_SPEC:linux-g++
QMAKE_XSPEC:android-g++
QMAKE_VERSION:3.0
QT_VERSION:5.4.0

Can any one can guide me on those last miles to make it work ?
I'am note sure if this is on the Qtcreator side that I have to add
something about arm64 too ...

Best regards,

Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20141114/07a2d6e1/attachment.html>
-------------- next part --------------
+ cd qtbase
+ /home/thomas/QtSource/qt5/qtbase/configure -top-level -xplatform android-g++ -nomake tests -nomake examples -android-ndk /home/thomas/Downloads/android-ndk-r10c -android-sdk /home/thomas/Downloads/adt-bundle-linux-x86_64-20140702/sdk -android-ndk-host linux-x86_64 -android-toolchain-version 4.9 -android-ndk-platform android-21 -android-arch arm64-v8a -skip qtwebkit -skip qtserialport -skip qtwebkit-examples -no-warnings-are-errors -prefix /home/thomas/Qt5.4_arm64 -no-c++11 -no-xcb -no-cups
Which edition of Qt do you want to use ?

Type 'c' if you want to use the Commercial Edition.
Type 'o' if you want to use the Open Source Edition.


Which edition of Qt do you want to use ?

Type 'c' if you want to use the Commercial Edition.
Type 'o' if you want to use the Open Source Edition.



This is the Qt Open Source Edition.

You are licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) versions 3.

Type '3' to view the GNU Lesser General Public License version 3.
Type 'yes' to accept this license offer.
Type 'no' to decline this license offer.

Do you accept the terms of the license? 
<srcbase> = /home/thomas/QtSource/qt5/qtbase 
<outbase> = /home/thomas/QtSource/qt5/qtbase 
Creating qmake...
make: Nothing to be done for `first'.
Running configuration tests...
Qmake exit val : 0

   Configure summary

Building on:   linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for:  android-g++ (arm64, CPU features: none detected)
Platform notes:

            - Also available for Linux: linux-kcc linux-icc linux-cxx
        
Build options:
  Configuration .......... accessibility android-style-assets audio-backend clock-gettime clock-monotonic compile_examples concurrent cross_compile egl eglfs evdev eventfd freetype full-config getaddrinfo harfbuzz inotify ipv6ifname large-config medium-config minimal-config mremap no-pkg-config opengl opengles2 pcre png posix_fallocate precompile_header qpa qpa reduce_exports release rpath shared small-config system-zlib 
  Build parts ............ libs
  Mode ................... release
  Using C++11 ............ no
  Using gold linker....... no
  Using PCH .............. yes
  Target compiler supports:

Qt modules and options:
  Qt D-Bus ............... no
  Qt Concurrent .......... yes
  Qt GUI ................. yes
  Qt Widgets ............. yes
  Large File ............. no
  QML debugging .......... yes
  Use system proxies ..... no

Support enabled for:
  Accessibility .......... yes
  ALSA ................... no
  CUPS ................... no
  Evdev .................. yes
  FontConfig ............. no
  FreeType ............... yes (bundled copy)
  Glib ................... no
  GTK theme .............. no
  HarfBuzz ............... yes (bundled copy)
  Iconv .................. no
  ICU .................... no
  Image formats: 
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using bundled copy)
    PNG .................. yes (in QtGui, using bundled copy)
  journald ............... no
  mtdev .................. no
  Networking: 
    getaddrinfo .......... yes
    getifaddrs ........... no
    IPv6 ifname .......... yes
    OpenSSL .............. no
  NIS .................... no
  OpenGL / OpenVG: 
    EGL .................. yes
    OpenGL ............... yes (OpenGL ES 2.0+)
    OpenVG ............... no
  PCRE ................... yes (bundled copy)
  pkg-config ............. no 
  PulseAudio ............. no
  QPA backends: 
    DirectFB ............. no
    EGLFS ................ yes
    KMS .................. no
    LinuxFB .............. no
    XCB .................. no
  Session management ..... yes
  SQL drivers: 
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. no
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. no
  udev ................... no
  xkbcommon .............. no
  zlib ................... yes (system library)


Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /home/thomas/Qt5.4_arm64

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.



More information about the Development mailing list