WebKit uses SSE XMM and breaks on XO-1
James Cameron
quozl at laptop.org
Sat Aug 23 02:05:35 EDT 2014
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)
--
James Cameron
http://quozl.linux.org.au/
More information about the Devel
mailing list