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>
23 lines
491 B
PHP
23 lines
491 B
PHP
inherit siteinfo
|
|
|
|
ARM_INSTRUCTION_SET = "arm"
|
|
|
|
set_arch() {
|
|
case ${TARGET_ARCH} in
|
|
aarch64*) QT_ARCH=aarch64 ;;
|
|
arm*) QT_ARCH=arm ;;
|
|
i*86*) QT_ARCH=i386 ;;
|
|
mips*) QT_ARCH=mips ;;
|
|
powerpc*) QT_ARCH=powerpc ;;
|
|
x86_64*) QT_ARCH=x86_64 ;;
|
|
esac
|
|
}
|
|
|
|
set_endian() {
|
|
if [ ${SITEINFO_ENDIANNESS} = "le" ] ; then
|
|
QT_ENDIAN="-little-endian"
|
|
elif [ ${SITEINFO_ENDIANNESS} = "be" ] ; then
|
|
QT_ENDIAN="-big-endian"
|
|
fi
|
|
}
|