mirror of
https://github.com/thead-yocto-mirror/meta-qt5
synced 2026-09-17 04:31:54 +02:00
We have a simple application containing a QWebView which segfaulted during
loading a page on a CortexA9 (armv7 thumb2). After enabling debug information
for qtwebkit and remote debug session the point of segfault was detected in
Source/JavaScriptCore/llint/LowLevelInterpreter.asm:1082
callSlowPath(_llint_slow_path_new_func_exp)
Further digging around lead to similar source in:
* qtwebkit: Source/JavaScriptCore/assembler/ARMv7Assembler.h
* qtscript: src/3rdparty/javascriptcore/JavaScriptCore/assembler/ARMv7Assembler.h
In these files a class ARMThumbImmediate is declared and used in many places.
This lead me to the suspicion that compiligng for armv7 expects thumb support.
The following tests were performed:
* our application is working fine again
* qtscript and qtwebkit were build with
'ARM_INSTRUCTION_SET = "thumb"' => TUNE_FEATURES = "arm armv5 thumb dsp"
for qemuarm without issues
This is a partial/rebased revert of:
commit 932b32c1c9
Author: Martin Jansa <Martin.Jansa@gmail.com>
Date: Wed Apr 22 15:33:01 2015 +0200
qtscript,qtwebking: disable thumb
* qemuarm builds fail when thumb is enabled
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
69 lines
4.0 KiB
BlitzBasic
69 lines
4.0 KiB
BlitzBasic
require qt5.inc
|
|
require qt5-git.inc
|
|
|
|
LICENSE = "BSD & LGPLv2+ | GPL-2.0"
|
|
LIC_FILES_CHKSUM = " \
|
|
file://LICENSE.GPLv2;md5=05832301944453ec79e40ba3c3cfceec \
|
|
file://Source/WebCore/rendering/RenderApplet.h;endline=22;md5=fb9694013ad71b78f8913af7a5959680 \
|
|
file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \
|
|
file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee \
|
|
"
|
|
|
|
DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt"
|
|
|
|
# qemuarm build fails with:
|
|
# | {standard input}: Assembler messages:
|
|
# | {standard input}:106: Error: invalid immediate: 983040 is out of range
|
|
# | {standard input}:106: Error: value of 983040 too large for field of 2 bytes at 146
|
|
ARM_INSTRUCTION_SET_armv4 = "arm"
|
|
ARM_INSTRUCTION_SET_armv5 = "arm"
|
|
|
|
SRC_URI += "\
|
|
file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch \
|
|
file://0002-Remove-TEXTREL-tag-in-x86.patch \
|
|
file://0003-Exclude-backtrace-API-for-non-glibc-libraries.patch \
|
|
"
|
|
|
|
PACKAGECONFIG ??= "gstreamer qtlocation qtmultimedia qtsensors qtwebchannel"
|
|
PACKAGECONFIG[gstreamer] = "OE_GSTREAMER_ENABLED,,gstreamer1.0 gstreamer1.0-plugins-base"
|
|
PACKAGECONFIG[gstreamer010] = "OE_GSTREAMER010_ENABLED,,gstreamer gst-plugins-base"
|
|
PACKAGECONFIG[qtlocation] = "OE_QTLOCATION_ENABLED,,qtlocation"
|
|
PACKAGECONFIG[qtmultimedia] = "OE_QTMULTIMEDIA_ENABLED,,qtmultimedia"
|
|
PACKAGECONFIG[qtsensors] = "OE_QTSENSORS_ENABLED,,qtsensors"
|
|
PACKAGECONFIG[qtwebchannel] = "OE_QTWEBCHANNEL_ENABLED,,qtwebchannel"
|
|
PACKAGECONFIG[libwebp] = "OE_LIBWEBP_ENABLED,,libwebp"
|
|
|
|
do_configure_prepend() {
|
|
export QMAKE_CACHE_EVAL="CONFIG+=${EXTRA_OECONF}"
|
|
# disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG
|
|
sed -e 's/\s\(packagesExist(".*\<gstreamer-1.0\>.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
|
|
# disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG
|
|
sed -e 's/\s\(packagesExist(".*\<gstreamer-0.10\>.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
|
|
# disable qtlocation test if it isn't enabled by PACKAGECONFIG
|
|
sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
|
|
# disable qtmultimedia test if it isn't enabled by PACKAGECONFIG
|
|
sed -e 's/(video):\(qtHaveModule(multimediawidgets)\)/(video):OE_QTMULTIMEDIA_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
|
|
# disable qtsensors test if it isn't enabled by PACKAGECONFIG
|
|
sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
|
|
# disable qtwebchannel test if it isn't enabled by PACKAGECONFIG
|
|
sed -e 's/\s\(qtHaveModule(webchannel)\)/ OE_QTWEBCHANNEL_ENABLED:\1/' -i ${S}/Source/WebKit2/Target.pri
|
|
sed -e 's/\s\(qtHaveModule(webchannel)\)/ OE_QTWEBCHANNEL_ENABLED:\1/' -i ${S}/Source/WebKit2/WebKit2.pri
|
|
# disable libwebp test if it isn't enabled by PACKAGECONFIG
|
|
sed -e 's/\s\(config_libwebp: \)/ OE_LIBWEBP_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
|
|
}
|
|
|
|
# qtwebkit gets terribly big when linking with all debug info, disable by default
|
|
QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0"
|
|
EXTRA_QMAKEVARS_PRE += "${QTWEBKIT_DEBUG}"
|
|
|
|
# remove default ${PN}-examples* set in qt5.inc, because they conflicts with ${PN} from separate webkit-examples recipe
|
|
PACKAGES_remove = "${PN}-examples-dev ${PN}-examples-staticdev ${PN}-examples-dbg ${PN}-examples"
|
|
|
|
# make sure rb files are used from sysroot, not from host
|
|
# ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
|
# we need to replace it too (a bit longer version without importing re)
|
|
RUBY_SYS = "${@ '${BUILD_SYS}'.replace('i486', 'i386').replace('i586', 'i386').replace('i686', 'i386') }"
|
|
export RUBYLIB="${STAGING_DATADIR_NATIVE}/rubygems:${STAGING_LIBDIR_NATIVE}/ruby:${STAGING_LIBDIR_NATIVE}/ruby/${RUBY_SYS}"
|
|
|
|
SRCREV = "0d592678bad23a77f35c109253a0263664e69812"
|