When the package is recompiled from source package without changes, it
works because GCC 4.6.1 on i386 generates x87 instructions instead of
SSE2 instructions. In general, GCC 4.6 defaults to "-march=native", so
if the 32bit binary was generated on a 64bit system using "gcc -m32"
without specifying "-march", it defaulted to compiling a binary for a
core2/athlon64 in 32bit compatibility mode, not for a 32bit only CPU
which does not support SSE2. A 32bit-only Pentium4 would run such a
binary, but a Pentium3 won't. I suggest specifying -march=i686 and
-mfpmath=387 to disable generation of SSE instructions. Performance
critical code that uses hand-coded SSE (asm or intrinsics) uses run time
cpu detection anyway and should be compiled with separate flags before
being linked into a "i386" binary.

According to: https://help.ubuntu.com/11.04/installation-guide/i386
/hardware-supported.html , i686 with cmov is now required, so march
should be set for that. I could not find the same page for ubuntu 11.10,
but I hope it's the same.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/858226

Title:
  i386 version of mplayer2 is compiled to require SSE2 support

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mplayer2/+bug/858226/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to