On Tue, Jul 15, 2014 at 9:22 PM, Lisandro Damián Nicanor Pérez Meyer <
perezme...@gmail.com> wrote:

> reassign 754894 src:qtbase-opensource-src 5.2.0+dfsg-1
> severity 754894 important
> thanks
>
> On Tuesday 15 July 2014 19:48:06 Boris Barbulovski wrote:
> > Package: libqt5core5a (actually all qt5 libraries)
> >   Version: 5.3.1+dfsg-3(jessie)
> >
> > >From Qt 5.3 SSE2 is enabled by default crashing every Qt app when run
> >
> > on i386 version with older(non SSE2) processor.
> >
> >
> > Solution: Disable SSE2 when building Qt5 packages for i386.
>
> Not quite.
>

Here is the location when it crashes (
https://qt.gitorious.org/qt/qtbase/source/e0dc27d791cd2106f661bd3d949281aaf1239990:src/corelib/tools/qstring.cpp#L658
ignore the fact that it's qt git url.)
The crash location is first line after line '#ifdef __SSE2__'

here is the dgb output

(gdb) disas 0xb7984fb0, 0xb7984fff
Dump of assembler code from 0xb7984fb0 to 0xb7984fff:
   0xb7984fb0:    mov    %edx,%esi
   0xb7984fb2:    shl    $0x10,%esi
   0xb7984fb5:    or     %edx,%esi
   0xb7984fb7:    lea    0x10(%eax),%edx
   0xb7984fba:    mov    %esi,(%esp)
   0xb7984fbd:    movd   (%esp),%xmm2
   0xb7984fc2:    cmp    %edx,%ebp
=> 0xb7984fc4:    pshufd $0x0,%xmm2,%xmm1
   0xb7984fc9:    jae    0xb7984fd9
   0xb7984fcb:    jmp    0xb7984f6e
   0xb7984fcd:    lea    0x0(%esi),%esi
   0xb7984fd0:    lea    0x10(%edx),%eax
   0xb7984fd3:    cmp    %eax,%ebp
   0xb7984fd5:    jb     0xb7984f70
   0xb7984fd7:    mov    %eax,%edx
   0xb7984fd9:    movdqu -0x10(%edx),%xmm0
   0xb7984fde:    lea    -0x10(%edx),%esi
   0xb7984fe1:    pcmpeqw %xmm1,%xmm0
   0xb7984fe5:    pmovmskb %xmm0,%eax
   0xb7984fe9:    test   %ax,%ax
   0xb7984fec:    je     0xb7984fd0
   0xb7984fee:    sub    0xc(%esp),%esi



>
> > I will paste paragraph from Phoronix article regarding this issue:
> >
> > *- Qt 5.3 by default for 32-built builds now depends upon SSE2 CPU
> support.
> >  SSE2 CPUs have been around for the past decade and building code
> > optimized for SSE2+ will yield better performance. SSE2 has been found
> > since Intel Pentium 4 CPUs and for AMD hardware since the Opteron /
> > Athlon 64 debut. Those building Qt 5.3 i386 binaries wishing to support
> > ancient CPUs can pass -no-sse2 to still maintain pre-SSE2 compatibility.*
> >
> > here is the article
> > <http://www.phoronix.com/scan.php?page=news_item&px=MTY3MDU>.
>
> Please use good data sources: upstream.
>
> There is a better fix pending someone to step up for doing the job. It's
> not
> that simple as "just disable SSE2" because that would render some parts
> simply
> unusable.
>
>
I don't understand what you mean by 'render some parts simply unusable'. Do
you mean some libraries will not compile? AFAIK SSE2 usage is for
performance reasons only(maybe I'm wrong).
I found this mail from Thiago Macieira(
http://lists.qt-project.org/pipermail/development/2013-November/014085.html)
where he explains the situation in more detail.



> The correct fix is to build *some* of the libs twice: one with SSE2 support
> and one without it. If properly installed the linker will do the correct
> job
> at runtime.
>
>
Thiago(in the mail thread above) suggest something like two versions of the
library.


> Interestingly enough, so far no one has reproduced this bug so far. Can you
> reproduce it? It would be good to know so you can tests the packages for
> us.
>
>
yes, I can reproduce the issue, and test the packages.



> Kinds regards, Lisandro.
>
> --
>
> Lisandro Damián Nicanor Pérez Meyer
> http://perezmeyer.com.ar/
> http://perezmeyer.blogspot.com/


br, Boris..

Reply via email to