Bug#929682: libqt5qml5: QQmlEngine segfaults on ia64

2019-07-23 Thread Dmitry Shachnev
Control: reopen -1
Control: notfixed -1 qtdeclarative-opensource-src/5.12.4-1
Control: tags -1 -patch

Hi Jason,

On Wed, Jun 19, 2019 at 02:30:53PM -0400, Jason Duerstock wrote:
> Investigating now.

Any update on this? I am reopening this bug for the time being.

--
Dmitry Shachnev


signature.asc
Description: PGP signature


Bug#929682: libqt5qml5: QQmlEngine segfaults on ia64

2019-06-19 Thread Jason Duerstock
Investigating now.

On Wed, Jun 19, 2019 at 1:56 PM Dmitry Shachnev  wrote:

> Hi Jason!
>
> On Tue, May 28, 2019 at 11:58:38AM -0400, Jason Duerstock wrote:
> > As reported in bug #894726, qtdeclarative-opensource-src has a bug on
> > systems that use 64-bit pointers with any bits from 63-50 set.  The
> > attached patch addresses this issue on ia64 by shifting bits 63-61
> > (which are the "virtual region number" on ia64) into bits 49-47.  Please
> > include it in the next release.
>
> I have applied the patch (the version that was merged upstream), but
> unfortunately most of the tests are still failing.
>
> In the build log, I can count 149 FAIL!s and 42 Segmentation faults.
>
> It is much more than 57 failures you mentioned in the upstream bug [1].
> Looking at the log, *most* of the tests are failing. Passing ones are
> mostly the qmlMinify ones, which do not use the QML engine at all.
>
> Can you please look what happened there?
>
> [1]:
> https://bugreports.qt.io/browse/QTBUG-56264?focusedCommentId=462440#comment-462440
>
> --
> Dmitry Shachnev
>


Bug#929682: libqt5qml5: QQmlEngine segfaults on ia64

2019-06-19 Thread Dmitry Shachnev
Hi Jason!

On Tue, May 28, 2019 at 11:58:38AM -0400, Jason Duerstock wrote:
> As reported in bug #894726, qtdeclarative-opensource-src has a bug on
> systems that use 64-bit pointers with any bits from 63-50 set.  The
> attached patch addresses this issue on ia64 by shifting bits 63-61
> (which are the "virtual region number" on ia64) into bits 49-47.  Please
> include it in the next release.

I have applied the patch (the version that was merged upstream), but
unfortunately most of the tests are still failing.

In the build log, I can count 149 FAIL!s and 42 Segmentation faults.

It is much more than 57 failures you mentioned in the upstream bug [1].
Looking at the log, *most* of the tests are failing. Passing ones are
mostly the qmlMinify ones, which do not use the QML engine at all.

Can you please look what happened there?

[1]: 
https://bugreports.qt.io/browse/QTBUG-56264?focusedCommentId=462440#comment-462440

--
Dmitry Shachnev


signature.asc
Description: PGP signature


Bug#929682: libqt5qml5: QQmlEngine segfaults on ia64

2019-05-28 Thread Jason Duerstock
Source: qtdeclarative-opensource-src
Severity: important
Tags: patch
User: debian-i...@lists.debian.org
Usertags: ia64

Dear Maintainer,

As reported in bug #894726, qtdeclarative-opensource-src has a bug on
systems that use 64-bit pointers with any bits from 63-50 set.  The
attached patch addresses this issue on ia64 by shifting bits 63-61
(which are the "virtual region number" on ia64) into bits 49-47.  Please
include it in the next release.

Thank you.

-- System Information:
Debian Release: 10.0
  APT prefers unreleased
  APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: ia64

Kernel: Linux 5.0.0-trunk-mckinley (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
--- a/src/qml/jsruntime/qv4value_p.h2019-05-24 21:55:24.436238822 -0400
+++ b/src/qml/jsruntime/qv4value_p.h2019-05-24 22:08:26.832635233 -0400
@@ -146,12 +146,24 @@
 QML_NEARLY_ALWAYS_INLINE Heap::Base *m() const
 {
 Heap::Base *b;
-memcpy(, &_val, 8);
+#ifdef __ia64
+   quint64 _tmp;
+
+   _tmp = _val & 0x0001c000;
+   _tmp = (_tmp << 14) | (_val ^ _tmp);
+   memcpy(, &_tmp, 8);
+#else
+   memcpy(, &_val, 8);
+#endif
 return b;
 }
 QML_NEARLY_ALWAYS_INLINE void setM(Heap::Base *b)
 {
 memcpy(&_val, , 8);
+#ifdef __ia64
+   _val |= ((_val & 0xa000) >> 14);
+   _val &= 0x0001;
+#endif
 }
 #elif QT_POINTER_SIZE == 4
 QML_NEARLY_ALWAYS_INLINE Heap::Base *m() const