[pulseaudio-discuss] webrtc: build failures on i386

Arun Raghavan arun at arunraghavan.net
Fri May 27 04:04:09 UTC 2016


Hey Felipe,

On Thu, 26 May 2016, at 07:03 AM, Felipe Sateler wrote:
> Hi,
> 
> Turns out webrtc 0.2 does not work on most debian archs[1]. One part
> is big-endian arches are not supported (already filed at [2]).

I'll try to take a look at that shortly.

> But the one that brings me here is that debian does not require i386
> machines to have SSE, but xmmintrin.h requires that, and is
> unconditionally used on i386. I don't know if webrtc can do runtime
> detection to use said SSE code, (in which case the required sse flags
> should be added to the compilation unit), or we (debian) should
> disable SSE support in i386. It should also be possible to build a
> sse-enabled variant and use the dynamic loader's support for
> conditinal loading (although I'd prefer not to do that).
> 
> What would be the best course of action?

Looking at the code, they already do runtime detection, so if you build
on a machine with SSE2 and intrinsics, you should be okay for this to
run on any machine with or with SSE2. Example of the code:

  #if defined(WEBRTC_ARCH_X86_FAMILY)
    if (WebRtc_GetCPUInfo(kSSE2)) {
      WebRtcAec_InitAec_SSE2();
    }
  #endif

Is there some reason you can't /build/ with SSE2 support on the
compiler? Or were you suggesting that we needed to add  compiler flags
to make this work?

Regards,
Arun


More information about the pulseaudio-discuss mailing list