Re: WebKit uses SSE XMM and breaks on XO-1

2014-08-25 Thread Peter Robinson
Hi James,

On Sat, Aug 23, 2014 at 7:05 AM, James Cameron qu...@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:  mov0x4(%eax),%ebx
0xabeda50c:  cmp-0x8(%ebx),%ecx
0xabeda50f:  jae0xabedbcde
 = 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.

Peter
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: WebKit uses SSE XMM and breaks on XO-1

2014-08-25 Thread James Cameron
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 qu...@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:  mov0x4(%eax),%ebx
 0xabeda50c:  cmp-0x8(%ebx),%ecx
 0xabeda50f:  jae0xabedbcde
  = 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/
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel