generic-poky/meta/recipes-qt
Krishnanjanappa, Jagadeesh 5bed033beb qt4-embedded: add checking for AArch64 ilp32
1. Cross-compiling qt4-embedded and qt4-x11-free applications for AArch64 ilp32
   (both big and little endian) fails with below error,

(snip)
In file included from ../3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h:31:0,
                 from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h:32,
                 from ../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h:26,
                 from ../3rdparty/javascriptcore/JavaScriptCore/runtime/ClassInfo.h:26,
                 from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSObject.h:27,
                 from ../3rdparty/javascriptcore/JavaScriptCore/API/JSCallbackConstructor.h:30,
                 from ../3rdparty/javascriptcore/JavaScriptCore/API/JSCallbackConstructor.cpp:27:
../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h: In instantiation of 'TO QTWTF::bitwise_cast(FROM) [with TO = int; FROM = double]':
../3rdparty/javascriptcore/JavaScriptCore/runtime/JSImmediate.h:52:49: required from here
../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h:63:1: error: size of array is negative
../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h: In instantiation of 'TO QTWTF::bitwise_cast(FROM) [with TO = double; FROM = int]':
../3rdparty/javascriptcore/JavaScriptCore/runtime/JSImmediate.h:57:47: required from here
../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h:63:1: error: size of array is negative
make[1]: *** [obj/release/JSCallbackConstructor.o] Error 1
-- CUT --

    the error is because of JSVALUE64 is being defined while compiling
    programs for AArch64 ilp32. This makes equal condition checking of
    intptr_t and double datatypes as false, and results in -1 (negative)
    as array size in bitwise_cast function.
    The patch defines JSVALUE64, if the programs are being compiled for
    AArch64 64bit NOT for ilp32.

2. qt4_arch.inc is modified to set system architecture as aarch64 if the
   TARGET_ARCH is other than aarch64. Without this modification, for
   TARGET_ARCH equal to aarch64_32, aarch64be, aarch64be_32; the system
   architecture is set as 'generic' and results in below error.

configure log:
(snip)
64-bit AMD 80x86 (x86_64)
'-opensource' is unsupported, using 'generic'
'x86_64' is supported
System architecture: 'generic'
Host architecture: 'x86_64'
-- CUT --

build error:
(snip)
In file included from ../../include/QtCore/qatomic_generic.h:1:0,
                 from ../../include/QtCore/../../src/corelib/arch/qatomic_arch.h:64,
                 from ../../include/QtCore/qatomic_arch.h:1,
                 from ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:227,
                 from ../../include/QtCore/qbasicatomic.h:1,
                 from ../../include/QtCore/../../src/corelib/thread/qatomic.h:46,
                 from ../../include/QtCore/qatomic.h:1,
                 from ../../include/QtCore/../../src/corelib/tools/qbytearray.h:45,
                 from ../../include/QtCore/qbytearray.h:1,
                 from ../../include/QtCore/../../src/corelib/tools/qstring.h:46,
                 from ../../include/QtCore/qstring.h:1,
                 from ../../include/QtCore/../../src/corelib/kernel/qobject.h:48,
                 from ../../include/QtCore/qobject.h:1,
                 from ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:45,
                 from ../../include/QtCore/qcoreapplication.h:1,
                 from qdbusintegrator.cpp:42:
../../include/QtCore/../../src/corelib/arch/qatomic_generic.h: In instantiation of 'bool QBasicAtomicPointer<T>::testAndSetOrdered(T*, T*) [with T = const QString]':
qdbusintegrator.cpp:76:1:   required from here
../../include/QtCore/../../src/corelib/arch/qatomic_generic.h:197:88: error: invalid conversion from 'const void*' to 'void*' [-fpermissive]
../../include/QtCore/../../src/corelib/arch/qatomic_generic.h:108:20: error: initializing argument 2 of 'bool QBasicAtomicPointer_testAndSetOrdered(void* volatile*, void*, void*)' [-fpermissive]
../../include/QtCore/../../src/corelib/arch/qatomic_generic.h:197:88: error: invalid conversion from 'const void*' to 'void*' [-fpermissive]
../../include/QtCore/../../src/corelib/arch/qatomic_generic.h:108:20: error: initializing argument 3 of 'bool QBasicAtomicPointer_testAndSetOrdered(void* volatile*, void*, void*)' [-fpermissive]
make[1]: *** [.obj/release-shared-emb-auto/qdbusintegrator.o] Error 1
make[1]: *** Waiting for unfinished jobs....
-- CUT --

   So, select system architecture (via QT_ARCH) as aarch64 for
   AArch64 and its other variants

(From OE-Core rev: 5f191d86b8d60624d729b3b147c1dff818326dbd)

Signed-off-by: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-03 11:43:49 +01:00
..
images Update after toplevel LICENSE file checksum change 2014-01-02 14:21:04 +00:00
meta meta-toolchain-qt: Fix environment population 2014-10-10 16:44:31 +01:00
packagegroups recipes-qt: add x11 to required DISTRO_FEATURES 2015-01-29 15:36:51 +00:00
qt-apps qmmp: upgrade to 0.7.7 2014-06-17 17:56:21 +01:00
qt-demo meta: set proper S value 2015-01-23 11:36:27 +00:00
qt4 qt4-embedded: add checking for AArch64 ilp32 2015-05-03 11:43:49 +01:00
qt4-graphics-system Replace one-line DESCRIPTION with SUMMARY 2014-01-02 12:50:18 +00:00