SIMD vs no SIMD on i686 (was: [Bug 3975] executable stack flag prevents use of libx264.so.148 with selinux in enforcing mode)

Dominik 'Rathann' Mierzejewski dominik at greysector.net
Tue Jul 19 12:37:47 CEST 2016


On Tuesday, 19 July 2016 at 10:31, Simon Farnsworth wrote:
> 
> > On 19 Jul 2016, at 02:12, Sérgio Basto <sergio at serjux.com> wrote:
> > 
> > On Ter, 2016-07-19 at 02:55 +0200, dominik at greysector.net wrote:
> >> Hello, Sérgio.
> >> 
> >> On Tuesday, 19 July 2016 at 02:35, RPM Fusion Bugzilla wrote:
> >>> 
> >>> https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975
> >>> 
> >>> --- Comment #4 from Sérgio Basto <sergio at serjux.com> 2016-07-19
> >>> 02:35:19 CEST ---
> >>> (In reply to comment #3)
> >>>> 
> >>>> I'll take a look at this. Could you try running execstack -c on
> >>>> the installed
> >>>> library in the meantime?
> >>> Be my guest , in  meantime I read your thread on packaging Mailing
> >>> list about
> >>> sse3 , I'd like understand if we need 2 builds for i686 ... one
> >>> with sse2 other
> >>> without it, can you give us your opinion ? 
> >> The only real concern here are applications linked against libx264,
> >> which someone might want to run on low-end hardware, because I don't
> >> think anyone would want to encode anything to H.264 on non-SSE2
> >> capable
> >> CPU (i.e. Pentium 3 or Athlon XP and older). Considering last non-
> >> SSE2
> >> CPUs went out of production about 8 years ago, I think it's fairly
> >> safe
> >> to assume that the impact of doing SSE2-only builds would be
> >> negligible,
> >> if any.
> > 
> > From x264.spec we can read "#i686 is disabled on purpose - re-enabled
> > with sse2 build" 
> > 
> > It is safe to say enable sse2 build is enable asm code ? if yes %ifarch
> > i686 we can/should build with enable asm code ?  and only one time
> > isn't it ? I tried that, but kwizart didn't agree ... 
> 
> It may not be worth the effort (as there's upstream effort here, not just
> packaging, if I understand correctly), but https://lwn.net/Articles/691932/
> documents GCC 6 function multi-versioning, which enables you to build both
> SSE2 and non-SSE versions of a given functions, and have GCC generate code
> to choose the right version at run time - as it's part of the compiler, the
> optimiser should also be aware, and able to avoid dispatch code when calling
> from the SSE2 version to another SSE2 function.

It's definitely not worth the effort. x264 upstream considers non-SSE2
x86 CPUs obsolete.

Regards,
Dominik
-- 
Fedora http://fedoraproject.org/wiki/User:Rathann
RPMFusion http://rpmfusion.org
"Faith manages."
        -- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"


More information about the rpmfusion-developers mailing list