WebKit uses SSE XMM and breaks on XO-1

James Cameron quozl at laptop.org
Mon Aug 25 16:57:29 EDT 2014


On Mon, Aug 25, 2014 at 12:22:20PM +0100, Peter Robinson wrote:
> Hi James,
> 
> On Sat, Aug 23, 2014 at 7:05 AM, James Cameron <quozl at laptop.org> wrote:
> > With recent changes to Google Search JavaScript, searching terminates
> > Browse with a SIGSEGV, in WTF::dtoa.
> >
> > http://bugs.sugarlabs.org/ticket/4785
> >
> > This is only seen on an XO-1, in 13.2.1, 13.2.0, all the way back to
> > 12.1.0.  It is not seen on more recent XO laptops.
> >
> > On Fedora 20, with Sugar 0.102, and Browse-156, on kernel 3.10, does
> > similar, but the failure is SIGILL.  Using gdb we find the failing
> > instructions are references to XMM registers:
> >
> >    0xabeda509:  mov    0x4(%eax),%ebx
> >    0xabeda50c:  cmp    -0x8(%ebx),%ecx
> >    0xabeda50f:  jae    0xabedbcde
> > => 0xabeda515:  movsd  (%ebx,%ecx,8),%xmm0    <=
> >    0xabeda51a:  ucomisd %xmm0,%xmm0
> >    0xabeda51e:  jp     0xabedbcde
> >    0xabeda524:  movd   %xmm0,%eax
> >
> > The XO-1 with AMD Geode processor does not have these registers, so
> > the SIGILL is valid.
> >
> > So it would seem one way to fix this may be to rebuild WebKit without
> > this instruction stream.
> >
> > But first, I want to make sure I can rebuild WebKit.  I've tried on a
> > Fedora 20 system to do this:
> >
> > yumdownloader --source webkitgtk3
> > rpmrebuild --rebuild webkitgtk3-1.10.2-3.fc18.src.rpm
> >
> > But it fails with this:
> >
> > libtool: link: gcc -o /root/rpmbuild/BUILD/webkitgtk-1.10.2/tmp-introspectHnbXap/.libs/WebKit-3.0 -O2 -g1 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -DLIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY -O2 -Wl,-z -Wl,relro /root/rpmbuild/BUILD/webkitgtk-1.10.2/tmp-introspectHnbXap/WebKit-3.0.o -Wl,--export-dynamic -pthread -Wl,--export-dynamic  -L. /root/rpmbuild/BUILD/webkitgtk-1.10.2/.libs/libwebkitgtk-3.0.so /root/rpmbuild/BUILD/webkitgtk-1.10.2/.libs/libjavascriptcoregtk-3.0.so -lgmodule-2.0 -lrt -lgtk-3 -lgdk-3 -latk-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread
> > /lib/libGL.so.1: undefined reference to `_glapi_tls_Dispatch'
> > /lib/libEGL.so.1: undefined reference to `wl_display_dispatch_queue_pending'
> > collect2: error: ld returned 1 exit status
> > linking of temporary binary failed: Command '['./doltlibtool', '--mode=link', '--tag=CC', 'gcc', '-o', '/root/rpmbuild/BUILD/webkitgtk-1.10.2/tmp-introspectHnbXap/WebKit-3.0', '-export-dynamic', '-O2', '-g1', '-pipe', '-Wall', '-Wp,-D_FORTIFY_SOURCE=2', '-fexceptions', '-fstack-protector', '--param=ssp-buffer-size=4', '-m32', '-march=i686', '-mtune=atom', '-fasynchronous-unwind-tables', '-DLIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY', '-O2', '-Wl,-z,relro', '/root/rpmbuild/BUILD/webkitgtk-1.10.2/tmp-introspectHnbXap/WebKit-3.0.o', '-L.', '-lwebkitgtk-3.0', '-ljavascriptcoregtk-3.0', '-Wl,--export-dynamic', '-pthread', '-lgmodule-2.0', '-lrt', '-lgtk-3', '-lgdk-3', '-latk-1.0', '-lpangocairo-1.0', '-lgdk_pixbuf-2.0', '-lcairo-gobject', '-lpango-1.0', '-lcairo', '-lsoup-2.4', '-lgio-2.0', '-lgobject-2.0', '-lglib-2.0']' returned non-zero exit status 1
> > make[1]: *** [WebKit-3.0.gir] Error 1
> > make[1]: Leaving directory `/root/rpmbuild/BUILD/webkitgtk-1.10.2'
> > make: *** [all] Error 2
> > error: Bad exit status from /var/tmp/rpm-tmp.vGFtGZ (%build)
> 
> I wonder if that's due to a newer mesa, I can have a look, or
> review/push any package updates needed to Fedora to fix this. Let me
> know how I can help fix this.

Thanks.  I guess you're saying dependent packages are not tested for
rebuildabillity when a package is released for update.  Would using
mock have avoided this?

mesa package versions present in the builder are

mesa-libEGL-10.1.5-1.20140607.fc20.i686
mesa-libEGL-devel-10.1.5-1.20140607.fc20.i686
mesa-libgbm-10.1.5-1.20140607.fc20.i686
mesa-libGL-10.1.5-1.20140607.fc20.i686
mesa-libglapi-10.1.5-1.20140607.fc20.i686
mesa-libGL-devel-10.1.5-1.20140607.fc20.i686

full list at

http://dev.laptop.org/~quozl/z/1XM1IG.txt

-- 
James Cameron
http://quozl.linux.org.au/



More information about the Devel mailing list