[SCM] qtdeclarative packaging branch, master, updated. debian/5.6.1-8-4-g4d598d5
Lisandro Damián Nicanor Pérez
lisandro at moszumanska.debian.org
Tue Sep 27 23:13:28 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtdeclarative.git;a=commitdiff;h=4da3256
The following commit has been merged in the master branch:
commit 4da32568beabbcb7de305075e8a4a025bb55e3a8
Author: Sandro Knauß <bugs at sandroknauss.de>
Date: Mon Sep 26 18:26:49 2016 +0200
Backport upstream change to fix V4 on big-endian
see QTBUG-55730
Closes: #836412
---
debian/changelog | 5 +++
debian/patches/fix-V4-on-big-endian.patch | 44 ++++++++++++++++++++++++
debian/patches/fix_engine_64bits_big_endian.diff | 4 +--
debian/patches/series | 1 +
4 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 4d4ad0a..5685c55 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,10 @@
qtdeclarative-opensource-src (5.6.1-9) UNRELEASED; urgency=medium
+ [ Sandro Knauß ]
+ * Backport upstream change to fix V4 on big-endian (closes #836412)
+ (fix-V4-on-big-endian.patch; see QTBUG-55730)
+ (refresh fix_engine_64bits_big_endian.diff)
+
-- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org> Sat, 24 Sep 2016 15:53:40 +0200
qtdeclarative-opensource-src (5.6.1-8) unstable; urgency=medium
diff --git a/debian/patches/fix-V4-on-big-endian.patch b/debian/patches/fix-V4-on-big-endian.patch
new file mode 100644
index 0000000..915d479
--- /dev/null
+++ b/debian/patches/fix-V4-on-big-endian.patch
@@ -0,0 +1,44 @@
+From 2a658344397729450f869138bf77e063a0a6166b Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen at theqtcompany.com>
+Date: Mon, 12 Sep 2016 13:15:20 +0200
+Subject: [PATCH] Fix V4 on big-endian
+
+We can't both invert offset position and inter-value positions of tag
+and value.
+
+This patch changes 32-bit big-endian to use the same order inside
+the tag/value but just at different offsets. This also make it
+compatible with how we use it with doubles.
+
+This fixes value/tag reads on 32-bit big-endian and offsets on 64-bit.
+
+Change-Id: I95cf792c29ac3f42a4018ce1f115193c143a0df0
+Reviewed-by: Erik Verbruggen <erik.verbruggen at qt.io>
+Backport-By: Sandro Knauß <bugs at sandroknauss.de>
+Backport-Info: Upstream has developed this patch for 5.7
+---
+ src/qml/jsruntime/qv4value_p.h | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+--- a/src/qml/jsruntime/qv4value_p.h
++++ b/src/qml/jsruntime/qv4value_p.h
+@@ -98,16 +98,13 @@ struct Q_QML_PRIVATE_EXPORT Value
+ #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
+ static inline int valueOffset() { return 0; }
+ static inline int tagOffset() { return 4; }
+- Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(tag) << 32 | value; }
+- Q_ALWAYS_INLINE quint32 value() const { return _val & quint64(~quint32(0)); }
+- Q_ALWAYS_INLINE quint32 tag() const { return _val >> 32; }
+ #else // !Q_LITTLE_ENDIAN
+ static inline int valueOffset() { return 4; }
+ static inline int tagOffset() { return 0; }
+- Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(value) << 32 | tag; }
+- Q_ALWAYS_INLINE quint32 tag() const { return _val & quint64(~quint32(0)); }
+- Q_ALWAYS_INLINE quint32 value() const { return _val >> 32; }
+ #endif
++ Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(tag) << 32 | value; }
++ Q_ALWAYS_INLINE quint32 value() const { return _val & quint64(~quint32(0)); }
++ Q_ALWAYS_INLINE quint32 tag() const { return _val >> 32; }
+
+ #if defined(V4_BOOTSTRAP)
+ Q_ALWAYS_INLINE Heap::Base *m() const { Q_UNREACHABLE(); return Q_NULLPTR; }
diff --git a/debian/patches/fix_engine_64bits_big_endian.diff b/debian/patches/fix_engine_64bits_big_endian.diff
index e5342b3..d54d931 100644
--- a/debian/patches/fix_engine_64bits_big_endian.diff
+++ b/debian/patches/fix_engine_64bits_big_endian.diff
@@ -6,7 +6,7 @@ This fixes https://bugreports.qt.io/browse/QTBUG-54717
--- a/src/qml/jsruntime/qv4value_p.h
+++ b/src/qml/jsruntime/qv4value_p.h
-@@ -92,10 +92,16 @@
+@@ -92,10 +92,16 @@ struct Q_QML_PRIVATE_EXPORT Value
Q_ALWAYS_INLINE quint64 val() const { return _val; }
Q_ALWAYS_INLINE void setVal(quint64 v) { _val = v; }
@@ -23,4 +23,4 @@ This fixes https://bugreports.qt.io/browse/QTBUG-54717
+#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN || defined(QV4_USE_64_BIT_VALUE_ENCODING)
static inline int valueOffset() { return 0; }
static inline int tagOffset() { return 4; }
- Q_ALWAYS_INLINE void setTagValue(quint32 tag, quint32 value) { _val = quint64(tag) << 32 | value; }
+ #else // !Q_LITTLE_ENDIAN
diff --git a/debian/patches/series b/debian/patches/series
index 777b790..0f820b4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,7 @@
# Backported patches
qml_only_release_types_if_they_arent_referenced_anymore.patch
no_lifetime_dse.diff
+fix-V4-on-big-endian.patch
# Debian patches
check_system_double-conversion.patch
--
qtdeclarative packaging
More information about the pkg-kde-commits
mailing list