Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions classes/qt5module.oeclass
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@

inherit c++ make qmake5 pkgconfig

# Necessary exports for qmake
export OE_QMAKE_COMPILER
export OE_QMAKE_CC
export OE_QMAKE_CFLAGS
export OE_QMAKE_CXX
export OE_QMAKE_CXXFLAGS
export OE_QMAKE_LINK
export OE_QMAKE_LDFLAGS
export OE_QMAKE_AR
export OE_QMAKE_STRIP

OE_QMAKE_PATH_HOST_BINS = "${STAGE_DIR}/native/bin/"
CLASS_DEPENDS += "\
qtbase-dev_${PV} zlib-dev libpthread \
Expand Down
25 changes: 24 additions & 1 deletion recipes/qt5/qt5.inc
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,32 @@ OE_QMAKE_PATH_SETTINGS = "${OE_QMAKE_PATH_QT_SETTINGS}"
OE_QMAKE_PATH_EXAMPLES = "${OE_QMAKE_PATH_QT_EXAMPLES}"
OE_QMAKE_PATH_TESTS = "${OE_QMAKE_PATH_QT_TESTS}"

# To avoid too much FILES hackery, since there are many
# file types in the sources, we duplicate them so they can
# both be built and included as source only.
do_configure[prefuncs] =+ "do_configure_examples_source"
do_configure_examples_source () {
if [ -d ${S}/examples ]; then
test -d ${S}/examples-sourceonly || mkdir ${S}/examples-sourceonly
cp -R ${S}/examples/* ${S}/examples-sourceonly/
fi
}

do_install[postfuncs] =+ "do_install_examples_source"
do_install_examples_source () {
if [ -d ${S}/examples-sourceonly ]; then
test -d ${D}/examples || mkdir ${D}/examples
cp -R ${S}/examples-sourceonly/* ${D}/examples/
fi
}

#Examples are present in all Qt modules
RECIPE_FLAGS += "qtexamples"
DEFAULT_USE_qtexamples = "1"
PACKAGES:<USE_qtexamples = "${PN}-examples-dbg ${PN}-examples "
PACKAGES:<USE_qtexamples = "${PN}-examples-source ${PN}-examples-dbg ${PN}-examples "
DEPENDS_${PN}-examples += "${PN}-examples-source"

FILES_${PN}-examples-source = "/examples"

PACKAGES =. "${PN}-qmlplugins-dbg ${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs ${PN}-examples-dev ${PN}-examples-staticdev "
RDEPENDS_${PN} += "${PN}-plugins_${PV} ${PN}-qmlplugins_${PV}"
Expand Down Expand Up @@ -130,3 +152,4 @@ FILES_${PN}-examples-staticdev = " \
${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*.a \
${OE_QMAKE_PATH_EXAMPLES}/*/*/*/*/*/*.a \
"

30 changes: 30 additions & 0 deletions recipes/qt5/qtbase-5.3.1/oe_lite_pkg_config.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
* Qt was made for machine staging, not recipe staging, this showed in:

QtBase make a configuration fil qconfig.pri that hardcodes paths to
PKG_CONFIG_SYSROOT_DIR and PKD_CONFIG_LIBDIR to qtbase directories.

When DEPENDS on qtbase other modules gets these paths and fails to
do a proper pkg-config.

Patch removes the hardcoding and enables the use of environment
variables for pkg-configs in Qt under OE-lite.

--- a/configure 2015-04-10 23:58:35.234014208 +0200
+++ b/configure 2015-04-10 23:56:55.214012074 +0200
@@ -6265,10 +6265,10 @@
fi

-if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
- echo "# pkgconfig" >> "$QTCONFIG.tmp"
- echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
- echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
- echo >> "$QTCONFIG.tmp"
-fi
+#if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
+# echo "# pkgconfig" >> "$QTCONFIG.tmp"
+# echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
+# echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
+# echo >> "$QTCONFIG.tmp"
+#fi

if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
8 changes: 6 additions & 2 deletions recipes/qt5/qtbase.inc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
## @useflag qttslib Enable tslib as touch input. Disabled by default.
## @useflag qtgstreamer Enable gstreamer. Disabled by default.
## @useflag qtwidgets Enable qtwidgets. Enabled by default.
## @useflag qtwebkit Enable webkit. Disabled by default.
## @useflag qtphonon Enable phonon. Disabled by default.
## @useflag qtdbus Enable dbus. Disabled by default.
## @useflag qtqmldebug Enable qtqmldebug. Disabled by default.
Expand Down Expand Up @@ -36,13 +35,14 @@ LICENSE = "GFDL-1.3 & LGPL-2.1 & GPL-3.0"
inherit c++ make pkgconfig

RECIPE_FLAGS += "qtx11 qtdirectfb qttslib qtgstreamer \
qtwidgets qtwebkit qtphonon qtdbus qtqmldebug \
qtwidgets qtphonon qtdbus qtqmldebug \
qtopengl \
qtopengl_egl_flags qtopengl_flags \
qtopengl_qt_flags qtopengl_es1_flags \
qtopengl_es2_flags qtopengl_openvg_flags \
qtopengl_hooks_file \
qtmtdev \
qticu \
"

require qt5.inc
Expand All @@ -60,6 +60,8 @@ DEPENDS += "native:qmake5_${PV} freetype jpeg libpng zlib openssl fontconfig \
glib libpthread libm libdl librt libgcc libgio libglib libgthread \
libstdc++"

DEPENDS:>USE_qticu += " libicudata-dev libicui18n-dev libicuuc-dev"

##################################
### RDEPENDS
##################################
Expand All @@ -68,6 +70,8 @@ RDEPENDS_${PN} += "freetype libjpeg libpng libz openssl glib fontconfig-utils \
libpthread libm libdl librt libgcc libgio libglib libgthread \
libstdc++"

RDEPENDS_${PN}:>USE_qticu += " libicudata libicui18n libicuuc"

RDEPENDS_${PN}-dev += "libxml2-dev"

##################################
Expand Down
1 change: 1 addition & 0 deletions recipes/qt5/qtbase_5.3.1.oe
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ SRC_URI += "\
file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \
file://0011-QOpenGLPaintDevice-sub-area-support.patch \
file://0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch \
file://oe_lite_pkg_config.patch \
"

SRC_URI += "file://qeglfshooks_imx5.cpp"
Expand Down
117 changes: 117 additions & 0 deletions recipes/qt5/qtwebkit-5.3.1/32bit_bigendian_offset_fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
index 2b5a23c..c4d86ee 100644
--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
@@ -87,6 +87,12 @@ else
const PayloadOffset = 0
end

+if JSVALUE64
+ const JSCellPayloadOffset = 0
+else
+ const JSCellPayloadOffset = PayloadOffset
+end
+
# Constant for reasoning about butterflies.
const IsArray = 1
const IndexingShapeMask = 30
@@ -161,7 +167,6 @@ else
const VectorSizeOffset = 8
end

-
# Some common utilities.
macro crash()
if C_LOOP
@@ -267,13 +272,13 @@ macro assertNotConstant(index)
end

macro functionForCallCodeBlockGetter(targetRegister)
- loadp Callee[cfr], targetRegister
+ loadp Callee + JSCellPayloadOffset[cfr], targetRegister
loadp JSFunction::m_executable[targetRegister], targetRegister
loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister
end

macro functionForConstructCodeBlockGetter(targetRegister)
- loadp Callee[cfr], targetRegister
+ loadp Callee + JSCellPayloadOffset[cfr], targetRegister
loadp JSFunction::m_executable[targetRegister], targetRegister
loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister
end
@@ -671,7 +676,7 @@ _llint_op_resolve_global_var:
macro resolveScopedVarBody(resolveOperations)
# First ResolveOperation is to skip scope chain nodes
getScope(macro(dest)
- loadp ScopeChain + PayloadOffset[cfr], dest
+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
end,
ResolveOperation::m_scopesToSkip[resolveOperations], t1, t2)
loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
@@ -696,7 +701,7 @@ _llint_op_resolve_scoped_var_on_top_scope:
loadisFromInstruction(1, t3)

# We know we want the top scope chain entry
- loadp ScopeChain + PayloadOffset[cfr], t1
+ loadp ScopeChain + JSCellPayloadOffset[cfr], t1
loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers

# Second ResolveOperation tells us what offset to use
@@ -718,7 +723,7 @@ _llint_op_resolve_scoped_var_with_top_scope_check:
loadp JSScope::m_next[t1], dest
jmp .done
.scopeChainNotCreated:
- loadp ScopeChain + PayloadOffset[cfr], dest
+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
.done:
end,
# Second ResolveOperation tells us how many more nodes to skip
@@ -773,7 +778,7 @@ _llint_op_resolve_base_to_scope:
getResolveOperation(4, t0)
# First ResolveOperation is to skip scope chain nodes
getScope(macro(dest)
- loadp ScopeChain + PayloadOffset[cfr], dest
+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
end,
ResolveOperation::m_scopesToSkip[t0], t1, t2)
loadisFromInstruction(1, t3)
@@ -798,7 +803,7 @@ _llint_op_resolve_base_to_scope_with_top_scope_check:
loadp JSScope::m_next[t1], dest
jmp .done
.scopeChainNotCreated:
- loadp ScopeChain + PayloadOffset[cfr], dest
+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
.done:
end,
# Second ResolveOperation tells us how many more nodes to skip
@@ -823,7 +828,7 @@ macro interpretResolveWithBase(opcodeLength, slowPath)
getResolveOperation(4, t0)
btpz t0, .slowPath

- loadp ScopeChain[cfr], t3
+ loadp ScopeChain + JSCellPayloadOffset[cfr], t3
# Get the base
loadis ResolveOperation::m_operation[t0], t2

@@ -845,7 +850,7 @@ macro interpretResolveWithBase(opcodeLength, slowPath)
loadp JSScope::m_next[t1], dest
jmp .done
.scopeChainNotCreated:
- loadp ScopeChain + PayloadOffset[cfr], dest
+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
.done:
end,
sizeof ResolveOperation + ResolveOperation::m_scopesToSkip[t0], t1, t2)
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
index 89e40c7..87aa09e 100644
--- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
@@ -1692,7 +1692,7 @@ _llint_op_next_pname:
loadi 20[PC], t2
loadi PayloadOffset[cfr, t2, 8], t2
loadp JSPropertyNameIterator::m_jsStrings[t2], t3
- loadi [t3, t0, 8], t3
+ loadi PayloadOffset[t3, t0, 8], t3
addi 1, t0
storei t0, PayloadOffset[cfr, t1, 8]
loadi 4[PC], t1
26 changes: 26 additions & 0 deletions recipes/qt5/qtwebkit_5.3.1.oe
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Recipe for building the Qt5 module QtWebkit
##
## Qt5 Module for building qtwebkit.

LICENSE = "GFDL-1.3 & LGPL-2.1 & GPL-3.0"

inherit qt5module
require qt5-${PV}.inc
require qt5.inc

DEPENDS += " qtquick1-dev"
DEPENDS += " libsqlite3-dev"
DEPENDS += " libicudata-dev libicui18n-dev libicuuc-dev"
DEPENDS += " libjpeg-dev"
DEPENDS += " fontconfig"

RDEPENDS += " qtquick1"
RDEPENDS += " sqlite3"
RDEPENDS += " libicudata libicui18n libicuuc"
RDEPENDS += " libjpeg"
RDEPENDS += " fontconfig"

SRC_URI += "\
file://32bit_bigendian_offset_fix.patch \
"

1 change: 1 addition & 0 deletions recipes/qt5/qtwebkit_5.3.1.oe.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
70d42197b81a19980916f2175189dc626bdfa0eb qtwebkit-opensource-src-5.3.1.tar.xz