Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 553920 - media-video/ffmpeg-2.6.3 - ssse3 is superset of sse2, not sse3
Summary: media-video/ffmpeg-2.6.3 - ssse3 is superset of sse2, not sse3
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Keywording and Stabilization (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-04 14:23 UTC by tpeland
Modified: 2015-07-11 13:53 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
ssse3 is superset of sse2 (not sse3) (ffmpeg_cpu_flags.diff,523 bytes, text/plain)
2015-07-04 14:23 UTC, tpeland
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tpeland 2015-07-04 14:23:00 UTC
Created attachment 406176 [details]
ssse3 is superset of sse2 (not sse3)

Can't compile media-video/ffmpeg-2.6.3 as X86_CPU_REQUIRED_USE is set wrong in the ebuild.

Example:
For a fairly resent Intel cpu the following is correct setting.
CPU_FLAGS_X86="mmx mmxext sse sse2 ssse3 sse4_1 sse4_2"

However media-video/ffmpeg-2.6.3 (and all >2.6.0) require use of "sse3" to allow "ssse3". Unfortunately that's wrong as sse3 is NOT a subset of ssse3.

sse2 is subset of sse3 and ssse3 but each of them contain commands that the other doesn't.
Comment 1 Alexis Ballier gentoo-dev 2015-07-04 16:51:54 UTC
ffmpeg's configure has the following line:
ssse3_deps="sse3"

meaning that if you disable 'sse3' you also disable 'ssse3', so the ebuild is correct and you should actually get that line (and possibly the asm code if some of it rely on this assumption) changed upstream if you think this is wrong
Comment 2 pogosyan 2015-07-11 03:57:29 UTC
(In reply to Alexis Ballier from comment #1)
> ffmpeg's configure has the following line:
> ssse3_deps="sse3"
> 
> meaning that if you disable 'sse3' you also disable 'ssse3', so the ebuild
> is correct and you should actually get that line (and possibly the asm code
> if some of it rely on this assumption) changed upstream if you think this is
> wrong

Can see how this can be correct.  I for one has CPU that supports among it flags sse2 and ssse3 but not sse3.  Similarly, it supports sse but not mmxext

which says that in real world ssse3 is disconnected with sse3

cat /proc/cpuinfo

vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     L7100  @ 1.20GHz
stepping        : 11
.....
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida dtherm tpr_shadow vnmi flexpriority

so ffmpeg update is currently blocked for me with

  The following REQUIRED_USE flag constraints are unsatisfied:
    cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) cpu_flags_x86_sse? ( cpu_flags_x86_mmxext )
Comment 3 Alexis Ballier gentoo-dev 2015-07-11 13:53:53 UTC
you do have sse3:
equery uses ffmpeg says:
 cpu_flags_x86_sse3     : Use the SSE3 instruction set ([pni] in cpuinfo, NOT ssse3)