Arun Raghavan wrote: > 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 I found at least one place where runtime detection was short-circuited in ./webrtc/common_audio/fir_filter.cc : (I found FIRFilterSSE2 cannot compile at all if -msse2 isn't enabled (and __SSE2__ isn't defined), at least not with gcc6 on fedora 24) // If we know the minimum architecture at compile time, avoid CPU detection. #if defined(WEBRTC_ARCH_X86_FAMILY) #if defined(__SSE2__) filter = new FIRFilterSSE2(coefficients, coefficients_length, max_input_length); #else // x86 CPU detection required. if (WebRtc_GetCPUInfo(kSSE2)) { filter = new FIRFilterSSE2(coefficients, coefficients_length, max_input_length); } else { filter = new FIRFilterC(coefficients, coefficients_length); } I had to patch this to unconditionally follow the #else case on x86, see also: http://pkgs.fedoraproject.org/cgit/rpms/webrtc-audio-processing.git/tree/webrtc-audio-processing-0.2-x86_sse2_runtime_detection.patch and related, http://pkgs.fedoraproject.org/cgit/rpms/webrtc-audio-processing.git/tree/webrtc-audio-processing-0.2-x86_msse2.patch to force use of -msse2 compiler flag on x86 builds. -- Rex